Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions src/com/school/faang/hashset/задача_5/GameLobby.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package com.school.faang.hashset.задача_5;


import java.util.Set;

public class GameLobby {

private Set<Player> players;

private Set<Player> playerJoinOrder;

public GameLobby(Set<Player> players, Set<Player> 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);
}
}
}
}
43 changes: 43 additions & 0 deletions src/com/school/faang/hashset/задача_5/Player.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
14 changes: 14 additions & 0 deletions src/com/school/faang/hashset/задача_5/Solution.java
Original file line number Diff line number Diff line change
@@ -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();


}
}
6 changes: 6 additions & 0 deletions src/com/school/faang/hashset/задача_5/Status.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.school.faang.hashset.задача_5;

public enum Status {
READY,
NOT_READY
}