Advertisement
Guest User

Untitled

a guest
Dec 1st, 2024
3,544
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | Source Code | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3.  
  4. public class Wordle {
  5. private final String wordToGuess;
  6. private ArrayList<Character> availableLetters = new ArrayList<>();
  7. private String playerInput;
  8. private int tries;
  9. private Scanner input;
  10.  
  11. public String getWordToGuess() {
  12. return wordToGuess;
  13. }
  14.  
  15. public ArrayList<Character> getAvailableLetters() {
  16. return availableLetters;
  17. }
  18.  
  19. public void setAvailableLetters(ArrayList<Character> availableLetters) {
  20. this.availableLetters = availableLetters;
  21. }
  22.  
  23. public String getPlayerInput() {
  24. return playerInput;
  25. }
  26.  
  27. public void setPlayerInput(String playerInput) {
  28. this.playerInput = playerInput;
  29. }
  30.  
  31. public int getTries() {
  32. return tries;
  33. }
  34.  
  35. public void setTries(int tries) {
  36. this.tries = tries;
  37. }
  38.  
  39. public Scanner getInput() {
  40. return input;
  41. }
  42.  
  43. public void setInput(Scanner input) {
  44. this.input = input;
  45. }
  46.  
  47. public Wordle(String wordToGuess){
  48. this.wordToGuess = wordToGuess.toUpperCase();
  49. for (char letter = 'A'; letter <= 'Z'; letter++) {
  50. this.availableLetters.add(letter);
  51. }
  52. this.input = new Scanner(System.in);
  53. this.tries = 5;
  54. }
  55.  
  56.  
  57.  
  58. public void init() {
  59. boolean win = false;
  60. while (!win){
  61. insertPlayerInput();
  62. win = checkWord();
  63. }
  64. }
  65.  
  66.  
  67. public boolean checkWord(){
  68. if(this.wordToGuess.equalsIgnoreCase(playerInput)){
  69. System.out.println("GG !");
  70. return true;
  71. } else if (getTries() == 0) {
  72. System.out.println("Your number of tries is finished");
  73. System.out.println("The correct answer was : " + getWordToGuess());
  74. return false;
  75.  
  76. } else{
  77. System.out.println("Try again !");
  78. setTries(getTries()-1);
  79. System.out.println("Remaining Tries : " + getTries());
  80. removeOtherLetters();
  81. checkRightPositons();
  82. return false;
  83. }
  84.  
  85. }
  86.  
  87. public void checkRightPositons(){
  88. for (int i = 0; i < getWordToGuess().length(); i++) {
  89.  
  90. if(getPlayerInput().charAt(i) == getWordToGuess().charAt(i)){
  91. System.out.println("The letter " + getPlayerInput().charAt(i) + " is in the right place");
  92. }
  93. }
  94. }
  95.  
  96. public void removeOtherLetters(){
  97. for (int i = 0; i < getPlayerInput().length(); i++) {
  98. char inputLetter = getPlayerInput().charAt(i);
  99.  
  100.  
  101. if (!getWordToGuess().contains(String.valueOf(inputLetter))) {
  102.  
  103. getAvailableLetters().remove(Character.valueOf(inputLetter));
  104. }
  105. }
  106. }
  107.  
  108. public void insertPlayerInput(){
  109. do {
  110. System.out.println("The available letters are : ");
  111. for (int i = 0; i < getAvailableLetters().size(); i++) {
  112. System.out.print(getAvailableLetters().get(i) + " ");
  113. }
  114. System.out.println("\nGuess the word");
  115. setPlayerInput(getInput().nextLine().toUpperCase());
  116. if(getPlayerInput().length() != 5){
  117. System.out.println("Your input should contain five letters only !");
  118. }
  119. }while(getPlayerInput().length() != 5);
  120. }
  121. }
  122.  
  123. public class Main {
  124. public static void main(String[] args) {
  125. Wordle wordle = new Wordle("BIKES");
  126. wordle.init();
  127. }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement