Advertisement
fatalryuu

Untitled

May 3rd, 2023
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. public synchronized void playRound() {
  2. System.out.println(Colors.getGreen() + "Starting New Round" + Colors.getWhite());
  3.  
  4. //получение случайного слова нужного языка
  5. word = server.getWord();
  6. System.out.println("The Word Is: " + word);
  7.  
  8. //инициализация переменных
  9. enters = 0;
  10. guessesMade = 0;
  11. guesses.clear();
  12.  
  13. //отправка слова на клиент каждому игроку
  14. players.forEach(player -> player.write("@" + word));
  15.  
  16. //цикл, который закончится при победе любого игрока или общем поражении
  17. while (true) {
  18. guesses.clear();
  19.  
  20. //ожидание ввода слова от каждого игрока
  21. waitForPlayers();
  22.  
  23. //если какой-то игрок отключился
  24. if (!active) {
  25. players.forEach(player -> player.quit());
  26. return;
  27. }
  28.  
  29. //нынешнее количество попыток увеличивается на 1
  30. guessesMade += 1;
  31.  
  32. //отправка каждому игроку попытки других игроков
  33. System.out.println("Sending guesses");
  34. for (int i = 0; i < players.size(); i++) {
  35. for (int j = 0; j < players.size(); j++) {
  36. if (i != j) {
  37. players.get(i).write(guesses.get(players.get(j).getName()));
  38. }
  39. }
  40. }
  41.  
  42. //проверка на победу
  43. boolean someoneWon = false;
  44. for (Player player : players) {
  45. if (guesses.get(player.getName()).equals(word)) {
  46. someoneWon = true;
  47. }
  48. }
  49. //если все проиграли или кто-то победил
  50. if (guessesMade == 6 || someoneWon) {
  51. break;
  52. }
  53. }
  54.  
  55. //ожидание нажатия ENTER у всех игроков для начала следующего раунда
  56. System.out.println("Waiting for players to press enter");
  57. waitForPlayers();
  58.  
  59. //если какой-то игрок отключился
  60. if (!active) {
  61. players.forEach(player -> player.quit());
  62. return;
  63. }
  64.  
  65. //запуск нового раунда
  66. playRound();
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement