• Lunes 18 de Noviembre de 2024, 01:27

Autor Tema:  problema ahorcado C#  (Leído 4846 veces)

mayself

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
problema ahorcado C#
« en: Domingo 27 de Marzo de 2011, 20:25 »
0
Buenos días, soy algo nuevo en esto de la programacion, y me dejaron como encargo hacer un ahorcado en C# pero al momento de que se guarde la variable ltr en la cadena c, no lo quiere hacer, me marca un error de ArgumentOutOfRangeException, en la linea C = palabra.Insert ('_', ltr); , los errores me los marca perfectamente y el progrma hace todo lo que tiene ke hacer, pero al momento de poner un letra correcta es cuando marca el error.
ya me he roto la cabeza para intentar resolverlo, si alguien me pudiera ayudar, y explicarme cual fue mi eror para no cometerlo de nuevo se los agradeceria muchisimo aki esta el codigo completo

sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            {
                {
                    const int MAX = 10;
                    int i;
                    string A, B, C, palabra, continuar, ltr;
                    continuar = "si";
                    do
                    {
                        Console.WriteLine("Escribe la palabra que quieras");
                        do
                        {
                            Console.WriteLine("ingresa la palabra");
                            palabra = Console.ReadLine();
                            Console.Clear();
                            if (palabra.Length > MAX)
                            {
                                Console.WriteLine("intenta una palabra mas chica no mames");
                            }
                        }
                        while (palabra.Length > MAX || palabra.IndexOf("") == -1);
                        Console.WriteLine("Es una palabra de" + " " + palabra.Length + "letras");
                        A = "_";
                        B = "_";
                        C = "_";
                        while (C.Length < palabra.Length)
                        {
                            C = A + B;
                            B = C;
                        }
                        Console.WriteLine(C);
                        i = 5;
                        do
                        {
                            Console.WriteLine("Tienes" + " " + i + " " + "oportunidades");
                            Console.WriteLine("Ingresa una letra");
                            ltr = Console.ReadLine();
                            if (palabra.IndexOf(ltr) == -1)
                            {
                                i = i - 1;
                            }
                            else
                            {
                               
                                C = palabra.Insert ('_', ltr);
                            }
                        }
                        while (i >= 0);
                        if (i == 0)
                        {
                            Console.WriteLine("PERDISTE!!!!");
                        }
                        else if (i > 0 && i < 5)
                        {
                            Console.WriteLine("WOOOOW Quiero ser como tu cuando cresca");
                        }
                        else
                        {
                            Console.WriteLine("PERDISTE!!!!");
                        }
                        Console.WriteLine("Jugar de nuevo");
                        Console.WriteLine("SI para volver a jugar, NO para salir");
                        continuar = Console.ReadLine();
                        switch (continuar)
                        {
                            case "SI": continuar = "si"; break;
                            case "NO": continuar = "no"; break;
                        }
                    }
                    while (continuar == "si");


                }

            }
        }
    }
}

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: problema ahorcado C#
« Respuesta #1 en: Martes 29 de Marzo de 2011, 16:49 »
0
Estas utilizando el "Insert" mal. Este tiene dos parametros, el primero un "int" que indica en la posición donde insertarás el "string" que se indica en el segundo parametro. Tú en el primer parametro le das el carácter '_' que ahunque este no sea un "int" me imagino que te lo tomara como tal recogiendo su valor decimal que sería el 151. Por eso te esta dando el error.
Por lo tanto, en el primer parametro tienes que poner el "int" (número) que te indique en la posición donde tquieras insertar el string del segundo parametro.

Por cierto, la proxima vez que publiques codigo hazlo con la opcion del panel que pone "code" y le das al de C#, que asi se hace dificil leerlo.

Si tienes mas dudas avisa. Un saludo