diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/GameLobby.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/GameLobby.java" new file mode 100644 index 0000000..a3166a1 --- /dev/null +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/GameLobby.java" @@ -0,0 +1,54 @@ +package com.school.faang.hashset.задача_5; + + +import java.util.Set; + +public class GameLobby { + + private Set players; + + private Set playerJoinOrder; + + public GameLobby(Set players, Set playerJoinOrder) { + this.players = players; + this.playerJoinOrder = playerJoinOrder; + } + + protected void addPlayer(String nickname) { + if (!checkPlayer(nickname)) { + Player player = new Player(nickname); + players.add(player); + System.out.println("Игрок " + nickname + " успешно зарегистрировано на сервере!"); + playerJoinOrder.add(player); + } + } + + protected void removePlayer(String nickname) { + Player player = new Player(nickname); + players.remove(player); + playerJoinOrder.remove(player); + } + + protected boolean hasPlayer(String nickname) { + return checkPlayer(nickname); + } + + protected void displayInfo() { + for (Player player : playerJoinOrder) { + System.out.println(player.getNickname()); + } + } + + protected boolean checkPlayer(String nickname) { + Player player = new Player(nickname); + return players.contains(player); + } + + protected void changeStatus(String nickname) { + for (Player player : playerJoinOrder) { + if (player.getNickname().equals(nickname)) { + player.setStatus(Status.READY); + } + } + } +} diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/Player.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/Player.java" new file mode 100644 index 0000000..4169fe4 --- /dev/null +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/Player.java" @@ -0,0 +1,43 @@ +package com.school.faang.hashset.задача_5; + +import java.util.Objects; + +public class Player { + + private String nickname; + + private Status status; + + public Player(String nickname) { + this.nickname = nickname; + this.status = Status.NOT_READY; + } + + public String getNickname() { + return nickname; + } + + public Status getStatus() { + return status; + } + + public void setStatus(Status status) { + this.status = status; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) return false; + Player player = (Player) o; + return Objects.equals(nickname, player.nickname); + } + + @Override + public int hashCode() { + return Objects.hashCode(nickname); + } +} diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/Solution.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/Solution.java" index 38f2c78..cae5f1a 100644 --- "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/Solution.java" +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/Solution.java" @@ -1,7 +1,21 @@ package com.school.faang.hashset.задача_5; +import java.util.HashSet; + public class Solution { public static void main(String[] args) { + GameLobby gameLobby = new GameLobby(new HashSet<>(), new HashSet<>()); + + gameLobby.addPlayer("donk"); + gameLobby.addPlayer("monesy"); + gameLobby.addPlayer("sh1pro"); + gameLobby.addPlayer("boombl4"); + gameLobby.addPlayer("monesy"); + + gameLobby.removePlayer("boombl4"); + System.out.println(gameLobby.hasPlayer("boombl4")); + gameLobby.displayInfo(); + } } diff --git "a/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/Status.java" "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/Status.java" new file mode 100644 index 0000000..21b14d7 --- /dev/null +++ "b/src/com/school/faang/hashset/\320\267\320\260\320\264\320\260\321\207\320\260_5/Status.java" @@ -0,0 +1,6 @@ +package com.school.faang.hashset.задача_5; + +public enum Status { + READY, + NOT_READY +}