Colocar en un tablero 10x10 diez palabras duplicadas en posiciones al azar.
Pedir al usuario dos coordenadas del tablero para la pareja de palabras, y mostrar el tablero con las palabras levantadas.
Las palabras tienen que tener una ancho máximo de 15 letras.
using System ;
class Program
{
static void Main ()
{
// Definir el tablero
char [,] tablero = new char [ 10 , 10 ];
// Lista de palabras duplicadas
string [] palabras = { "casa" , "perro" , "gato" , "luz" , "mesa" , "hoja" , "papel" , "rojo" , "azul" , "verde" };
// Colocar palabras en posiciones aleatorias en el tablero
ColocarPalabras (tablero, palabras);
// Mostrar el tablero sin revelar palabras
MostrarTablero (tablero);
// Pedir al usuario las coordenadas
Console. WriteLine ( "Ingresa las coordenadas (fila columna) de dos palabras separadas por un espacio:" );
string input = Console. ReadLine ();
// Separar las coordenadas
string [] coordenadas = input. Split ( ' ' );
// Convertir a enteros
int fila1 = int . Parse (coordenadas[ 0 ]);
int columna1 = int . Parse (coordenadas[ 1 ]);
int fila2 = int . Parse (coordenadas[ 2 ]);
int columna2 = int . Parse (coordenadas[ 3 ]);
// Mostrar el tablero con las palabras levantadas
LevantarPalabras (tablero, fila1, columna1, fila2, columna2);
MostrarTablero (tablero);
}
static void ColocarPalabras ( char [,] tablero , string [] palabras )
{
Random random = new Random ();
foreach ( string palabra in palabras)
{
// Calcular posición aleatoria
int fila , columna ;
do
{
fila = random. Next ( 0 , 10 );
columna = random. Next ( 0 , 10 );
} while (tablero[fila, columna] != ' \0 ' ); // Repetir si la posición ya está ocupada
// Colocar la palabra en el tablero
for ( int i = 0 ; i < palabra.Length; i ++ )
{
tablero[fila, columna + i] = palabra[i];
}
}
}
static void LevantarPalabras ( char [,] tablero , int fila1 , int columna1 , int fila2 , int columna2 )
{
Console. WriteLine ( $"Palabra 1: { ObtenerPalabra ( tablero , fila1 , columna1 )}" );
Console. WriteLine ( $"Palabra 2: { ObtenerPalabra ( tablero , fila2 , columna2 )}" );
}
static string ObtenerPalabra ( char [,] tablero , int fila , int columna )
{
string palabra = "" ;
while (columna < 10 && tablero[fila, columna] != ' \0 ' )
{
palabra += tablero[fila, columna];
columna ++ ;
}
return palabra;
}
static void MostrarTablero ( char [,] tablero )
{
Console. WriteLine ( "Tablero:" );
for ( int i = 0 ; i < 10 ; i ++ )
{
for ( int j = 0 ; j < 10 ; j ++ )
{
Console. Write (tablero[i, j] == ' \0 ' ? '-' : tablero[i, j]);
Console. Write ( " " );
}
Console. WriteLine ();
}
Console. WriteLine ();
}
}