working stats

This commit is contained in:
Tim Tersch
2022-03-24 11:30:17 +01:00
parent f212bed8de
commit 4d01389e2e

View File

@@ -117,15 +117,7 @@ public class Game {
if (user == null) {
send("-ERR not logged in.");
} else {
databaseConnector.executeStatement("SELECT word FROM words WHERE id = " + (int) (Math.random() * 950));
QueryResult result = databaseConnector.getCurrentQueryResult();
if (result != null && result.getData().length > 0) {
wordle = result.getData()[0][0].toLowerCase();
phase = GAME_PHASE;
send("+OK game ready");
} else {
send("-ERR fatal error: Wordle could not be generated.");
}
playRandomWordle();
}
} else {
sendUniversalError();
@@ -137,7 +129,9 @@ public class Game {
if (msg.startsWith("send ")) {
String args = msg.substring(5);
System.out.println(wordle);
System.out.println(wordle);
if (args.length() == 5) {
databaseConnector.executeStatement("SELECT word FROM words WHERE word LIKE '" + args + "'");
@@ -165,20 +159,33 @@ System.out.println(wordle);
send(code);
if (code.equals("22222")) { // und ein wordle ist 5 Buchstaben lang :D
send("game won");
wordle = null;
if (user != null) {
user.increaseCurrentStreak();
if (user.getMaxStreak() < user.getCurrentStreak()) {
user.setMaxStreak(user.getCurrentStreak());
}
user.increaseWonInTurn(count + 1);
updateStats();
phase = END_PHASE;
} else {
phase = LOGIN_PHASE;
}
} else if (count == 6) {
count = 0;
} else if (count == 5) {
send("game lost");
if (user != null) {
user.setCurrentStreak(0);
updateStats();
phase = END_PHASE;
} else {
phase = LOGIN_PHASE;
}
count = 0;
} else {
send("game continues");
count++;
}
} else {
@@ -194,6 +201,7 @@ System.out.println(wordle);
} else if (msg.startsWith("exit")) {
if (user != null) {
send("+OK");
phase = END_PHASE;
} else {
send("-ERR not logged in.");
@@ -210,20 +218,49 @@ System.out.println(wordle);
send("times Played: " + user.getTimesPlayed());
send("win Percentage: " + user.getWinPercentage());
send("win Percentage: " + (int) user.getWinPercentage() + "%");
send("current Streak: " + user.getCurrentStreak());
send("max Streak: " + user.getMaxStreak());
for (int i = 1; i < 6; i++) {
send("won in Turn1: " + user.getWonInTurn(i));
for (int i = 1; i <= 6; i++) {
send("won in Turn" + i + ": " + user.getWonInTurn(i));
}
} else if (msg.startsWith("play")) {
if (wordle == null) {
playRandomWordle();
} else {
phase = GAME_PHASE;
send("+OK game ready");
}
} else {
sendUniversalError();
}
}
private void updateStats() {
user.increaseTimesPlayed();
int totalWins = 0;
for (int i = 1; i <= 6; i++) {
totalWins += user.getWonInTurn(i);
}
float winP = (float) totalWins / user.getTimesPlayed();
user.setWinPercentage(Math.round(winP * 100));
}
private void playRandomWordle() {
databaseConnector.executeStatement("SELECT word FROM words WHERE id = " + (int) (Math.random() * 950));
QueryResult result = databaseConnector.getCurrentQueryResult();
if (result != null && result.getData().length > 0) {
wordle = result.getData()[0][0].toLowerCase();
phase = GAME_PHASE;
send("+OK game ready");
} else {
send("-ERR fatal error: Wordle could not be generated.");
}
}