SHARE
TWEET

HangmanForTwoPlayers

a guest Feb 27th, 2020 89 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top