Autor Tema: Juego del ahorcado en JAVA (Beta)  (Leído 296 veces)

[D-m-K]

  • Administrador
  • Mensajes: 229
  • [-.|.-]
    • MSN Messenger - d4rk.m0nk3y@hotmail.com
    • Ver Perfil
    • Red Informatica Colombiana
    • Email
Juego del ahorcado en JAVA (Beta)
« : septiembre 23, 2010, 05:48:28 pm »
Hoy estaba ayudando a un parcero a obtener un bosquejo de lo que se conoce como el juego del ahorcado... eso si perdonen el code tan feo pero toco hacerlo de afan xD.... Mas adelante fucionalidades que se le pueden meter es seleccionar aleatoriamente palabras de un archivo (Diccionario de palabras) y usar swing para que quede mas bonito.


Código: (java) [Seleccionar]
import java.io.*;
import java.util.Scanner;

public class Ejemplo {

    //Atributos de clase
    private static final int max_letras = 10;
    private static final int max_intentos = 7;
    private static int intentos = 0;
    private static boolean encontrada = false;
    public static char[] palabra_ori = new char[max_letras];
    public static char[] palabra_aux = new char[max_letras];
    public static Scanner sc = new Scanner(System.in);
    public static String palabra;

    //Limpiar aux
    public static void limpiarPalabraAux(){
        for (int i = 0; i < palabra_aux.length; i++)
            palabra_aux[i] = ' ';
        for (int i = 0; i < palabra.length(); i++)
            palabra_aux[i] = '_';

    }

    //Menu
    public static void menu() {
        int opcion = 0;
        do {
            System.out.println(" Menu : \n");
            System.out.println(" 1) Definir palabra.");
            System.out.println(" 2) Iniciar Juego.");
            System.out.println(" 3) Salir. ");
            System.out.print(" \n Opcion >> ");
            opcion = sc.nextInt();

            switch (opcion) {
                case 1:
                    definirPalabra();
                    break;
                case 2:
                    iniciarJuego();
                    break;
                case 3:
                    System.out.println("Ejecucion terminada!!!");
                    break;

            }
        } while (opcion != 3);

    }

    //Definicion de la palabra en el juego
    public static void definirPalabra() {
        System.out.print(" Ingrese palabra : ");
        palabra = sc.next();
        for (int i = 0; i < palabra.length(); i++) {
            palabra_ori[i] = palabra.charAt(i);
            palabra_aux[i] = '_';
        }
        System.out.println(" Palabra definida exitosamente!!!");
    }

    //Iniciar juego
    public static void iniciarJuego() {
        limpiarPalabraAux();
        char letra;
        do {
            System.out.println("\n");
            //Muestro la palabra
            for (char l : palabra_aux) {
                if ((int) l != 0) {
                    System.out.print(" " + l);
                }
            }
            System.out.print(" \n\n Ingrese una letra : ");
            letra = new String(sc.next()).charAt(0);
            buscaLetraEnPalabra(letra);
            compararPalabras();
            intentos++;
            System.out.println(" Intentos " + intentos + " Max intentos " + max_intentos);
        } while (intentos < max_intentos && !encontrada);

        if (intentos < max_intentos && encontrada) {
            System.out.println(" Encontrada >> " + encontrada);
            System.out.println(" ----------------------------------------- ");
            System.out.println(" -       G A N A S T E    S U P E R ! !  - ");
            System.out.println(" ----------------------------------------- ");
            System.out.println("  Numero de intentos requeridos : " + intentos);
        } else {
            System.out.println(" ----------------------------------------- ");
            System.out.println(" -         G A M E     O V E R  =)       - ");
            System.out.println(" ----------------------------------------- ");
        }


    }

    public static void main(String[] args) {
        menu();
    }

    //Busca letra en la palabra original y la pinta en la palabra auxiliar
    public static void buscaLetraEnPalabra(char c) {
        System.out.println(" Letra ingresada " + c);
        for (int i = 0; i < palabra_ori.length; i++) {
            if (c == palabra_ori[i]) {
                palabra_aux[i] = c;
            }
        }
    }

