C# el ahorcado

Iniciado por Err..., 10 Enero 2011, 09:50 AM

0 Miembros y 1 Visitante están viendo este tema.

Err...

Hola, tengo que hacer el juego del ahorcado en C# i en pseudocodigo, pero no sé como hacer-lo.
Me podéis ayudar?
Gracias!!

leogtz

Aquí no es el lugar correcto para C#.

Citarun jugador escribe una palabra(si que el otro vea)y el otro jugador trata de adivinar introduciendo letras individuales:
�COMO deberia FUNCIONAR EL ALGORITMO EN LA PC?
El programa tendra dos cadenas de caracteres,una con la palabra introducida por le primer jugador y la otra cadena en la que se introducira tantos guiones�_� como letras tenga la palabra a adivinar.

Tras leer la palabra, se borrara la pantalla, se creara y se mostrara el la pantalla de la cadena con los guiones.Entonces el ordenador leera una letra introducida por el segundo jugador y comprobara si dicha letra existe en la palabra original:
*SI EXISTE:pondra dicha letra en su pocion correspondiente en la cadena de guiones y escribir� el resultado.Se debera comprobar:
� si existe mas letras que coincidan:
Se deben poner todas la coincidencias para cada letra leida.   
� si ya no existen guiones en la segunda cadena,entonces indicar que se ha acertado la palabra, Montrar el numero de fallos cometidos y terminar.

ALTERNATIVAS
aL INICIAR EL PROGRAMA deben existir dos alternativas de juego:

� La primera en la que hay como maximo 6 posivilidades para adivinar la palabra y en al que a medida en al que se va fallando se va dibujando por la pantalla al "clasico hombresito ahorcado" . Relacionando con cada fallo con una parte del cuerpo del ahorcado (cabeza,cuerpo, brazo der, brazo izquierdo, pierna derecha y pierna izquierda)

� La segunda en la que se define la contidad de errores maxima que se puede cometer la persona que adivina la palabra en un inicio y en la que no hay que dibujar nada.

FINALIZACION

EL programa debe terminar en los siguentes casos:
� Si se acierta a la palabra.
� Si se cometen un cierto numeros de fallos que debe visualizarse previamente dependiendo de la opcion que se escoja a un inicio
El programa permitira "rendirse" por parte del segundo jugador,es decir, que permitira terminar el programa en cualquier momento.

DATOS QUE PUEDE AYUDAR: Puede ser uan funcion que acepte 3 argumentos.
La cadena original,la cadena con guiones y la letra introducida
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Err...

Me podeis decir como oculto la palabra que estoy escribiendo?
Gracias

Err...

*SI EXISTE:pondra dicha letra en su pocion correspondiente en la cadena de guiones y escribir� el resultado.Se debera comprobar:
� si existe mas letras que coincidan:
Se deben poner todas la coincidencias para cada letra leida.   
� si ya no existen guiones en la segunda cadena,entonces indicar que se ha acertado la palabra, Montrar el numero de fallos cometidos y terminar.

Como lo hago?
Ayuda!
Gracias

leogtz

#4
Todo se basa en "Busqueda secuencial", investiga sobre eso, es algo como:

void busqueda_secuencial(char palabra[], char guiones[], char caracter)
{
   unsigned int i;
   for(i = 0; palabra[i]; i++)       /* Busqueda secuencial */
       if(palabra[i] == caracter)
           guiones[i] = caracter;
}
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Err...

Hola de nuevo!

Os dejo mi código, esta en catalán porque me obligan a ello.
Decidme donde estan los fallos porfavor
Gracias


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

