Juego del ahorcado en Java con más de 1 palabra

  • Autor del tema No Registrado
  • Fecha de inicio
No estoy tan avanzado y tengo que memorizarme cientos de ejercicios así para el examen de enero...

:8::ouch::ouch::ouch::ouch::ouch:

Espero que tengas mucha memoria para aprenderte todos los programas posibles. No se si te dará tiempo para el examen de enero.
 
Yo en tu lugar editaría el mensaje anterior para borrar el nombre.

Edito: el código me sale incompleto en el foro, ya me parecía raro.


En cuanto a memorizar cientos de ejercicios... ¿es una broma?
 
Última edición:
¿el código os sale incompleto?

Y sí, hay que memorizar porque escribir 250 líneas por programa en un examen tienes que tenerlo bien claro. Lo llevo bien, de momento.

La parte práctica ya está evaluada, y el examen final de enero serán folios en blanco y los enunciados a parte para escribir a letra y puño el código. Nada de ordenadores ni de algo que se haya inventado más allá del siglo XVI.:XX:
 
¿el código os sale incompleto?

Y sí, hay que memorizar porque escribir 250 líneas por programa en un examen tienes que tenerlo bien claro. Lo llevo bien, de momento.

La parte práctica ya está evaluada, y el examen final de enero serán folios en blanco y los enunciados a parte para escribir a letra y puño el código. Nada de ordenadores ni de algo que se haya inventado más allá del siglo XVI.:XX:
Igual te crees que hacer un examen de programación en papel es un caso excepcional, y no lo es.

El aprenderse "programas" de memoria es absurdo, lo que tienes que hacer es aprender a resolverlos. Ningún profesor va a pretender que escribas la sintaxis a la perfección, pero lo que sí va a hacer es cambiar los enunciados para que no sirva lo de aprendérselo de memoria.

Los bucles for salen incompletos.
 
Bueno, eso es evidente la técnica del examen. Por eso yo hago muchos ejercicios por mi cuenta, para aprender a resolverlos.

Por otro lado intenté lo de CODE con el foro pero me sale incompleto, así que con QUOTE me sale completo pero no entiendo por qué los bucles te salen incompletos...

Por otro lado, ¿cómo harías para definir un string array desde el teclado? en la mayoría de webs sólo muestran como introducir dados para un string. Es para probar en mi caso, que se cree el título desde el teclado y así las posibilidades de jugar al juego sean infinitas.
 
Supongo que no me queda más remedio que definir otra clase:

