import java.io.
BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Scanner;
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
static Scanner sc = new Scanner(System.in);
public static final String ANSI_BLACK_BACKGROUND = "\u001B[0m";
public static final String ANSI_GREEN_BACKGROUND = "\u001B[42m";
public static final String ANSI_YELLOW_BACKGROUND = "\u001B[43m";
public static void main(String[] args) {
try {
//Modifique la ruta si es necesario
FileReader listaPalabras = new FileReader("C:\\Users\\qdequ\\Fotitos\\
palabras.txt");
BufferedReader listaPro = new BufferedReader(listaPalabras);
String linea = listaPro.readLine();
String palabras = linea;
while (linea!=null){
linea= listaPro.readLine();
palabras += linea;
}
adivinaPalabra(escogerPalabra(palabras));
} catch (IOException e) {
throw new RuntimeException(e);
}
public static String escogerPalabra(String palabras){
Scanner cuenta = new Scanner(palabras);
int i = 0;
while (cuenta.hasNext()){
cuenta.next();
i++;
}
i = (int) ((Math.random() * i)+1);
Scanner eleccion = new Scanner(palabras);
for (int j = 0; j < i; j++) {
eleccion.next();
}
String elegida = eleccion.next();
String elegidaSincoma = "";
for (int j = 0; j < 5; j++) {
elegidaSincoma+= elegida.charAt(j);
}
return elegidaSincoma;
}
public static void adivinaPalabra (String palabro){
palabro = palabro.toUpperCase();
ArrayList<Character> descomposicion = new ArrayList<>();
for (int i = 0; i < palabro.length(); i++) {
descomposicion.add(palabro.charAt(i));
}
int vidas = 6;
System.out.println("Debes adivinar una palabra de "+palabro.length()+"
letras.");
//Bucle de juego
while(vidas>0) {
System.out.println("Vidas restantes: "+vidas);
String conjetura = sc.nextLine();
while (conjetura.length() != palabro.length()) {
System.out.println("La palabra introducida debe tener " +
palabro.length() + " carácteres");
conjetura = sc.nextLine();
}
conjetura = conjetura.toUpperCase();
if (conjetura.equals(palabro)) {
for (int i = 0; i < palabro.length(); i++) {
System.out.print(ANSI_GREEN_BACKGROUND + " " +
conjetura.charAt(i) + " " + ANSI_BLACK_BACKGROUND + " ");
}
System.out.println("\nHas ganado");
} else {
ArrayList<Character> colores = new ArrayList<>();
for (int i = 0; i < conjetura.length(); i++) {
colores.add('g');
}
ArrayList<Character> desconjetura = new ArrayList<>();
for (int i = 0; i < conjetura.length(); i++) {
desconjetura.add(conjetura.charAt(i));
}
for (int i = 0; i < palabro.length(); i++) {
if (desconjetura.get(i).equals(descomposicion.get(i))) {
colores.set(i, 'v');
} else if
(palabro.contains(Character.toString(desconjetura.get(i)))) {
colores.set(i, 'a');
}
}
for (int i = 0; i < palabro.length(); i++) {
if (colores.get(i).equals('a')) {
System.out.print(ANSI_YELLOW_BACKGROUND + " " +
desconjetura.get(i) + " " + ANSI_BLACK_BACKGROUND + " ");
} else if (colores.get(i).equals('v')) {
System.out.print(ANSI_GREEN_BACKGROUND + " " +
desconjetura.get(i) + " " + ANSI_BLACK_BACKGROUND + " ");
} else {
System.out.print(" " + desconjetura.get(i) + " ");
}
}
}
System.out.println();
vidas--;
}
System.out.println("La palabra que buscabas es :"+palabro);
}
}