I want to do a reading speed test in console (C #)

1

I'm doing a program / game in C # which is basically a 6-speed reading speed test and I want to show something similar to this in console:

link

The problem is that it does not show even a single word of the contents of the text file.

Could you please tell me if there is an error in the code?

Console.WindowHeight = 40;
        Console.WindowWidth = 150;
        Console.SetCursorPosition(75, 20);
        Console.ForegroundColor = ConsoleColor.Green;
        int opcion = 0;
            Console.WriteLine("Bienvenido a este ejercicio de velocidad lectora");
            Console.WriteLine("Selecciona el nivel de dificultad (velocidad) deseado");
            Console.WriteLine("Opción 1: Nivel más bajo");
            Console.WriteLine("Opción 2: Nivel bajo");
            Console.WriteLine("Opción 3: Nivel medio-bajo");
            Console.WriteLine("Opción 4: Nivel medio-alto");
            Console.WriteLine("Opción 5: Nivel alto");
            Console.WriteLine("Opción 6: Nivel más alto");
            opcion = int.Parse(Console.ReadLine());
            switch (opcion)
            {
                case 1:
                    {
                    Console.WriteLine("Bienvenido al nivel 1");
                    Console.WriteLine("Presiona 1 para continuar");
                    Console.ReadLine();
                    int continuar = 0;
                    switch(continuar)
                    {
                        case 1:
                            {
                                StreamReader lectura = File.OpenText(@"C:\Users\wuise\Desktop\DfC\Archivos de Texto\Nivel 1.txt");
                                string contenido = lectura.ReadToEnd();
                                string[] palabras = contenido.Split(' ', ',', '.', ';');
                                lectura.Close();
                                for (int x = 0; x < palabras.Length; x++)
                                {
                                    Console.WriteLine(palabras[x]);
                                    Thread.Sleep(600);
                                    Console.Clear();
                                }
                                break;
                            }
                    }
                    break;
                    }
                case 2:
                    {
                    Console.WriteLine("Bienvenido al nivel 2");
                    Console.WriteLine("Presiona 1 para continuar");
                    Console.ReadLine();
                    int continuar = 0;
                    switch (continuar)
                    {
                        case 1:
                            {
                                StreamReader lectura = File.OpenText(@"C:\Users\wuise\Desktop\DfC\Archivos de Texto\Nivel 2.txt");
                                string contenido = lectura.ReadToEnd();
                                string[] palabras = contenido.Split(' ', ',', '.', ';');
                                lectura.Close();
                                for (int x = 0; x < palabras.Length; x++)
                                {
                                    Console.WriteLine(palabras[x]);
                                    Console.ReadKey(true);
                                    Thread.Sleep(300);
                                    Console.Clear();
                                }
                                break;
                            }
                    }
                    break;
                    }
                case 3:
                    {
                    Console.WriteLine("Bienvenido al nivel 3");
                    Console.WriteLine("Presiona 1 para continuar");
                    Console.ReadLine();
                    int continuar = 0;
                    switch (continuar)
                    {
                        case 1:
                            {
                                StreamReader lectura = File.OpenText(@"C:\Users\wuise\Desktop\DfC\Archivos de Texto\Nivel 3.txt");
                                string contenido = lectura.ReadToEnd();
                                string[] palabras = contenido.Split(' ', ',', '.', ';');
                                lectura.Close();
                                for (int x = 0; x < palabras.Length; x++)
                                {
                                    Console.WriteLine(palabras[x]);
                                    Console.ReadKey(true);
                                    Thread.Sleep(200);
                                    Console.Clear();
                                }
                                break;
                            }
                    }
                    break;
                    }
                case 4:
                    {
                    Console.WriteLine("Bienvenido al nivel 4");
                    Console.WriteLine("Presiona 1 para continuar");
                    Console.ReadLine();
                    int continuar = 0;
                    switch (continuar)
                    {
                        case 1:
                            {
                                StreamReader lectura = File.OpenText(@"C:\Users\wuise\Desktop\DfC\Archivos de Texto\Nivel 4.txt");
                                string contenido = lectura.ReadToEnd();
                                string[] palabras = contenido.Split(' ', ',', '.', ';');
                                lectura.Close();
                                for (int x = 0; x < palabras.Length; x++)
                                {
                                    Console.WriteLine(palabras[x]);
                                    Console.ReadKey(true);
                                    Thread.Sleep(150);
                                    Console.Clear();
                                }
                                break;
                            }
                    }
                    break;
                    }
                case 5:
                    {
                    Console.WriteLine("Bienvenido al nivel 5");
                    Console.WriteLine("Presiona 1 para continuar");
                    Console.ReadLine();
                    int continuar = 0;
                    switch (continuar)
                    {
                        case 1:
                            {
                                StreamReader lectura = File.OpenText(@"C:\Users\wuise\Desktop\DfC\Archivos de Texto\Nivel 5.txt");
                                string contenido = lectura.ReadToEnd();
                                string[] palabras = contenido.Split(' ', ',', '.', ';');
                                lectura.Close();
                                for (int x = 0; x < palabras.Length; x++)
                                {
                                    Console.WriteLine(palabras[x]);
                                    Console.ReadKey(true);
                                    Thread.Sleep(120);
                                    Console.Clear();
                                }
                                break;
                            }
                    }
                    break;
                    }
                case 6:
                    {
                    Console.WriteLine("Bienvenido al nivel 6");
                    Console.WriteLine("Presiona 1 para continuar");
                    Console.ReadLine();
                    int continuar = 0;
                    switch (continuar)
                    {
                        case 1:
                            {
                                StreamReader lectura = File.OpenText(@"C:\Users\wuise\Desktop\DfC\Archivos de Texto\Nivel 6.txt");
                                string contenido = lectura.ReadToEnd();
                                lectura.Close();
                                string[] palabras = contenido.Split(' ', ',', '.', ';');
                                for (int x = 0; x < palabras.Length; x++)
                                {
                                    Console.WriteLine(palabras[x]);
                                    Console.ReadKey(true);
                                    Thread.Sleep(100);
                                    Console.Clear();
                                }
                                break;
                            }
                    }
                    break;
                    }
                default:
                    {
                    Console.WriteLine("La opción que usted marcó no existe");
                    break;
                    }

link

    
asked by Emilio Gonzalez 05.12.2018 в 02:46
source

1 answer

1

The problem is in the lines

int continuar = 0;
switch (continuar) 
{
   case 1:
   {

you realize what happens, do not you? just before evaluating the switch puts the value of the variable continuar to zero, and only evaluate the 1, in summary you will NEVER enter

You could do it much simpler with something like this

Console.WriteLine("Bienvenido a este ejercicio de velocidad lectora");
Console.WriteLine("Selecciona el nivel de dificultad (velocidad) deseado");
Console.WriteLine("Opción 1: Nivel más bajo");
Console.WriteLine("Opción 2: Nivel bajo");
Console.WriteLine("Opción 3: Nivel medio-bajo");
Console.WriteLine("Opción 4: Nivel medio-alto");
Console.WriteLine("Opción 5: Nivel alto");
Console.WriteLine("Opción 6: Nivel más alto");
int opcion = int.Parse(Console.ReadLine());


string fileName = "";
int nivel;

switch (opcion)
{
    case 1:
        nivel = 1;
        fileName = "Nivel 1.txt";
        break;
    case 2:
        nivel = 2;
        fileName = "Nivel 2.txt";
        break;
    case 3:
        nivel = 3;
        fileName = "Nivel 3.txt";
        break;

    //aqui define el resto

    default:
        Console.WriteLine("La opción que usted marcó no existe");
        nivel = 0;
        break;

}

if(nivel == 0)
{
    return;
}

Console.WriteLine("Bienvenido al nivel {0}", nivel);
Console.WriteLine("Presiona alguna key para continuar");
Console.ReadLine();

string path = @"C:\Users\wuise\Desktop\DfC\Archivos de Texto";
string fullPath = Path.Combine(path, fileName);

string contenido = File.ReadAllText(fullPath);
string[] palabras = contenido.Split(' ', ',', '.', ';');

for (int x = 0; x < palabras.Length; x++)
{
    Console.WriteLine(palabras[x]);
    Thread.Sleep(600);
    Console.Clear();
}

As you will see, the code is repeated a lot less

    
answered by 05.12.2018 / 04:22
source