Código:
public static void definirparaula() {
System.out.print(" Escriure paraula proposada : ");
palabra = sc.next();
for (int i = 0; i < paraula.length(); i++) {
paraula_ori[i] = paraula.charAt(i);
paraula_aux[i] = '_';
}
System.out.println(" Paraula definida exitosament");
 
Aunque aquí pululen bastantes informáticos, lo adecuado sería hacer estas preguntas en un foro de java.

Cuando lees una línea en Scanner con nextLine obtienes una String, que será una sola palabra, una frase compuesta de palabras separadas por espacios o lo que tú quieras. Con split o StringTokenizer obtendrías un array a partir de esa String, de tamaño 1 o n en función de lo que elijas como separador.

También puedes hacerlo como parámetros del main, eso es lo que siginifica el String[] args del main. Si ejecutas

java EAC3 palabras como argumentos

tendrías en tu main

args[0]=palabras
args[1]=como
args[2]=argumentos
 
Ya está.

Versión juca en la que el ahorcado es infinito pues un jugador inserta una palabra o frase y el otro jugador tiene que adivinarla...

No puedo usar CODE para el foro porque se come la mitad del código que copio del Netbeans!!

Lo del menú lo haré mañana porque estoy con los ojos...

package eac3;

/*
* Jaume Mayol
* Programació (Bloc 1)
* Activitats de Nadal
*/

import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;


public class EAC3 {

public static String paraules;

public static void main(String[] args)throws IOException {
Scanner lector=new Scanner(System.in);

//He comentat línees 23 i 23, i 66-68 que és el codi on les paraules venen donades.
/*String [] paraules={"Seven","Mulholland drive", "Twin Peaks","La matanza de Texas","La noche de"
+ "Halloween", "Buried", "Walking Dead", "Psicosis", "Jennifer's Body", "Destino final"};*/


//Opció de definir la paraula per l'usuari
System .out.print("Usuari pot definir la paraula que l'altre jugador ha d'endevinar : ");
paraules = lector.nextLine();

String paraula=" ";

//Variables globals
int i=0;
int opcio;
int oportunitats=5;
int index=0;

//Lletra introduïda
char lletra=' ';

//Variables booleanes
boolean var=false;
boolean comparar = false;
boolean repetit=false;
boolean primer=false;
boolean sortir=false;

//Estructura do-while. Mentres hi hagi 5 oportunitats
do{
oportunitats=5;
var=false;
repetit=false;
primer=false;
index=0;

//Per estalviar recursos del CPU tot el missatge inicial en un sol println
System.out.println("HANGMAN CINEMA\nHeu de endivinar la película"
+ "\nHi ha 4 oportunitas per endivinar el títol. Al 5 error quedeu penjats"
+ "\nAlerta si repetiu lletra també es considerarà un error"
+ "\n\nRecordeu que els espais compten, per tant és recomenable"
+ "que premeu la barra d'espai\ndel vostre teclat per comprovar si hi"
+ "ha espais a la paraula, especialment si té molts de guions.\nTambé"
+ " compten els apòstrofs (') i les majúscules com a Jennifer's Body"
+ "\n\nSi esteu preparats, preméu Enter");

//Funció aleatòria del Java perquè elegeixi un títol per atzar dels 10 que hi ha.
/*int aleatorio=(int)((Math.random()*10)*10)/10;
paraula=paraules[aleatorio];*/
paraula=paraules;

//Convertir una cadena en un array de caràcters (veure més info aquí:
//http://lineadecodigo.com/tag/tochararray/
char[]paraula2 = paraula.toCharArray();
char[]guions=new char[paraula2.length];
char[]comprova=new char[15];

//Introdueix els guions a cada lletra de columna. Una altra manera de fer-ho
//es com ho he fet al programa d'endevina el meu nom.
for(int j=0; j<guions.length; j++){

guions[j]='-';
}//tanca bucle guió

do{
lector.nextLine();
var=false;
repetit=false;

//Quan el jugador premia l'enter per primer cop es mostra el següent en pantalla.
if(primer==false){
System.out.println(guions);
System.out.println(" __________");
System.out.println(" | ");
System.out.println(" | ");
System.out.println(" | ");
System.out.println(" | ");
System.out.println(" | ");
System.out.println(" |__________");
System.out.println("Quina lletra hi pot pot ser?");
System.out.println("");
}//tanca if quan és el primer intent

//Llegeix lletra inserida per l'usuari amb el teclat
primer=true;
lletra =(char)System.in.read();

//Comprova si s'ha dit la lletra
for(int o=0; o<comprova.length; o++){

if(comprova[o]==lletra){
System.out.println("La lletra "+lletra+ " ja s'ha dit -- També resta");
repetit=true;

}//tanca bucle if
}//tanca bucle for
//es comprova la lletra, si és la mateixa, se suma intent
comprova[index]=lletra;
index++;

for(i=0; i<paraula2.length; i++){

//Si la lletra introduïda es troba a la paraula, aleshores var és true.
if(paraula2==lletra){

guions=lletra;

var=true;
}
}

//Compara espai de guió per cada lletra i la paraula en cadena de text.
comparar = Arrays.equals(guions,paraula2);

if(comparar==true){
System.out.println("Si la paraula és "+paraula+"!!!");
System.out.println("*****************************");
System.out.println("*****************************");
System.out.println("*** FELICITATS! ETS MÉS ***");
System.out.println("*** FRIKI QUE JO!!!! ***");
System.out.println("*****************************");
System.out.println("*****************************");

System.out.println("Fi del joc");

break;
}

if((var==false)||(repetit==true)){

oportunitats--;
}
System.out.println(guions);
System.out.println("_______________________________");


if(oportunitats==5){

System.out.println(" __________");
System.out.println(" | ");
System.out.println(" | ");
System.out.println(" | ");
System.out.println(" | ");
System.out.println(" | ");
System.out.println(" |__________");


} else if (oportunitats == 4){


System.out.println(" __________");
System.out.println(" | | ");
System.out.println(" | O ");
System.out.println(" | ");
System.out.println(" | ");
System.out.println(" | ");
System.out.println(" |__________");


} else if(oportunitats==3){


System.out.println(" __________");
System.out.println(" | | ");
System.out.println(" | O ");
System.out.println(" | | ");
System.out.println(" | | ");
System.out.println(" | ");
System.out.println(" |__________");

} else if (oportunitats == 2){


System.out.println(" __________");
System.out.println(" | | ");
System.out.println(" | O ");
System.out.println(" | -|- ");
System.out.println(" | | ");
System.out.println(" | ");
System.out.println(" |__________");

} else if (oportunitats == 1){


System.out.println(" __________");
System.out.println(" | | ");
System.out.println(" | O ");
System.out.println(" | --|-- ");
System.out.println(" | | ");
System.out.println(" | / ");
System.out.println(" |__________");


}

}while (oportunitats > 0);

//Si s'ha avaluat com a falsa, aleshores:
if(comparar==false){
System.out.println("** HAS FALLAT **");
System.out.println(" __________");
System.out.println(" | | ");
System.out.println(" | O ");
System.out.println(" | --|-- ");
System.out.println(" | | ");
System.out.println(" | _/ _ ");
System.out.println(" |__________");
System.out.println(" Fi del joc");
}

System.out.println(" ");
System.out.println("Tornar a jugar. Premeu 1 i Enter");
System.out.println(" ");
System.out.println("Per sortir del joc premeu 2 i Enter");

opcio=lector.nextInt();

if(opcio==2){

sortir=true;
}


}//tanca el do de la línea 39
while (sortir == false);

System.out.println("Fi del joc. Bones festes");

}//tanca main
}//tanca el programa

 
Ese asombroso juego es tan innovador que hace parecer al resto de los juegos de PC en ultra como el pacman no? :roto2:
 
Volver