Advertisement
Guest User

HangmanGame

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