forked from IF-LK-2020/wordle
Compare commits
13 Commits
untested
...
92d4f15e75
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
92d4f15e75 | ||
|
|
a78fac1baf | ||
|
|
84a81bf2b4 | ||
|
|
37736dbfad | ||
|
|
09ea7ea01e | ||
|
|
4d01389e2e | ||
|
|
f212bed8de | ||
|
|
93a419f10c | ||
|
|
e64344b5a2 | ||
|
|
1204f952c6 | ||
|
|
bf90f74b03 | ||
|
|
5e14802934 | ||
|
|
0c77b295d1 |
259
src/Game.java
259
src/Game.java
@@ -37,6 +37,8 @@ public class Game {
|
|||||||
this.ip = pClientIP;
|
this.ip = pClientIP;
|
||||||
this.port = pClientPort;
|
this.port = pClientPort;
|
||||||
|
|
||||||
|
words = new String[5];
|
||||||
|
|
||||||
send("+OK Hello there");
|
send("+OK Hello there");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,6 +47,9 @@ public class Game {
|
|||||||
msg = msg.toLowerCase().trim();
|
msg = msg.toLowerCase().trim();
|
||||||
|
|
||||||
if (msg.equals("quit")) {
|
if (msg.equals("quit")) {
|
||||||
|
if (user != null) {
|
||||||
|
saveGame();
|
||||||
|
}
|
||||||
send("+OK bye");
|
send("+OK bye");
|
||||||
wordleServer.closeConnection(ip, port);
|
wordleServer.closeConnection(ip, port);
|
||||||
System.exit(0); // TODO remove: Einfacher zum testen
|
System.exit(0); // TODO remove: Einfacher zum testen
|
||||||
@@ -91,7 +96,8 @@ public class Game {
|
|||||||
String args = msg.substring(5);
|
String args = msg.substring(5);
|
||||||
|
|
||||||
int pw = args.hashCode();
|
int pw = args.hashCode();
|
||||||
databaseConnector.executeStatement("SELECT * FROM User WHERE password = '" + pw + "' AND name = '" + tempLoginName + "'");
|
databaseConnector.executeStatement(
|
||||||
|
"SELECT * FROM User WHERE password = '" + pw + "' AND name = '" + tempLoginName + "'");
|
||||||
QueryResult result = databaseConnector.getCurrentQueryResult();
|
QueryResult result = databaseConnector.getCurrentQueryResult();
|
||||||
if (result != null && result.getData().length > 0) {
|
if (result != null && result.getData().length > 0) {
|
||||||
user = new User(tempLoginName);
|
user = new User(tempLoginName);
|
||||||
@@ -104,11 +110,15 @@ public class Game {
|
|||||||
databaseConnector.executeStatement("SELECT word FROM words WHERE id = " + getWOTDIndex());
|
databaseConnector.executeStatement("SELECT word FROM words WHERE id = " + getWOTDIndex());
|
||||||
QueryResult result = databaseConnector.getCurrentQueryResult();
|
QueryResult result = databaseConnector.getCurrentQueryResult();
|
||||||
if (result != null && result.getData().length > 0) {
|
if (result != null && result.getData().length > 0) {
|
||||||
wordle = result.getData()[0][0];
|
wordle = result.getData()[0][0].toLowerCase();
|
||||||
phase = GAME_PHASE;
|
phase = GAME_PHASE;
|
||||||
send("+OK game ready");
|
if (user != null) {
|
||||||
|
loadGame();
|
||||||
|
} else {
|
||||||
|
send("+OK game ready");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
send("-ERR Fatal error: WOTD could not be generated.");
|
send("-ERR fatal error: WOTD could not be generated.");
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (msg.startsWith("play")) {
|
} else if (msg.startsWith("play")) {
|
||||||
@@ -116,7 +126,16 @@ public class Game {
|
|||||||
if (user == null) {
|
if (user == null) {
|
||||||
send("-ERR not logged in.");
|
send("-ERR not logged in.");
|
||||||
} else {
|
} else {
|
||||||
|
databaseConnector
|
||||||
|
.executeStatement("SELECT lastFinishedWotdDay FROM User WHERE name = '" + user.getName() + "'");
|
||||||
|
QueryResult result = databaseConnector.getCurrentQueryResult();
|
||||||
|
if (result != null && result.getData().length > 0) {
|
||||||
|
if (result.getData()[0][0] != null && Integer.parseInt(result.getData()[0][0]) == currentDay()) {
|
||||||
|
playRandomWordle();
|
||||||
|
} else {
|
||||||
|
send("-ERR WOTD not finished.");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sendUniversalError();
|
sendUniversalError();
|
||||||
@@ -124,56 +143,274 @@ public class Game {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void gamePhase(String msg) {
|
private void gamePhase(String msg) {
|
||||||
if (msg.startsWith("send")) {
|
|
||||||
|
if (msg.startsWith("send ")) {
|
||||||
|
|
||||||
String args = msg.substring(5);
|
String args = msg.substring(5);
|
||||||
//vergleichen von wotd mit
|
|
||||||
//ja = spiel beendet und ausgabe word 11111
|
if (args.length() == 5) {
|
||||||
//nein = ausgabe 01102 oder so und pr<70>fen ob man noch ein wort eingebn kann
|
|
||||||
// ja game continues nein = game lost
|
databaseConnector.executeStatement("SELECT word FROM words WHERE word LIKE '" + args + "'");
|
||||||
|
QueryResult result = databaseConnector.getCurrentQueryResult();
|
||||||
|
if (result.getData().length > 0) {
|
||||||
|
|
||||||
|
String input = result.getData()[0][0].toLowerCase();
|
||||||
|
String code = generateCode(input);
|
||||||
|
|
||||||
|
send("+OK " + code);
|
||||||
|
if (code.equals("22222")) { // und ein wordle ist 5 Buchstaben lang :D
|
||||||
|
send("game won");
|
||||||
|
wordle = null;
|
||||||
|
if (user != null) {
|
||||||
|
setLastPlayedTimestamp();
|
||||||
|
user.increaseCurrentStreak();
|
||||||
|
if (user.getMaxStreak() < user.getCurrentStreak()) {
|
||||||
|
user.setMaxStreak(user.getCurrentStreak());
|
||||||
|
}
|
||||||
|
user.increaseWonInTurn(count + 1);
|
||||||
|
updateStats();
|
||||||
|
phase = END_PHASE;
|
||||||
|
} else {
|
||||||
|
phase = LOGIN_PHASE;
|
||||||
|
}
|
||||||
|
count = 0;
|
||||||
|
clearWords();
|
||||||
|
} else if (count == 5) {
|
||||||
|
send("game lost");
|
||||||
|
wordle = null;
|
||||||
|
if (user != null) {
|
||||||
|
setLastPlayedTimestamp();
|
||||||
|
user.setCurrentStreak(0);
|
||||||
|
updateStats();
|
||||||
|
phase = END_PHASE;
|
||||||
|
} else {
|
||||||
|
phase = LOGIN_PHASE;
|
||||||
|
}
|
||||||
|
count = 0;
|
||||||
|
clearWords();
|
||||||
|
} else {
|
||||||
|
words[count] = input;
|
||||||
|
send("game continues");
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
send("-ERR word not in dictionary.");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
send("-ERR wrong format.");
|
||||||
|
}
|
||||||
|
|
||||||
} else if (msg.startsWith("info")) {
|
} else if (msg.startsWith("info")) {
|
||||||
|
|
||||||
|
if (msg.length() == 4) {
|
||||||
|
send("+OK");
|
||||||
|
for (int i = 0; i < words.length; i++) {
|
||||||
|
if (words[i] == null) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
send(words[i] + " " + generateCode(words[i]));
|
||||||
|
}
|
||||||
|
send(".");
|
||||||
|
} else if (msg.length() == 6) {
|
||||||
|
|
||||||
|
String rawLine = msg.substring(5);
|
||||||
|
int line = -1;
|
||||||
|
try {
|
||||||
|
line = Integer.parseInt(rawLine) - 1;
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
send("-ERR wrong argument.");
|
||||||
|
}
|
||||||
|
if (line >= 0 && line < 5) {
|
||||||
|
if (words[line] != null) {
|
||||||
|
send("+OK " + words[line] + " " + generateCode(words[line]));
|
||||||
|
} else {
|
||||||
|
send("-ERR game hasn't progressed to this line yet.");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
send("-ERR couldn't parse line.");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
sendUniversalError();
|
||||||
|
}
|
||||||
|
|
||||||
} else if (msg.startsWith("exit")) {
|
} else if (msg.startsWith("exit")) {
|
||||||
|
|
||||||
|
if (user != null) {
|
||||||
|
saveGame();
|
||||||
|
phase = END_PHASE;
|
||||||
|
send("+OK");
|
||||||
|
} else {
|
||||||
|
send("-ERR not logged in.");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
sendUniversalError();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void endPhase(String msg) {
|
private void endPhase(String msg) {
|
||||||
|
|
||||||
if (msg.startsWith("stat")) {
|
if (msg.startsWith("stat")) {
|
||||||
|
send("+OK");
|
||||||
|
|
||||||
|
send("times Played: " + user.getTimesPlayed());
|
||||||
|
|
||||||
|
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 Turn" + i + ": " + user.getWonInTurn(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
send(".");
|
||||||
|
|
||||||
} else if (msg.startsWith("play")) {
|
} else if (msg.startsWith("play")) {
|
||||||
|
if (wordle == null) {
|
||||||
|
playRandomWordle();
|
||||||
|
} else {
|
||||||
|
loadGame();
|
||||||
|
phase = GAME_PHASE;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sendUniversalError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveGame() {
|
||||||
|
databaseConnector.executeStatement("SELECT * FROM Spielstand WHERE Username LIKE '" + user.getName() + "'");
|
||||||
|
QueryResult result = databaseConnector.getCurrentQueryResult();
|
||||||
|
if (result == null || result.getData().length == 0) {
|
||||||
|
databaseConnector.executeStatement("INSERT INTO Spielstand (Username) VALUES('" + user.getName() + "')");
|
||||||
|
}
|
||||||
|
for (int i = 0; i < words.length; i++) {
|
||||||
|
databaseConnector.executeStatement("UPDATE Spielstand SET word" + (i + 1) + " = '" + words[i]
|
||||||
|
+ "' WHERE Username LIKE '" + user.getName() + "'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadGame() {
|
||||||
|
|
||||||
|
databaseConnector.executeStatement("SELECT * FROM Spielstand WHERE Username = '" + user.getName() + "'");
|
||||||
|
QueryResult result = databaseConnector.getCurrentQueryResult();
|
||||||
|
if (result != null && result.getData().length > 0 && !result.getData()[0][0].equals("null")) {
|
||||||
|
boolean foundEnd = false;
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
if (!result.getData()[0][i].equals("null")) {
|
||||||
|
words[i] = result.getData()[0][i];
|
||||||
|
} else if (!foundEnd) {
|
||||||
|
count = i;
|
||||||
|
foundEnd = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
send("+OK game running");
|
||||||
|
} else {
|
||||||
|
send("+OK game ready");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setLastPlayedTimestamp() {
|
||||||
|
databaseConnector.executeStatement(
|
||||||
|
"UPDATE User SET lastFinishedWotdDay = " + currentDay() + " WHERE name LIKE '" + user.getName() + "'");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void clearWords() {
|
||||||
|
|
||||||
|
for (int i = 0; i < words.length; i++) {
|
||||||
|
words[i] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String generateCode(String input) {
|
||||||
|
|
||||||
|
String code = "";
|
||||||
|
outer: for (int i = 0; i < input.length(); i++) {
|
||||||
|
char c = input.charAt(i);
|
||||||
|
if (c == wordle.charAt(i)) {
|
||||||
|
code += "2";
|
||||||
|
} else {
|
||||||
|
for (int j = 0; j < wordle.length(); j++) {
|
||||||
|
if (c == wordle.charAt(j)) {
|
||||||
|
code += "1";
|
||||||
|
continue outer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
code += "0";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
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.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void send(String msg) {
|
private void send(String msg) {
|
||||||
|
|
||||||
wordleServer.send(ip, port, msg);
|
wordleServer.send(ip, port, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendUniversalError() {
|
private void sendUniversalError() {
|
||||||
|
|
||||||
send("-ERR command not valid in this state");
|
send("-ERR command not valid in this state");
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getWOTDIndex() {
|
private int getWOTDIndex() {
|
||||||
long days = ChronoUnit.DAYS.between(LocalDate.ofEpochDay(0), LocalDate.now());
|
|
||||||
|
int days = currentDay();
|
||||||
int hash = ("" + days).hashCode();
|
int hash = ("" + days).hashCode();
|
||||||
return hash % 949 + 1;
|
return hash % 949 + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int currentDay() {
|
||||||
|
|
||||||
|
return (int) ChronoUnit.DAYS.between(LocalDate.ofEpochDay(0), LocalDate.now());
|
||||||
|
}
|
||||||
|
|
||||||
public String getIp() {
|
public String getIp() {
|
||||||
|
|
||||||
return ip;
|
return ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIp(String ip) {
|
public void setIp(String ip) {
|
||||||
|
|
||||||
this.ip = ip;
|
this.ip = ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPort() {
|
public int getPort() {
|
||||||
|
|
||||||
return port;
|
return port;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPort(int port) {
|
public void setPort(int port) {
|
||||||
|
|
||||||
this.port = port;
|
this.port = port;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
243
src/User.java
243
src/User.java
@@ -1,154 +1,137 @@
|
|||||||
public class User {
|
public class User {
|
||||||
|
|
||||||
private String name = "default";
|
private String name = "default";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Konstruktor für Objekte der Klasse User
|
* Konstruktor für Objekte der Klasse User
|
||||||
*/
|
*/
|
||||||
public User(String name)
|
public User(String name) {
|
||||||
{
|
this.name = name;
|
||||||
setName(name);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
Game.databaseConnector
|
||||||
|
.executeStatement("UPDATE User SET password = " + password + " Where name LIKE '" + this.name + "'");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
Game.databaseConnector.executeStatement("SELECT password FROM User Where name LIKE '" + this.name + "'");
|
||||||
|
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public void setPassword(String password)
|
public void setName(String name) {
|
||||||
{
|
Game.databaseConnector
|
||||||
Game.databaseConnector.executeStatement("UPDATE User SET password = " + password + " Where name = " + this.name);
|
.executeStatement("UPDATE User SET name = " + name + " Where name LIKE '" + this.name + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
public String getPassword()
|
public void setWinPercentage(float winPercentage) {
|
||||||
{
|
Game.databaseConnector.executeStatement(
|
||||||
Game.databaseConnector.executeStatement("SELECT password FROM User Where name =" + this.name);
|
"UPDATE User SET winPercentage = " + winPercentage + " Where name LIKE '" + this.name + "'");
|
||||||
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
}
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
public float getWinPercentage() {
|
||||||
|
Game.databaseConnector.executeStatement("SELECT winPercentage FROM User Where name LIKE '" + this.name + "'");
|
||||||
|
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
||||||
|
if (result == null) {
|
||||||
|
return 0f;
|
||||||
|
} else {
|
||||||
|
return Float.parseFloat(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTimesPlayed(int timesPlayed) {
|
||||||
|
Game.databaseConnector.executeStatement(
|
||||||
|
"UPDATE User SET timesPlayed = " + timesPlayed + " Where name LIKE '" + this.name + "'");
|
||||||
|
}
|
||||||
|
|
||||||
public void setName(String name)
|
public int getTimesPlayed() {
|
||||||
{
|
Game.databaseConnector.executeStatement("SELECT timesPlayed FROM User Where name LIKE '" + this.name + "'");
|
||||||
Game.databaseConnector.executeStatement("UPDATE User SET name = " + name + " Where name = " + this.name);
|
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
||||||
}
|
if (result == null) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return Integer.parseInt(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void increaseTimesPlayed() {
|
||||||
|
int temp = getTimesPlayed();
|
||||||
|
temp++;
|
||||||
|
setTimesPlayed(temp);
|
||||||
|
}
|
||||||
|
|
||||||
public String getName()
|
public void setCurrentStreak(int currentStreak) {
|
||||||
{
|
Game.databaseConnector.executeStatement(
|
||||||
return name;
|
"UPDATE User SET currentStreak = " + currentStreak + " Where name LIKE '" + this.name + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getCurrentStreak() {
|
||||||
|
Game.databaseConnector.executeStatement("SELECT currentStreak FROM User Where name LIKE '" + this.name + "'");
|
||||||
|
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
||||||
|
if (result == null) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return Integer.parseInt(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void increaseCurrentStreak() {
|
||||||
|
int temp = getCurrentStreak();
|
||||||
|
temp++;
|
||||||
|
setCurrentStreak(temp);
|
||||||
|
}
|
||||||
|
|
||||||
public void setWinPercentage(float winPercentage)
|
public void setMaxStreak(int maxStreak) {
|
||||||
{
|
Game.databaseConnector
|
||||||
Game.databaseConnector.executeStatement("UPDATE User SET winPercentage = " + winPercentage + " Where name = " + this.name);
|
.executeStatement("UPDATE User SET maxStreak = " + maxStreak + " Where name LIKE '" + this.name + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getMaxStreak() {
|
||||||
|
Game.databaseConnector.executeStatement("SELECT maxStreak FROM User Where name LIKE '" + this.name + "'");
|
||||||
|
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
||||||
|
if (result == null) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return Integer.parseInt(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public float getWinPercentage()
|
public void increaseMaxStreak() {
|
||||||
{
|
int temp = getMaxStreak();
|
||||||
Game.databaseConnector.executeStatement("SELECT winPercentage FROM User Where name =" + this.name);
|
temp++;
|
||||||
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
setMaxStreak(temp);
|
||||||
return Float.parseFloat(result);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
public void setWonInTurn(int row, int value) {
|
||||||
|
Game.databaseConnector.executeStatement(
|
||||||
|
"UPDATE User SET wonInTurn" + row + " = " + value + " Where name LIKE '" + this.name + "'");
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getWonInTurn(int row) {
|
||||||
|
Game.databaseConnector
|
||||||
|
.executeStatement("SELECT wonInTurn" + row + " FROM User Where name LIKE '" + this.name + "'");
|
||||||
|
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
||||||
|
if (result == null) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return Integer.parseInt(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void setTimesPlayed(int timesPlayed)
|
public void increaseWonInTurn(int row) {
|
||||||
{
|
int temp = getWonInTurn(row) + 1;
|
||||||
Game.databaseConnector.executeStatement("UPDATE User SET timesPlayed = " + timesPlayed + " Where name = " + this.name);
|
setWonInTurn(row, temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public int getTimesPlayed()
|
|
||||||
{
|
|
||||||
Game.databaseConnector.executeStatement("SELECT timesPlayed FROM User Where name =" + this.name);
|
|
||||||
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
|
||||||
return Integer.parseInt(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void increaseTimesPlayed()
|
|
||||||
{
|
|
||||||
int temp = getTimesPlayed();
|
|
||||||
temp++;
|
|
||||||
setTimesPlayed(temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setCurrentStreak(int currentStreak)
|
|
||||||
{
|
|
||||||
Game.databaseConnector.executeStatement("UPDATE User SET currentStreak = " + currentStreak + " Where name = " + this.name);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public int getCurrentStreak()
|
|
||||||
{
|
|
||||||
Game.databaseConnector.executeStatement("SELECT currentStreak FROM User Where name =" + this.name);
|
|
||||||
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
|
||||||
return Integer.parseInt(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void increaseCurrentStreak()
|
|
||||||
{
|
|
||||||
int temp = getCurrentStreak();
|
|
||||||
temp++;
|
|
||||||
setCurrentStreak(temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setMaxStreak(int maxStreak)
|
|
||||||
{
|
|
||||||
Game.databaseConnector.executeStatement("UPDATE User SET maxStreak = " + maxStreak + " Where name = " + this.name);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public int getMaxStreak()
|
|
||||||
{
|
|
||||||
Game.databaseConnector.executeStatement("SELECT maxStreak FROM User Where name =" + this.name);
|
|
||||||
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
|
||||||
return Integer.parseInt(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void increaseMaxStreak()
|
|
||||||
{
|
|
||||||
int temp = getMaxStreak();
|
|
||||||
temp++;
|
|
||||||
setMaxStreak(temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setWonInTurn(int row, int value)
|
|
||||||
{
|
|
||||||
Game.databaseConnector.executeStatement("UPDATE User SET wonInTurn" + row + " = " + value + " Where name = " + this.name);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public int getWonInTurn(int row)
|
|
||||||
{
|
|
||||||
Game.databaseConnector.executeStatement("SELECT wonInTurn" + row + " FROM User Where name =" + this.name);
|
|
||||||
String result = Game.databaseConnector.getCurrentQueryResult().getData()[0][0];
|
|
||||||
return Integer.parseInt(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void increaseWonInTurn(int row)
|
|
||||||
{
|
|
||||||
int temp = getWonInTurn(row) + 1;
|
|
||||||
setWonInTurn(row, temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int[] getWonInTurnFull()
|
|
||||||
{
|
|
||||||
int[] result = {getWonInTurn(1),getWonInTurn(2),getWonInTurn(3),getWonInTurn(4),getWonInTurn(5),getWonInTurn(6)};
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
public int[] getWonInTurnFull() {
|
||||||
|
int[] result = { getWonInTurn(1), getWonInTurn(2), getWonInTurn(3), getWonInTurn(4), getWonInTurn(5),
|
||||||
|
getWonInTurn(6) };
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,6 @@ public class WordleServer extends Server {
|
|||||||
new WordleServer();
|
new WordleServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private DatabaseConnector db;
|
|
||||||
|
|
||||||
|
|
||||||
public WordleServer() {
|
public WordleServer() {
|
||||||
this(DEFAULT_PORT);
|
this(DEFAULT_PORT);
|
||||||
}
|
}
|
||||||
@@ -22,8 +18,6 @@ public class WordleServer extends Server {
|
|||||||
public WordleServer( int pPort ) {
|
public WordleServer( int pPort ) {
|
||||||
super(pPort);
|
super(pPort);
|
||||||
|
|
||||||
db = new DatabaseConnector("", 0, "wordle.db", "", "");
|
|
||||||
|
|
||||||
games = new List<>();
|
games = new List<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ dependency1.type=UsesDependency
|
|||||||
dependency10.from=Game
|
dependency10.from=Game
|
||||||
dependency10.to=DatabaseConnector
|
dependency10.to=DatabaseConnector
|
||||||
dependency10.type=UsesDependency
|
dependency10.type=UsesDependency
|
||||||
|
dependency11.from=Game
|
||||||
|
dependency11.to=QueryResult
|
||||||
|
dependency11.type=UsesDependency
|
||||||
dependency2.from=DatabaseConnector
|
dependency2.from=DatabaseConnector
|
||||||
dependency2.to=Queue
|
dependency2.to=Queue
|
||||||
dependency2.type=UsesDependency
|
dependency2.type=UsesDependency
|
||||||
@@ -21,7 +24,7 @@ dependency6.from=WordleServer
|
|||||||
dependency6.to=DatabaseConnector
|
dependency6.to=DatabaseConnector
|
||||||
dependency6.type=UsesDependency
|
dependency6.type=UsesDependency
|
||||||
dependency7.from=User
|
dependency7.from=User
|
||||||
dependency7.to=DatabaseConnector
|
dependency7.to=Game
|
||||||
dependency7.type=UsesDependency
|
dependency7.type=UsesDependency
|
||||||
dependency8.from=Game
|
dependency8.from=Game
|
||||||
dependency8.to=WordleServer
|
dependency8.to=WordleServer
|
||||||
@@ -29,104 +32,90 @@ dependency8.type=UsesDependency
|
|||||||
dependency9.from=Game
|
dependency9.from=Game
|
||||||
dependency9.to=User
|
dependency9.to=User
|
||||||
dependency9.type=UsesDependency
|
dependency9.type=UsesDependency
|
||||||
editor.fx.0.height=1017
|
editor.fx.0.height=1056
|
||||||
editor.fx.0.width=854
|
editor.fx.0.width=1936
|
||||||
editor.fx.0.x=100
|
editor.fx.0.x=-8
|
||||||
editor.fx.0.y=100
|
editor.fx.0.y=-8
|
||||||
objectbench.height=153
|
objectbench.height=152
|
||||||
objectbench.width=1656
|
objectbench.width=1896
|
||||||
package.divider.horizontal=0.6
|
package.divider.horizontal=0.6
|
||||||
package.divider.vertical=0.8272138228941684
|
package.divider.vertical=0.8336820083682008
|
||||||
package.editor.height=759
|
package.editor.height=790
|
||||||
package.editor.width=1545
|
package.editor.width=1785
|
||||||
package.editor.x=0
|
package.editor.x=0
|
||||||
package.editor.y=0
|
package.editor.y=0
|
||||||
package.frame.height=1026
|
package.frame.height=1056
|
||||||
package.frame.width=1696
|
package.frame.width=1936
|
||||||
package.numDependencies=10
|
package.numDependencies=11
|
||||||
package.numTargets=11
|
package.numTargets=9
|
||||||
package.showExtends=true
|
package.showExtends=true
|
||||||
package.showUses=true
|
package.showUses=true
|
||||||
project.charset=windows-1252
|
project.charset=windows-1252
|
||||||
readme.height=60
|
readme.height=58
|
||||||
readme.name=@README
|
readme.name=@README
|
||||||
readme.width=49
|
readme.width=47
|
||||||
readme.x=10
|
readme.x=10
|
||||||
readme.y=10
|
readme.y=10
|
||||||
target1.height=70
|
target1.height=70
|
||||||
target1.name=Letter
|
target1.name=DatabaseConnector
|
||||||
target1.showInterface=false
|
target1.showInterface=false
|
||||||
target1.type=ClassTarget
|
target1.type=ClassTarget
|
||||||
target1.width=120
|
target1.width=150
|
||||||
target1.x=10
|
target1.x=220
|
||||||
target1.y=80
|
target1.y=80
|
||||||
target10.height=70
|
target2.height=60
|
||||||
target10.name=GUI
|
target2.name=QueryResult
|
||||||
target10.showInterface=false
|
|
||||||
target10.type=ClassTarget
|
|
||||||
target10.width=120
|
|
||||||
target10.x=10
|
|
||||||
target10.y=270
|
|
||||||
target11.height=60
|
|
||||||
target11.name=Queue
|
|
||||||
target11.showInterface=false
|
|
||||||
target11.type=ClassTarget
|
|
||||||
target11.width=160
|
|
||||||
target11.x=100
|
|
||||||
target11.y=520
|
|
||||||
target2.height=70
|
|
||||||
target2.name=DatabaseConnector
|
|
||||||
target2.showInterface=false
|
target2.showInterface=false
|
||||||
target2.type=ClassTarget
|
target2.type=ClassTarget
|
||||||
target2.width=150
|
target2.width=100
|
||||||
target2.x=220
|
target2.x=100
|
||||||
target2.y=80
|
target2.y=600
|
||||||
target3.height=60
|
target3.height=100
|
||||||
target3.name=QueryResult
|
target3.name=Game
|
||||||
target3.showInterface=false
|
target3.showInterface=false
|
||||||
target3.type=ClassTarget
|
target3.type=ClassTarget
|
||||||
target3.width=100
|
target3.width=180
|
||||||
target3.x=100
|
target3.x=680
|
||||||
target3.y=600
|
target3.y=320
|
||||||
target4.height=100
|
target4.height=70
|
||||||
target4.name=Game
|
target4.name=User
|
||||||
target4.showInterface=false
|
target4.showInterface=false
|
||||||
target4.type=ClassTarget
|
target4.type=ClassTarget
|
||||||
target4.width=180
|
target4.width=130
|
||||||
target4.x=680
|
target4.x=930
|
||||||
target4.y=320
|
target4.y=180
|
||||||
target5.height=70
|
target5.height=70
|
||||||
target5.name=User
|
target5.name=Server
|
||||||
target5.showInterface=false
|
target5.showInterface=false
|
||||||
target5.type=ClassTarget
|
target5.type=AbstractTarget
|
||||||
target5.width=130
|
target5.width=110
|
||||||
target5.x=930
|
target5.x=310
|
||||||
target5.y=180
|
target5.y=500
|
||||||
target6.height=70
|
target6.height=70
|
||||||
target6.name=Server
|
target6.name=WordleServer
|
||||||
target6.showInterface=false
|
target6.showInterface=false
|
||||||
target6.type=AbstractTarget
|
target6.type=ClassTarget
|
||||||
target6.width=110
|
target6.width=110
|
||||||
target6.x=310
|
target6.x=480
|
||||||
target6.y=500
|
target6.y=500
|
||||||
target7.height=70
|
target7.height=70
|
||||||
target7.name=WordleServer
|
target7.name=Guest
|
||||||
target7.showInterface=false
|
target7.showInterface=false
|
||||||
target7.type=ClassTarget
|
target7.type=ClassTarget
|
||||||
target7.width=110
|
target7.width=130
|
||||||
target7.x=480
|
target7.x=10
|
||||||
target7.y=500
|
target7.y=180
|
||||||
target8.height=70
|
target8.height=60
|
||||||
target8.name=Guest
|
target8.name=List
|
||||||
target8.showInterface=false
|
target8.showInterface=false
|
||||||
target8.type=ClassTarget
|
target8.type=ClassTarget
|
||||||
target8.width=130
|
target8.width=150
|
||||||
target8.x=10
|
target8.x=560
|
||||||
target8.y=180
|
target8.y=640
|
||||||
target9.height=60
|
target9.height=60
|
||||||
target9.name=List
|
target9.name=Queue
|
||||||
target9.showInterface=false
|
target9.showInterface=false
|
||||||
target9.type=ClassTarget
|
target9.type=ClassTarget
|
||||||
target9.width=150
|
target9.width=160
|
||||||
target9.x=560
|
target9.x=100
|
||||||
target9.y=640
|
target9.y=520
|
||||||
|
|||||||
Reference in New Issue
Block a user