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