namespace PENJAT
{
    class Program
    {
        static void Main(string[] args)
        {
            const int MAX = 25;
            int i;
            string cad1, cad2, cadfinal, paraula, continuar, lletra;
            //FI DECLARACIÓ VARIABLES I CONSTANTS
            continuar = "si";
            do
            {
                Console.WriteLine("La paraula només pot tenir 25 lletres");
                do
                {
                    Console.WriteLine("Atenció la paraula és oculta");
                    paraula = Console.ReadLine();
                    Console.Clear();
                    if (paraula.Length > MAX)
                    {
                        Console.WriteLine("La paraula és massa llarga!");
                    }
                }
                while (paraula.Length > MAX || paraula.IndexOf("") == -1);
                Console.WriteLine("Atenció! Comença el Joc!");
                Console.WriteLine("La paraula té: " + " " + paraula.Length + "lletres");
                cad1 = "_";
                cad2 = "_";
                cadfinal = "_";
                while (cadfinal.Length < paraula.Length)
                {
                    cadfinal = cad1 + cad2;
                    cad2 = cadfinal;
                }
                Console.WriteLine(cadfinal);
                i = 11;
                do
                {
                    Console.WriteLine("Tens" + " " + i + " " + "intents");
                    Console.WriteLine("Introdueix lletres, prem <intro> per confirmar-la");
                    lletra = Console.ReadLine();
                    if (paraula.IndexOf(lletra) == -1)
                    {
                        i = i - 1;
                    }
                    else
                    {
                        cadfinal = paraula.Insert('_',lletra);
                    }
                }
                while (i >= 0);
                if (i == 0)
                {
                    Console.WriteLine("Has perdut, no et desanimis!");
                }
                else if (i > 0 && i < 6)
                {
                    Console.WriteLine("Molt bé ets un/a crack!!");
                }
                else
                {
                    Console.WriteLine("Has jugat bé, però t'has de concentrar més");
                }
                Console.WriteLine("Vols tornar a jugar?");
                Console.WriteLine("Prem s, si és que si o prem n si és que no");
                continuar = Console.ReadLine();
                switch (continuar)
                {
                    case "s": continuar = "si"; break;
                    case "n": continuar = "no"; break;
                }
            }
            while (continuar == "si");
       
               
                       

        }
    }
}

Oblivi0n

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PENJAT
{
    class Program
    {
        static void Main(string[] args)
        {
            const int MAX = 25;
            int i;
            string cad1, cad2, cadfinal, paraula, continuar, lletra;
            //FI DECLARACIÓ VARIABLES I CONSTANTS
            continuar = "si";
            do
            {
                Console.WriteLine("La paraula només pot tenir 25 lletres");
                do
                {
                    Console.WriteLine("Atenció la paraula és oculta");
                    paraula = Console.ReadLine();
                    Console.Clear();
                    if (paraula.Length > MAX)
                    {
                        Console.WriteLine("La paraula és massa llarga!");
                    }
                }
                while (paraula.Length > MAX || paraula.IndexOf("") == -1);
                Console.WriteLine("Atenció! Comença el Joc!");
                Console.WriteLine("La paraula té: " + " " + paraula.Length + "lletres");
                cad1 = "_";
                cad2 = "_";
                cadfinal = "_";
                while (cadfinal.Length < paraula.Length)
                {
                    cadfinal = cad1 + cad2;
                    cad2 = cadfinal;
                }
                Console.WriteLine(cadfinal);
                i = 11;
                do
                {
                    Console.WriteLine("Tens" + " " + i + " " + "intents");
                    Console.WriteLine("Introdueix lletres, prem <intro> per confirmar-la");
                    lletra = Console.ReadLine();
                    if (paraula.IndexOf(lletra) == -1)
                    {
                        i = i - 1;
                    }
                    else
                    {
                        cadfinal = paraula.Insert('_',lletra);
                    }
                }
                while (i >= 0);
                if (i == 0)
                {
                    Console.WriteLine("Has perdut, no et desanimis!");
                }
                else if (i > 0 && i < 6)
                {
                    Console.WriteLine("Molt bé ets un/a crack!!");
                }
                else
                {
                    Console.WriteLine("Has jugat bé, però t'has de concentrar més");
                }
                Console.WriteLine("Vols tornar a jugar?");
                Console.WriteLine("Prem s, si és que si o prem n si és que no");
                continuar = Console.ReadLine();
                switch (continuar)
                {
                    case "s": continuar = "si"; break;
                    case "n": continuar = "no"; break;
                }
            }
            while (continuar == "si");
       
               
                       

        }
    }
}

http://foro.elhacker.net/programacion_cc/c_el_ahorcado-t316311.0.html#ixzz1AdqkGtk8


Utiliza las etiquetas GeSHi, ayudan a leer el code, luego lo miro, ahora voy a comer ^^

Khronos14

Tuve que hacer el juego del ahorcado en un examen de C# con interfaz gráfica. Te dejo mi juego.



http://www.megaupload.com/?d=PJ5OSA2N

PD: Saqué un 10 :D

Saludos.