DEPURACION DE CÓDIGO
(Actividad lúdica de evaluación)
C#
Herramientas para depurar código:
- Menú Depurar
o Depuración paso a paso (F11)
o Ventana Inspección
o Ventana inmediato
- Ejecutar hasta el cursor (menú contextual)
- Punto de interrupción y F5)
Actividad Lúdica
Considere el siguiente programa, que simula el comportamiento de uno de los juegos más importantes y
emocionantes de casino, denominado CRAPS. Este programa no está concluido, sin bien la lógica es la correcta,
existen varios errores que deben ser subsanados (depurados) antes de ejecutar este código.
JUEGO CRAPS: Un jugador tira 2 dados, una vez que los dados dejen de moverse, se calcula la suma de los puntos
en los dos dados y se evalúan de la siguiente manera:
Si la suma es 7 u 11 en el primero tiro el jugador gana.
Si la suma es 3,2,12 en el primer tiro el jugador pierde.
Si la suma es 4,5,6,8,9,10 en el primer tiro esta se convierte en los puntos del jugador.
Para ganar, el jugador debe seguir tirando los dados hasta que salgan otra vez los puntos
(Es decir, que tire ese mismo valor de puntos). Si sale un siete antes de lograrlo pierde.
Recurso para la actividad
class Program
{//Depurar almenos 10 errores de sintaxis y 8 errores semánticos enumerados:
static Random numerosAleatorios = new Random()
static void Main(string[] args)
{
//Error1: Método que no requiere argumentos
Jugar(string.Empty);
Console.WriteLine("Digite una tecla para terminar...")
Console.ReadKey();
}
//Error2: Método que no debe devolver valor
static float Jugar()
{
string EstadoJuego = "CONTINUA";
int puntos = 0;
int sumaDeDados == tirarDados();
switch (sumaDeDados)
{
//Error3: Existen opciones sin ninguna acción
case 7:
case 11:
EstadoJuego = "GANO";
break;
case 12: break;
case 3: break;
case 2:
EstadoJuego = "PERDIO";
break;
default:
EstadoJuego = "CONTINUA";
puntos = sumaDeDados;
//Error4: Existe código inaccesible
break:
Console.WriteLine("puntos = {0}",puntos);
break;
}
while (EstadoJuego == "CONTINUA")
{
sumaDeDados = tirarDados();
if (sumaDeDados == puntos) //Error5: Existe código inaccesible
EstadoJuego = "GANO";
break;
if (sumaDeDados == 7)
EstadoJuego = "PERDIO";
}
Console.WriteLine(EstadoJuego);
//Error6: El método actual es procedimiento
return EstadoJuego()
}
//Error7: Función que debe devolver un valor en el nombre
static tirarDados()
{
//Error8: El método Next nunca genera el número 6
int dado1 = numerosAleatorios.Next(1, 6);
int dado2 = numerosAleatorios.Next(1, 6);
int suma = dado1 + dado2;
Console.WriteLine("DADO_UNO = " , dado1 , " DADO_DOS = " , dado2 , " SUMA = " ,
suma());
return suma();
}
}