Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public synchronized void playRound() {
- System.out.println(Colors.getGreen() + "Starting New Round" + Colors.getWhite());
- //получение случайного слова нужного языка
- word = server.getWord();
- System.out.println("The Word Is: " + word);
- //инициализация переменных
- enters = 0;
- guessesMade = 0;
- guesses.clear();
- //отправка слова на клиент каждому игроку
- players.forEach(player -> player.write("@" + word));
- //цикл, который закончится при победе любого игрока или общем поражении
- while (true) {
- guesses.clear();
- //ожидание ввода слова от каждого игрока
- waitForPlayers();
- //если какой-то игрок отключился
- if (!active) {
- players.forEach(player -> player.quit());
- return;
- }
- //нынешнее количество попыток увеличивается на 1
- guessesMade += 1;
- //отправка каждому игроку попытки других игроков
- System.out.println("Sending guesses");
- for (int i = 0; i < players.size(); i++) {
- for (int j = 0; j < players.size(); j++) {
- if (i != j) {
- players.get(i).write(guesses.get(players.get(j).getName()));
- }
- }
- }
- //проверка на победу
- boolean someoneWon = false;
- for (Player player : players) {
- if (guesses.get(player.getName()).equals(word)) {
- someoneWon = true;
- }
- }
- //если все проиграли или кто-то победил
- if (guessesMade == 6 || someoneWon) {
- break;
- }
- }
- //ожидание нажатия ENTER у всех игроков для начала следующего раунда
- System.out.println("Waiting for players to press enter");
- waitForPlayers();
- //если какой-то игрок отключился
- if (!active) {
- players.forEach(player -> player.quit());
- return;
- }
- //запуск нового раунда
- playRound();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement