diff --git a/.gitignore b/.gitignore index f68d109..1c311b8 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,14 @@ out/ !**/src/main/**/out/ !**/src/test/**/out/ +##File contaning bytecode java +*.class + +##Building dirctories +target/ +build/ + + ### Eclipse ### .apt_generated .classpath @@ -26,4 +34,4 @@ bin/ .vscode/ ### Mac OS ### -.DS_Store \ No newline at end of file +.DS_Store diff --git a/src/JogoDaForca.java b/src/JogoDaForca.java index fb68a30..dbf188f 100644 --- a/src/JogoDaForca.java +++ b/src/JogoDaForca.java @@ -1,16 +1,24 @@ import java.util.Scanner; +import boneco.Toy; +import boneco.ToyBuilder; public class JogoDaForca { public static void main(String[] args) { + + Toy toy = ToyBuilder.buildToy(); + Scanner scan = new Scanner(System.in); Player player = new Player(); + + //Toy toy = ToyBuilder.drawToy(); String playerName = player.setName(); System.out.println("Ola, "+playerName+". Bem vindo(a) ao Jogo da Forca."); System.out.println("Acerte o animal com menos de 7 erros."); + while (true){ @@ -22,8 +30,8 @@ public static void main(String[] args) { String hiddenWord = dealWord.buildHiddenWord(gameWord); LetterDealer dealLetter = new LetterDealer(); - dealLetter.guessLetter(gameWord,wordNumLetters,hiddenWord); - + dealLetter.guessLetter(gameWord,wordNumLetters,hiddenWord, toy); + System.out.println("O animal era: "+ gameWord); System.out.println("Deseja jogar novamente? s/n"); String reapet = scan.next(); diff --git a/src/LetterDealer.java b/src/LetterDealer.java index c5d83ba..c941231 100644 --- a/src/LetterDealer.java +++ b/src/LetterDealer.java @@ -1,46 +1,108 @@ import java.util.Arrays; +import java.util.ArrayList; +import java.util.List; import java.util.Scanner; -public class LetterDealer{ - void guessLetter(String gameWord, int wordNumLetters, String hiddenWord){ +import boneco.Toy; +import boneco.ToyBuilder; - char[] ch = gameWord.toLowerCase().toCharArray(); - char[] chHidden = hiddenWord.toCharArray(); - int rightLetters=0; - int numTrys=7; - while (true){ +public class LetterDealer { + void guessLetter(String gameWord, int wordNumLetters, String hiddenWord, Toy toy) { + + Scanner scan = new Scanner(System.in); //Initiatize out from While loop + + char[] ch = gameWord.toLowerCase().toCharArray(); + char[] chHidden = hiddenWord.toCharArray(); + + List wrongLetters = new ArrayList<>(); + int rightLetters = 0; + int numTrys = 7; + int erro = 0; + boolean victory = false; + char letter; + + while (true) { + boolean letterWasRight = false; - char letter; - Scanner scan = new Scanner(System.in); + try{ - System.out.println("\nChute uma letra: "); + System.out.println("Chute uma letra: "); letter = scan.nextLine().toLowerCase().charAt(0); - for (int i=0; i STRING (letter value) + String guessedInput = String.valueOf(letter); + + //User's trying enter a same letter of wrongList elements + if (wrongLetters.contains(guessedInput)) { + System.out.println("\nOps, esta letra já foi escolhida: " + guessedInput); + } else { + wrongLetters.add(guessedInput); + numTrys--; } - System.out.print(chHidden[i]); } - if (!letterWasRight) numTrys--; + System.out.println("\nLetras erradas: " + String.join(", ", wrongLetters)); + if (numTrys > 0 ){ + System.out.println("Você tem mais " + numTrys + " tentativas."); + } + + if (rightLetters == wordNumLetters) { + if (erro == 0){ + System.out.println("\nParabéns, você acertou a palavra sem um único erro!"); + + } else { + System.out.println("\nParabéns, você acertou :)"); + } + break; - System.out.println("\nVocê tem mais "+numTrys+" tentativas."); - if (rightLetters == wordNumLetters){ - System.out.println("\nParabens, você acertou :)"); - break; - } else if (numTrys<=0) { + } if (numTrys <= 0) { System.out.println("\nPoxa, suas chances acabaram :("); - break; + break; } - } + + } } + private static boolean checkInput(char letter){ + return Character.isLetter(letter); + } } diff --git a/src/boneco/Toy.java b/src/boneco/Toy.java new file mode 100644 index 0000000..fd2d03e --- /dev/null +++ b/src/boneco/Toy.java @@ -0,0 +1,96 @@ +package boneco; + +public class Toy { + + // Rope default + String rope; + + + String head; + + String body; + + //Legs + String leftlegs; + String rightlegs; + + //Arms + String leftarms; + String rightarms; + + public Toy(String rope, String head, String body, + String leftlegs, String rightlegs, + String leftarms, String rightarms) { + + this.rope = rope; + this.head = head; + this.body = body; + + this.leftlegs = leftlegs; + this.rightlegs = rightlegs; + + this.leftarms = leftarms; + this.rightarms = rightarms; + } + + public void drawToy(int erros) { + System.out.println("\n" + rope); + + switch(erros){ + + case 1: + System.out.println(" " + head); + break; + + case 2: + System.out.println(" " + head); + System.out.println(" " + body); + + break; + + case 3: + System.out.println(" " + head); + System.out.println(" " + body); + + System.out.println(" " + leftlegs); + + break; + + case 4: + + System.out.println(" " + head); + System.out.println(" " + body); + + System.out.println(" "+ leftlegs + " " + rightlegs); + + //System.out.println(leftarms); + + break; + + case 5: + System.out.println(" " + head); + System.out.println(" " + leftarms + body); + System.out.println(" " + leftlegs + " " + rightlegs); + break; + + case 6: + System.out.println(" " + head); + System.out.println(" " + leftarms + body + rightarms); + System.out.println(" " + leftlegs + " " + rightlegs); + break; + + case 7: + System.out.println(" " + "X"); + System.out.println(" " + leftarms + body + rightarms); + System.out.println(" " + leftlegs + " " + rightlegs); + + System.out.println("\nGAME OVER\n O boneco foi enformado! "); + break; + default: + System.out.println("\nValor inválido: número de erros fora do intervalo (0 a 7)."); + break; + } + + + } +} diff --git a/src/boneco/ToyBuilder.java b/src/boneco/ToyBuilder.java new file mode 100644 index 0000000..6e8715d --- /dev/null +++ b/src/boneco/ToyBuilder.java @@ -0,0 +1,41 @@ + +package boneco; + +public class ToyBuilder { + + public static void main(String[] args) { + +} + + //Method to return an object + public static Toy buildToy(){ + String rope = "\n----------------------|"; + String head = "O"; + String body = "|"; + + //Legs + String leftlegs = "/"; + String rightlegs = "\\"; + + //arms + String leftarms = "/"; + String rightarms = "\\"; + + + // Building toy + Toy toy = new Toy( + rope, + head, + body, + leftlegs, + rightlegs, + leftarms, + rightarms + ); + + //toy.drawToy(6); + + return toy; + } +} +