Fehler gefixt

Hat mir die Nacht gekostet
This commit is contained in:
2022-03-26 00:34:14 +01:00
parent 1a966b285f
commit 6eb5f59b50
4 changed files with 114 additions and 49 deletions

View File

@@ -50,6 +50,7 @@ public class WordleServer extends Server {
String connectionID = pClientIP + ":" + Integer.toString(pClientPort);
User u = users.get(connectionID);
u.setConnectionID(connectionID);
u.getGame().updateGuessCount();
if (pMessage.length() < 4) {
send(pClientIP, pClientPort, "-ERR Command not valid in this state");
} else {
@@ -57,7 +58,7 @@ public class WordleServer extends Server {
System.out.println("Message: " + m + " State: " + u.getState());
if (pMessage.equalsIgnoreCase("QUIT")) {
send(pClientIP, pClientPort, "+OK Bye");
close();
closeConnection(pClientIP, pClientPort);
}
switch (u.getState()) {
case 1:
@@ -82,10 +83,10 @@ public class WordleServer extends Server {
} else if (m.equalsIgnoreCase("WOTD")) {
if (!isToday(u.getLastDayWOTDPlayed())) {
send(pClientIP, pClientPort, "+OK game ready");
u.getGame().startGame(query.getWOTD());
u.getGame().startGame(query.getWOTD(), 1);
u.setState(2);
u.updateLastDayWOTDPlayed();
} else if (u.getGame().getGameStatus() == 1) {
} else if (u.getGame().getGameStatus() == 1 && u.getGame().getIsWOTD() == 1) {
send(pClientIP, pClientPort, "+OK Game continues");
u.setState(2);
u.updateLastDayWOTDPlayed();
@@ -93,10 +94,15 @@ public class WordleServer extends Server {
send(pClientIP, pClientPort, "-ERR game finished");
}
} else if (m.equalsIgnoreCase("PLAY")) {
if (isToday(u.getLastDayWOTDPlayed()) && u.getGame().getGameStatus() != 1) {
u.getGame().startGame(query.getWord());
u.setState(2);
send(pClientIP, pClientPort, "+OK Game ready");
if (isToday(u.getLastDayWOTDPlayed())) {
if (u.getGame().getGameStatus() != 1) {
u.getGame().startGame(query.getWord(), 0);
u.setState(2);
send(pClientIP, pClientPort, "+OK Game ready");
} else if (u.getGame().getIsWOTD() == 0) {
u.setState(2);
send(pClientIP, pClientPort, "+OK Game continues");
}
} else {
send(pClientIP, pClientPort, "-ERR wotd not finished");
}
@@ -118,14 +124,18 @@ public class WordleServer extends Server {
case (2):
a += " game won";
u.increaseWonInTurnIndex(u.getGame().getGuessesCount() - 1);
u.setCurrentStreak(u.getCurrentStreak() + 1);
u.setTimesPlayed(u.getTimesPlayed() + 1);
u.updateWinPercentage();
u.setState(3);
break;
case (3):
a += " game lost";
u.setTimesPlayed(u.getTimesPlayed() + 1);
u.setCurrentStreak(0);
u.updateWinPercentage();
u.setState(3);
break;
default:
a += " what";
}
send(pClientIP, pClientPort, a);
} else {
@@ -143,7 +153,6 @@ public class WordleServer extends Server {
int n = Integer.parseInt("0" + substring);
String[] guesses = u.getGame().getGuesses();
if (6 >= n && n >= 1) {
//TODO:
if (guesses[n - 1] != null) {
String guess = guesses[n - 1];
send(pClientIP, pClientPort, "+OK " + guess + " " + u.getGame().checkGuess(guess));
@@ -151,13 +160,13 @@ public class WordleServer extends Server {
send(pClientIP, pClientPort, "-ERR word not typed yet");
}
} else if (n == 0) {
String a = "+OK ";
String a = "+OK";
for (int i = 0; i < 5; i++) {
if (guesses[i] != null) {
a += " " + guesses[i] + " " + u.getGame().checkGuess(guesses[i]);
send(pClientIP, pClientPort, guesses[i] + " " + u.getGame().checkGuess(guesses[i]));
}
}
send(pClientIP, pClientPort, a);
send(pClientIP, pClientPort, ".");
}
} else if (m.equalsIgnoreCase("EXIT")) {
u.updateLastDayWOTDPlayed();
@@ -171,19 +180,28 @@ public class WordleServer extends Server {
case 3:
// Zwischenphase(Angemeldet)
if (m.equalsIgnoreCase("STAT")) {
send(pClientIP, pClientPort,
"+OK" + '\n' + "times played: " + u.getTimesPlayed() + "\n" + "win percentage: "
+ u.getWinPercentage() + "\n" + "current streak: " + u.getCurrentStreak() + "\n"
+ "max streak: " + u.getMaxStreak() + "\n" + "won in 1 turn: "
+ u.getWonInTurnIndex(0) + "\n" + "won in 2 turn: " + u.getWonInTurnIndex(1) + "\n"
+ "won in 3 turn: " + u.getWonInTurnIndex(2) + "\n" + "won in 4 turn: "
+ u.getWonInTurnIndex(3) + "\n" + "won in 5 turn: " + u.getWonInTurnIndex(4) + "\n"
+ "won in 6 turn: " + u.getWonInTurnIndex(5) + "\n" + ".");
send(pClientIP, pClientPort, "+OK");
send(pClientIP, pClientPort, "times played: " + u.getTimesPlayed());
send(pClientIP, pClientPort, "times played: " + u.getTimesPlayed());
send(pClientIP, pClientPort, "win percentage: " + u.getWinPercentage());
send(pClientIP, pClientPort, "current streak: " + u.getCurrentStreak());
send(pClientIP, pClientPort, "max streak: " + u.getMaxStreak());
send(pClientIP, pClientPort, "won in 1 turn: " + u.getWonInTurnIndex(0));
send(pClientIP, pClientPort, "won in 2 turn: " + u.getWonInTurnIndex(1));
send(pClientIP, pClientPort, "won in 3 turn: " + u.getWonInTurnIndex(2));
send(pClientIP, pClientPort, "won in 4 turn: " + u.getWonInTurnIndex(3));
send(pClientIP, pClientPort, "won in 5 turn: " + u.getWonInTurnIndex(4));
send(pClientIP, pClientPort, "won in 6 turn: " + u.getWonInTurnIndex(5));
} else if (m.equalsIgnoreCase("PLAY")) {
if (isToday(u.getLastDayWOTDPlayed()) && u.getGame().getGameStatus() != 1) {
u.getGame().startGame(query.getWord());
u.setState(2);
send(pClientIP, pClientPort, "+OK Game ready");
if (isToday(u.getLastDayWOTDPlayed())) {
if (u.getGame().getGameStatus() != 1) {
u.getGame().startGame(query.getWord(), 0);
u.setState(2);
send(pClientIP, pClientPort, "+OK Game ready");
} else if (u.getGame().getIsWOTD() == 0) {
u.setState(2);
send(pClientIP, pClientPort, "+OK Game continues");
}
} else {
send(pClientIP, pClientPort, "-ERR wotd not finished");
}