Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.92 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.Random;
  3. import java.util.Scanner;
  4.  
  5. /**
  6. * Java. Level 1. Lesson 3. Homework doing.
  7. *
  8. * @autor @Dmitriy Solonnikov
  9. * @version dated Jun-07-2019
  10. *
  11. * 2. Создать массив из слов
  12. * String[] words = {"apple", "orange", "lemon", "banana", "apricot", "avocado", "broccoli", "carrot", "cherry", "garlic",
  13. * "grape", "melon", "leak", "kiwi", "mango", "mushroom", "nut", "olive", "pea", "peanut", "pear", "pepper", "pineapple",
  14. * "pumpkin", "potato"}.
  15. * При запуске программы компьютер загадывает слово, запрашивает ответ у пользователя, сравнивает его с загаданным словом
  16. * и сообщает, правильно ли ответил пользователь. Если слово не угадано, компьютер показывает буквы, которые стоят на своих местах.
  17. * apple – загаданное
  18. * apricot - ответ игрока
  19. * ap############# (15 символов, чтобы пользователь не мог узнать длину слова)
  20. * Для сравнения двух слов посимвольно можно пользоваться:
  21. * String str = "apple";
  22. * char a = str.charAt(0); - метод, вернет char, который стоит в слове str на первой позиции
  23. * Играем до тех пор, пока игрок не отгадает слово.
  24. * Используем только маленькие буквы.
  25. */
  26.  
  27. public class Lesson3_HW_2 {
  28.  
  29. static int MASH_LENGTH = 15;
  30.  
  31. public static void main(String[] args) {
  32. String[] words = {"apple", "orange", "lemon", "banana", "apricot", "avocado", "broccoli", "carrot", "cherry",
  33. "garlic", "grape", "melon", "leak", "kiwi", "mango", "mushroom", "nut", "olive", "pea", "peanut",
  34. "pear", "pepper", "pineapple", "pumpkin", "potato"};
  35. Scanner scanner = new Scanner(System.in);
  36. boolean toRepeat = true;
  37.  
  38. // ----------------------- проверки -------------------- //
  39. // # фиксируем возвращенный методом случайный элемент массива
  40. String guessWordArray = randomWord(words);
  41. // # проверка метода randomWord для возврата случайного слова из заданного массива:
  42. System.out.println(guessWordArray);
  43. // # проверка метода randomWord для возврата случайного слова из заданного массива (закоменнтирован в рабочей версии):
  44. System.out.println(Arrays.toString(wordToChar(guessWordArray)));
  45. // -----------------------/ /------------------- //
  46.  
  47.  
  48. // System.out.println(Arrays.toString(wordToChar(randomWord(words)))); // получаем массив символов из случайного слова исходного массива строк
  49. while (toRepeat) {
  50. System.out.print("Try to guess a word. Enter your word here: ");
  51. String doommyUserWord = userWord(scanner);
  52. System.out.println(doommyUserWord); // проверка
  53. if (doommyUserWord.equals(guessWordArray)) {
  54. System.out.println("Congratulations!!");
  55. break;
  56. } else {
  57. System.out.println("Miss...");
  58. // System.out.println(Arrays.toString(wordToChar(userWord))); // проверка
  59. wordToChar(doommyUserWord);
  60. System.out.print("Here You can see a letters you've guessed: " +
  61. Arrays.toString(equalsLiterals(wordToChar(guessWordArray), wordToChar(doommyUserWord))) + "\n");
  62. System.out.print("Do You want to try again? \n" + "Y / N: ");
  63. if(repeatGame(scanner) == toRepeat){
  64. System.out.println("Your next try.");
  65. } else {
  66. System.out.println("Game over \n");
  67. toRepeat = false;
  68. }
  69. }
  70. }
  71. scanner.close();
  72. }
  73.  
  74. // ------------------- Методы ---------------------
  75.  
  76. static String randomWord (String [] wordsArray){ // сюда в main передадим наш массив 'words'
  77. Random random = new Random();
  78. int index = random.nextInt(wordsArray.length);
  79. return wordsArray[index]; // отсюда вернем случайный элемент/слово массива
  80. }
  81.  
  82. static char [] wordToChar (String string){
  83. return string.toCharArray();
  84. }
  85.  
  86. static String userWord (Scanner scanner){ // передается результат метода randomWord
  87. String userWord = scanner.next();
  88. return userWord; // если юзер ошибся, тогда возвращается его слово, которое потом нужно будет перевести в символы
  89. // и поэлементно сравнить на совпадения с загаданным словом
  90. }
  91.  
  92. // static char[] checkUserWord (String userWord, String guesWord){ // на вход: слово из консоли и загаданное слово
  93. // if (userWord.equals(guesWord)){
  94. // System.out.println("Congratulations!!");
  95. // }else{
  96. // System.out.println("Miss...");
  97. //// System.out.println(Arrays.toString(wordToChar(userWord))); // проверка
  98. // }
  99. // return wordToChar(userWord);
  100. // }
  101.  
  102. // метод сравнения букв загаданного слова со словом юзера
  103. static char[] equalsLiterals (char[] guessWordInCharArray, char[] userWordInCharArray){
  104. char[] mashArray = new char[MASH_LENGTH];
  105.  
  106. for (int k = 0; k < MASH_LENGTH; k++) {
  107. mashArray[k] = '#';
  108. }
  109. for (int i = 0; i < guessWordInCharArray.length; i++) {
  110. for (int j = 0; j < userWordInCharArray.length; j++) {
  111. if (guessWordInCharArray[i] == userWordInCharArray[j]){
  112. mashArray[i] = guessWordInCharArray[i]; // здесь в массив mashArray будут вставлены совпавшие буквы
  113. }
  114. }
  115. }
  116. return mashArray;
  117. }
  118.  
  119. public static boolean repeatGame (Scanner scanner) {
  120. String answer = scanner.next();// .next использован вместо .nextLine, так как последний перевод каретки в тесте "\n" за ввод символа принимает
  121.  
  122. while (true) {
  123. if (answer.equals("N")) {
  124. return false;
  125. } else if (answer.equals("Y")) {
  126. return true;
  127. } else {
  128. System.out.print("Wrong button. Please, enter 'Y' or 'N': ");
  129. return true;
  130. }
  131. }
  132. }
  133.  
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement