Ejemplos Arrays unidimensionales 2


  1 package ahorcado;
  2 
  3 import java.util.Arrays;
  4 import java.util.Scanner;
  5 
  6 /**
  7  *
  8  * @author Wilson Lancheros Lopez
  9  */
 10 public class Ahorcado {
 11     //Variable que tendrá la palabra secreta 
 12     static String palabra = "Programacion";
 13     //Array con para la palabra secreta
 14     static char[] array;
 15     //Array para mostrar en pantalla (Auxiliar)
 16     static String[] array2;
 17     static int intentos = 5;
 18     static int aciertos = 0;
 19     //Permitira detener o continual el juego
 20     static boolean cont = true;
 21 
 22     public static void main(String[] args) {
 23         //Convertimos la palabra en array 
 24         array = palabra.toCharArray();
 25         //Inicializamos el nuevo array
 26         array2 = new String[array.length];
 27         //LLenamos el array 2
 28         Arrays.fill(array2, "-");
 29         Scanner sc = new Scanner(System.in);
 30         System.out.println("Adivine la palabra secreta");
 31         while (cont) {
 32             System.out.println(Mostrar());
 33             System.out.println("Digite una letra");
 34             String lt = sc.nextLine();
 35             Valid(lt);
 36         }
 37         System.out.println(Mostrar());
 38         Verifica();
 39     }
 40     /**
 41      * Valida lo ingresado por el usuario 
 42      * @param letra 
 43      */
 44     private static void Valid(String letra) {
 45         //Verifica que por lo menos se ingrese una letra
 46         if (letra.length() > 0) {
 47             //Utiliza solo la primer letra ingresada por el usuario (Pudo ingresar más de una letra)
 48             String rt = letra.substring(0, 1);
 49             //Variable auxiliar para verificar los aciertos
 50             int _acerto = 0;
 51             //Recorre el array que contiene la palabra secreta
 52             for (int x = 0; x < array.length; x++) {
 53                 //Convierte las letras guardadas en el array a String
 54                 String letra_actual = array[x] + "";
 55                 //Si el array auxiliar no contiene la letra ingresada (Volvió a digitar la misma letra)
 56                 // y si el array secreto si la contiene 
 57                 if (!(array2[x].equalsIgnoreCase(rt)) && letra_actual.equalsIgnoreCase(rt)) {
 58                     //Guardamos en la posición del array auxiliar la letra secreta para mostrarla 
 59                     array2[x] = array[x] + "";
 60                     //Incrementamos los aciertos
 61                     aciertos++;
 62                     //se incrementa el auxiliar de aciertos
 63                     _acerto++;
 64                     //Le informa al programa si ya se adivino la palabra secreta
 65                     cont = !(aciertos == array.length);
 66                 }
 67             }
 68             //Si el auxiliar de aciertos no se incrementa se gasta un intento
 69             if (_acerto == 0) {
 70                 intentos--;
 71                 //le informa al programa si ya perdio el usuario
 72                 cont = !(intentos == 0);
 73             }
 74         }
 75     }
 76     /***
 77      * Muestra el contenido del arrar auxiliar
 78      * @return 
 79      */
 80     private static String Mostrar() {
 81         String rt = "";
 82         for (String _array : array2) {
 83             rt += _array + " ";
 84         }
 85         rt += "\ntiene " + intentos + " intentos ";
 86         return rt;
 87     }
 88     /***
 89      * Verifica el estado del juego
 90      */
 91     private static void Verifica() {
 92         if (aciertos == array.length) {
 93             System.out.println("Excelente...");
 94         }
 95         if (intentos == 0) {
 96             System.out.println("Juego Terminado");
 97         }
 98     }
 99 }
100