    //Compara la palabra original con la auxiliar
    public static void compararPalabras() {
        for (int i = 0; i < palabra_ori.length; i++) {
            if ((int) palabra_ori[i] != 0) {
                if (palabra_ori[i] == palabra_aux[i]) {
                    encontrada = true;
                } else {
                    encontrada = false;
                    break;
                }
            }
        }

    }
}
« Última Modificación: septiembre 23, 2010, 06:57:57 pm por [D-m-K] »
:: Todas las grandes cosas que se disfrutan son el producto de las pequeñas cosas que se logran ::

Phicar

  • :P
  • Administrador
  • Mensajes: 283
  • (1+sqrt(5))/2
    • MSN Messenger - diego_villahacker@hotmail.com
    • Ver Perfil
    • Phicar's Blog
    • Email
Re: Juego del ahorcado en JAVA (Beta)
« Respuesta #1 : septiembre 23, 2010, 08:17:08 pm »
Muyy ordenado Joder!...tienes la mente cuadriculada amigo, o yo muy vuelta mierda?

pd: Scanner no me gusta :S..y pa SCJ(asi se escribe certificacion) deberias usar todos los tuneles...BufferedReader-> InputStreamReader->System.in

preguntan resto sobre esas interfaces...

pd2: prueba lo de ingresar la palabra con http://download.oracle.com/javase/6/docs/api/java/io/Console.html
eso te manda un echo ****** pa que quede mas 1337 ;)
:)

my.opera.com/phicar

[D-m-K]

  • Administrador
  • Mensajes: 229
  • [-.|.-]
    • MSN Messenger - d4rk.m0nk3y@hotmail.com
    • Ver Perfil
    • Red Informatica Colombiana
    • Email
Re: Juego del ahorcado en JAVA (Beta)
« Respuesta #2 : septiembre 23, 2010, 11:17:56 pm »
Gracias viejo phi por tus 2 sugerencias.... bueno puedo decir lo siguiente :

1. Ultimamente estoy usando Scanner ya que me parece m
:: Todas las grandes cosas que se disfrutan son el producto de las pequeñas cosas que se logran ::

merkrat

  • Mensajes: 1
    • Ver Perfil
Re: Juego del ahorcado en JAVA (Beta)
« Respuesta #3 : octubre 26, 2010, 12:05:32 pm »
Hola, que tal? Bueno, antes que nada muchisimas gracias por el aporte, me sirvio de mucho ya que tuve que hacer un proyecto similar en C# y la idea general me oriento bastante.

Lo unico que no me quedo muy claro de esta parte del codigo, es el segundo if,
cuando se castea como int y se pregunta si es distinto de cero. Funciona de lujo,
pero no se si se esta preguntando por el indice de palabra_ori o cual es su funcion.

//Compara la palabra original con la auxiliar
public static void compararPalabras()
{
      for (int i = 0; i < palabra_ori.length; i++)
      {
            if ((int) palabra_ori != 0)
            {
                 if (palabra_ori == palabra_aux)
                 {
                    encontrada = true;
                 }
                 else
                 {
                    encontrada = false;
                    break;
                 }
            }
      }
}

Cualquier aclaraci

Phicar

  • :P
  • Administrador
  • Mensajes: 283
  • (1+sqrt(5))/2
    • MSN Messenger - diego_villahacker@hotmail.com
    • Ver Perfil
    • Phicar's Blog
    • Email
Re: Juego del ahorcado en JAVA (Beta)
« Respuesta #4 : octubre 27, 2010, 02:06:09 pm »
es porque DmK define un arreglo con un maximo de letras(chars) no con el especifico por juego..luego cuando el crea ese objeto se llena de ceros las posiciones y cuando el pone una nueva palabra lo llena hasta la longitud de la palabra en cuestion. De ahi para alla la vaina es 0;
:)

my.opera.com/phicar

[D-m-K]

  • Administrador
  • Mensajes: 229
  • [-.|.-]
    • MSN Messenger - d4rk.m0nk3y@hotmail.com
    • Ver Perfil
    • Red Informatica Colombiana
    • Email
Re: Juego del ahorcado en JAVA (Beta)
« Respuesta #5 : octubre 27, 2010, 06:53:54 pm »
El viejo phi tiene mucha razon, por decirlo asi fue un peque
« Última Modificación: octubre 27, 2010, 06:59:49 pm por [D-m-K] »
:: Todas las grandes cosas que se disfrutan son el producto de las pequeñas cosas que se logran ::