/
matveyrazjivin
/
java_tasks
Обзор
Документация
Войти
/
matveyrazjivin
/
java_tasks
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
task1/src/main/java/org/example/Game.java
192 строки
6 KB
matveyrazjivin
Игра 'Виселица'. Yakubovich version.
30 сен 2025, 05:44
30 сен 2025, 05:44
ef9c6a6
Код
Авторство
О чём код?
package org.example; import java.util.Scanner; import java.util.Random; import java.util.Set; import java.util.HashSet; public class Game { private static final String[] WORDS = { "ГРАНИЦА", "КЛЮС", "ПЕРЕЛОМ", "ПОПОЛАМ", "ТЕМНАЯ", "НОЧЬ", "КАРМАН", "ПАЧКА" }; private static int MAX_LIVES = 8; private String word; private char[] guessedWord; private int lives; private Scanner scanner; private Random random; public Game() { this.random = new Random(); this.word = WORDS[random.nextInt(WORDS.length)]; this.guessedWord = new char[word.length()]; for (int i = 0; i < guessedWord.length; i++) { guessedWord[i] = '_'; } this.lives = MAX_LIVES; this.scanner = new Scanner(System.in); } public void start() { System.out.println("Угадайте слово по буквам. У вас " + MAX_LIVES + " жизней."); while (lives > 0 && new String(guessedWord).contains("_")) { printState(); System.out.print("Букву. Просто назовите букву: "); String input = scanner.nextLine().trim().toUpperCase(); if (input.length() != 1 || !Character.isLetter(input.charAt(0))) { System.out.println("Можно ввести только одну букву. Попробуйте еще раз."); continue; } char letter = input.charAt(0); if (word.indexOf(letter) == -1) { System.out.println("Поздравляю! Нет такой буквы..."); lives--; } else { System.out.println("Да ладно? Есть такая буква!"); for (int i = 0; i < word.length(); i++) { if (word.charAt(i) == letter) { guessedWord[i] = letter; } } } } if (!new String(guessedWord).contains("_")) { System.out.println("И перед нами победитель! Ваш выигрыш - автомобиль. Вы угадали слово: " + word); } else { System.out.println("К сожалению в этот раз удача не повернулась к вам лицом. Приходите к нам еще и крутите барабан. Загаданное слово было: " + word); draw(); } } private void printState() { System.out.println("\nСлово: " + new String(guessedWord)); System.out.println("Осталось жизней: " + lives); draw(); } private void draw() { String[] stages = { """ __|________ |/ \\| """, """ |/ | | | | | | | __|________ |/ \\| """, """ ________ |/ | | | | | | | | __|________ |/ \\| """, """ ________ |/ | | (_) | | | | | | __|________ |/ \\| """, """ ________ |/ | | (_) | | | | | | | | | __|________ |/ \\| """, """ ________ |/ | | (_) | _| | / | | | | | | __|________ |/ \\| """, """ ________ |/ | | (_) | _|_ | / | \ | | | | | __|________ |/ \\| """, """ ________ |/ | | (_) | _|_ | / | \ | | | / | / | __|________ |/ \\| """, """ ________ |/ | | (_) | _|_ | / | \ | | | / \\ ______ | / \\ / ^..^ \\ | |-R.I.P-|| __|________ | *** || |/ \\| |_=.`.=_|| """ }; System.out.println(stages[MAX_LIVES - lives]); } }