Advertisement
Guest User

HangmanForTwoPlayers

a guest
Feb 27th, 2020
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.24 KB | None | 0 0
  1. ackage com.company;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6. public static void main(String[] args) {
  7. String[] words = {"Благоевград", "Бургас", "Варна", "Велико Търново", "Видин",
  8. "Враца", "Габрово", "Добрич", "Кърджали", "Кюстендил", "Ловеч", "Монтана",
  9. "Пазарджик", "Перник", "Плевен", "Пловдив", "Разград", "Русе", "Сливен",
  10. "Смолян", "София", "Стара Загора", "Търговище", "Шумен", "Ямбол"};
  11.  
  12. int randomWordNumber = (int) (Math.random() * words.length);
  13.  
  14. int tries = 0;
  15. String word = words[randomWordNumber];
  16. char[] enteredLetters = new char[word.length()];
  17. int rounds = 0;
  18. while (true) {
  19. int player = rounds % 2;
  20. tries = play(words, randomWordNumber, tries, enteredLetters, player);
  21. if (tries == -1 || tries > 5) {
  22. break;
  23. }
  24. rounds++;
  25. }
  26. }
  27.  
  28. public static int play(String[] words, int randomWordNumber, int triesCount, char[] enteredLetters, int player) {
  29. boolean wordIsGuessed = false;
  30.  
  31. if (triesCount == 0) {
  32. System.out.println("Вие започнахте играта \"Бесеница\".");
  33. System.out.println(" _____ ");
  34. System.out.println(" | | ");
  35. System.out.println(" | ");
  36. System.out.println(" | ");
  37. System.out.println(" | ");
  38. System.out.println(" | ");
  39. }
  40.  
  41. System.out.println("Играч " + (player + 1));
  42. do {
  43. switch (enterLetter(words[randomWordNumber], enteredLetters)) {
  44. case 0:
  45. triesCount++;
  46. if (triesCount == 1) {
  47. System.out.println(" _____ ");
  48. System.out.println(" | | ");
  49. System.out.println(" | O ");
  50. System.out.println(" | ");
  51. System.out.println(" | ");
  52. System.out.println(" | ");
  53.  
  54.  
  55. } else if (triesCount == 2) {
  56. System.out.println(" _____ ");
  57. System.out.println(" | | ");
  58. System.out.println(" | O ");
  59. System.out.println(" | | ");
  60. System.out.println(" | ");
  61. System.out.println(" | ");
  62.  
  63. } else if (triesCount == 3) {
  64. System.out.println(" _____ ");
  65. System.out.println(" | | ");
  66. System.out.println(" | O ");
  67. System.out.println(" | -| ");
  68. System.out.println(" | ");
  69. System.out.println(" | ");
  70. } else if (triesCount == 4) {
  71. System.out.println(" _____ ");
  72. System.out.println(" | | ");
  73. System.out.println(" | O ");
  74. System.out.println(" | -|-");
  75. System.out.println(" | ");
  76. System.out.println(" | ");
  77. } else if (triesCount == 5) {
  78. System.out.println(" _____ ");
  79. System.out.println(" | | ");
  80. System.out.println(" | O ");
  81. System.out.println(" | -|-");
  82. System.out.println(" | / ");
  83. System.out.println(" | ");
  84. } else if (triesCount == 6) {
  85. System.out.println(" _____ ");
  86. System.out.println(" | | ");
  87. System.out.println(" | O ");
  88. System.out.println(" | -|-");
  89. System.out.println(" | / \\");
  90. System.out.println(" | ");
  91. System.out.println(" GAME OVER");
  92. wordIsGuessed = true;
  93. break;
  94. }
  95.  
  96. return triesCount;
  97. case 1:
  98. break;
  99. case 2:
  100. wordIsGuessed = true;
  101. break;
  102. }
  103.  
  104. }
  105. while (!wordIsGuessed);
  106. if (triesCount != 6) {
  107. System.out.print("\nТи победи!");
  108. triesCount = -1;
  109. }
  110. System.out.println("\nДумата е " + "\"" + words[randomWordNumber] + "\"" + ".");
  111.  
  112. return triesCount;
  113. }
  114.  
  115. public static boolean isCyrillic(char c) {
  116. return Character.UnicodeBlock.CYRILLIC.equals(Character.UnicodeBlock.of(c));
  117. }
  118.  
  119. public static int enterLetter(String word, char[] enteredLetters) {
  120. word = word.toLowerCase();
  121. int emptyPosition = findEmptyPosition(enteredLetters);
  122. System.out.print("Познайте думата: ");
  123. if (!printWord(word, enteredLetters))
  124. return 2;
  125. System.out.print("\nВъведете буква: ");
  126. Scanner input = new Scanner(System.in);
  127. char userInput = input.nextLine().toLowerCase().charAt(0);
  128. if (!isCyrillic(userInput)) {
  129. System.out.println("Въведете буква на кирилица!");
  130. return 1;
  131. }
  132. if (inEnteredLetters(userInput, enteredLetters)) {
  133. System.out.println("\"" + userInput + "\"" + " вече е в думата");
  134. return 1;
  135. } else if (word.contains(String.valueOf(userInput))) {
  136. enteredLetters[emptyPosition] = userInput;
  137. return 1;
  138. } else {
  139. System.out.println("\"" + userInput + "\"" + " я няма в думата.");
  140. return 0;
  141. }
  142. }
  143.  
  144. public static boolean printWord(String word, char[] enteredLetters) {
  145. boolean isPrinted = false;
  146. for (int i = 0; i < word.length(); i++) {
  147. char letter = word.charAt(i);
  148. if (inEnteredLetters(letter, enteredLetters)) {
  149. if (i == 0 || word.charAt(i - 1) == ' ') {
  150. System.out.print(Character.toUpperCase(letter));
  151. } else {
  152. System.out.print(letter);
  153. }
  154. } else if (letter == ' ') {
  155. System.out.print(' ');
  156. } else {
  157. System.out.print('*');
  158. isPrinted = true;
  159. }
  160. }
  161. return isPrinted;
  162. }
  163.  
  164. public static boolean inEnteredLetters(char letter, char[] enteredLetters) {
  165. return new String(enteredLetters).contains(String.valueOf(letter));
  166. }
  167.  
  168. public static int findEmptyPosition(char[] enteredLetters) {
  169. int i = 0;
  170. while (i < enteredLetters.length && enteredLetters[i] != '\u0000') i++;
  171. return i;
  172.  
  173. }
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement