diff --git a/src/Guest.java b/src/Guest.java new file mode 100644 index 0000000..3837684 --- /dev/null +++ b/src/Guest.java @@ -0,0 +1,141 @@ +/** + * Beschreiben Sie hier die Klasse User. + * + * @author (Ihr Name) + * @version (eine Versionsnummer oder ein Datum) + */ +public class Guest +{ + // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen + private String name; + private String password; + private float winPercentage; + private int timesPlayed; + private int currentStreak; + private int maxStreak; + private int[] wonInTurn = {0,0,0,0,0,0}; + + /** + * Konstruktor für Objekte der Klasse User + */ + public Guest() + { + // Instanzvariable initialisieren + + } + + + public void setPassword(String password) + { + // tragen Sie hier den Code ein + this.password = password; + } + + public String getPassword() + { + return password; + } + + + public void setName(String name) + { + // tragen Sie hier den Code ein + this.name = name; + } + + public String getName() + { + return name; + } + + + public void setWinPercentage(float winPercentage) + { + // tragen Sie hier den Code ein + this.winPercentage = winPercentage; + } + + public float getWinPercentage() + { + int sum = 0; + for(int i = 0;i < wonInTurn.length;i++) + { + sum += wonInTurn[i]; + } + winPercentage = sum / timesPlayed; + return winPercentage; + } + + + public void setTimesPlayed(int timesPlayed) + { + // tragen Sie hier den Code ein + this.timesPlayed = timesPlayed; + } + + public int getTimesPlayed() + { + return timesPlayed; + } + + public void increaseTimesPlayed() + { + timesPlayed = timesPlayed + 1; + } + + + public void setCurrentStreak(int currentStreak) + { + // tragen Sie hier den Code ein + this.currentStreak = currentStreak; + } + + public int getCurrentStreak() + { + return currentStreak; + } + + public void increaseCurrentStreak() + { + currentStreak = currentStreak + 1; + } + + + public void setMaxStreak(int maxStreak) + { + this.maxStreak = maxStreak; + } + + public int getMaxStreak() + { + return maxStreak; + } + + public void increaseMaxStreak() + { + maxStreak = maxStreak + 1; + } + + + public void setWonInTurn(int row, int value) + { + this.wonInTurn[row] = value; + } + + public int getWonInTurn(int row) + { + int temp = wonInTurn[row]; + return temp; + } + + public void increaseWonInTurn(int row) + { + int temp = getWonInTurn(row) + 1; + setWonInTurn(row, temp); + } + + public int[] getWonInTurnFull() + { + return wonInTurn; + } +} \ No newline at end of file diff --git a/src/User.java b/src/User.java index 103db1e..e4b0333 100644 --- a/src/User.java +++ b/src/User.java @@ -1,138 +1,148 @@ -/** - * Beschreiben Sie hier die Klasse User. - * - * @author (Ihr Name) - * @version (eine Versionsnummer oder ein Datum) - */ -public class User +public class User extends Guest { - // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen - private String name; - private String password; - private int timesPlayed; - private float winPercentage; - private int currentStreak; - private int maxStreak; - private int[] wonInTurn; - /** - * Konstruktor für Objekte der Klasse User - */ - public User() - { - // Instanzvariable initialisieren - - } + static DatabaseConnector databaseConnector;// Datenbankverbindung aufstellen + private String name = "default"; /** - * Ein Beispiel einer Methode - ersetzen Sie diesen Kommentar mit Ihrem eigenen - * - * @param y ein Beispielparameter für eine Methode - * @return die Summe aus x und y + * Konstruktor für Objekte der Klasse User */ - public void setPassword(String password) + public User(String name) { - // tragen Sie hier den Code ein - this.password = password; + databaseConnector = new DatabaseConnector("", 0, "wordle.db", "", ""); + setName(name); } - + + + @Override + public void setPassword(String password) + { + databaseConnector.executeStatement("UPDATE User SET password = " + password + " Where name = " + this.name); + } + + @Override public String getPassword() { - return password; + databaseConnector.executeStatement("SELECT password FROM User Where name =" + this.name); + String result = databaseConnector.getCurrentQueryResult().getData()[0][0]; + return result; } - + + + @Override public void setName(String name) { - // tragen Sie hier den Code ein - this.name = name; + databaseConnector.executeStatement("UPDATE User SET name = " + name + " Where name = " + this.name); } + @Override public String getName() { - return name; + return name; } - public void setTimesPlayed(int timesPlayed) + + @Override + public void setWinPercentage(float winPercentage) { - // tragen Sie hier den Code ein - this.timesPlayed = timesPlayed; - } - - public int getTimesPlayed() - { - return timesPlayed; - } - - public void increaseTimesPlayed() - { - timesPlayed = timesPlayed + 1; - } - - public void setwinPercentage(float winPercentage) - { - // tragen Sie hier den Code ein - this.winPercentage = winPercentage; + databaseConnector.executeStatement("UPDATE User SET winPercentage = " + winPercentage + " Where name = " + this.name); } + @Override public float getWinPercentage() { - return winPercentage; + databaseConnector.executeStatement("SELECT winPercentage FROM User Where name =" + this.name); + String result = databaseConnector.getCurrentQueryResult().getData()[0][0]; + return Float.parseFloat(result); + } + + + @Override + public void setTimesPlayed(int timesPlayed) + { + databaseConnector.executeStatement("UPDATE User SET timesPlayed = " + timesPlayed + " Where name = " + this.name); + } + + @Override + public int getTimesPlayed() + { + databaseConnector.executeStatement("SELECT timesPlayed FROM User Where name =" + this.name); + String result = databaseConnector.getCurrentQueryResult().getData()[0][0]; + return Integer.parseInt(result); } - public void calculateWinPercentage() + @Override + public void increaseTimesPlayed() { - int sum = 0; - for(int i = 0;i < wonInTurn.length;i++) - { - sum += wonInTurn[i]; - } - winPercentage = sum / timesPlayed; - } - - public void setCurrentStreak(int currentStreak) - { - // tragen Sie hier den Code ein - this.currentStreak = currentStreak; - } - - public int getCurrentStreak() - { - return currentStreak; - } - - public void increaseCurrentStreak() - { - currentStreak = currentStreak + 1; - } - - public void setMaxStreak(int maxStreak) - { - this.maxStreak = maxStreak; - } - - public int getMaxStreak() - { - return maxStreak; - } - - public void increaseMaxStreak() - { - maxStreak = maxStreak + 1; - } - - public void setWonInTurn(int[] wonInTurn) - { - this.wonInTurn = wonInTurn; + int temp = getTimesPlayed(); + temp++; + setTimesPlayed(temp); } - public int getWonInTurn(int turn) + + @Override + public void setCurrentStreak(int currentStreak) { - int temp = wonInTurn[turn]; - return temp; + databaseConnector.executeStatement("UPDATE User SET currentStreak = " + currentStreak + " Where name = " + this.name); + } + + @Override + public int getCurrentStreak() + { + databaseConnector.executeStatement("SELECT currentStreak FROM User Where name =" + this.name); + String result = databaseConnector.getCurrentQueryResult().getData()[0][0]; + return Integer.parseInt(result); + } + + @Override + public void increaseCurrentStreak() + { + int temp = getCurrentStreak(); + temp++; + setCurrentStreak(temp); + } + + + @Override + public void setMaxStreak(int maxStreak) + { + databaseConnector.executeStatement("UPDATE User SET maxStreak = " + maxStreak + " Where name = " + this.name); + } + + @Override + public int getMaxStreak() + { + databaseConnector.executeStatement("SELECT maxStreak FROM User Where name =" + this.name); + String result = databaseConnector.getCurrentQueryResult().getData()[0][0]; + return Integer.parseInt(result); + } + + @Override + public void increaseMaxStreak() + { + int temp = getMaxStreak(); + temp++; + setMaxStreak(temp); + } + + + @Override + public void setWonInTurn(int row, int value) + { + databaseConnector.executeStatement("UPDATE User SET wonInTurn" + row + " = " + value + " Where name = " + this.name); + } + + @Override + public int getWonInTurn(int row) + { + databaseConnector.executeStatement("SELECT wonInTurn" + row + " FROM User Where name =" + this.name); + String result = databaseConnector.getCurrentQueryResult().getData()[0][0]; + return Integer.parseInt(result); } - public void increaseWonInTurn() + public int[] getWonInTurnFull() { - + int[] result = {getWonInTurn(1),getWonInTurn(2),getWonInTurn(3),getWonInTurn(4),getWonInTurn(5),getWonInTurn(6)}; + return result; } -} \ No newline at end of file +} diff --git a/src/WordleServer.java b/src/WordleServer.java index 3d125bc..2df4942 100644 --- a/src/WordleServer.java +++ b/src/WordleServer.java @@ -23,7 +23,7 @@ public class WordleServer extends Server { super(pPort); db = new DatabaseConnector("", 0, "wordle.db", "", ""); - + games = new List<>(); } diff --git a/src/package.bluej b/src/package.bluej index a6cbffb..835bd42 100644 --- a/src/package.bluej +++ b/src/package.bluej @@ -2,121 +2,117 @@ dependency1.from=DatabaseConnector dependency1.to=QueryResult dependency1.type=UsesDependency +dependency10.from=User +dependency10.to=DatabaseConnector +dependency10.type=UsesDependency dependency2.from=DatabaseConnector dependency2.to=Queue dependency2.type=UsesDependency dependency3.from=Server dependency3.to=List dependency3.type=UsesDependency -dependency4.from=WordleServer -dependency4.to=List +dependency4.from=Game +dependency4.to=WordleServer dependency4.type=UsesDependency -dependency5.from=WordleServer -dependency5.to=Game +dependency5.from=Game +dependency5.to=User dependency5.type=UsesDependency -dependency6.from=WordleServer +dependency6.from=Game dependency6.to=DatabaseConnector dependency6.type=UsesDependency -dependency7.from=Game -dependency7.to=WordleServer +dependency7.from=WordleServer +dependency7.to=List dependency7.type=UsesDependency -dependency8.from=Game -dependency8.to=User +dependency8.from=WordleServer +dependency8.to=Game dependency8.type=UsesDependency -dependency9.from=Game +dependency9.from=WordleServer dependency9.to=DatabaseConnector dependency9.type=UsesDependency -editor.fx.0.height=1026 -editor.fx.0.width=1696 -editor.fx.0.x=-8 -editor.fx.0.y=-8 -objectbench.height=194 -objectbench.width=1656 +editor.fx.0.height=739 +editor.fx.0.width=816 +editor.fx.0.x=552 +editor.fx.0.y=100 +objectbench.height=155 +objectbench.width=1892 package.divider.horizontal=0.6 -package.divider.vertical=0.7829373650107991 -package.editor.height=718 -package.editor.width=1545 +package.divider.vertical=0.8305439330543933 +package.editor.height=787 +package.editor.width=1781 package.editor.x=0 package.editor.y=0 -package.frame.height=1026 -package.frame.width=1696 -package.numDependencies=9 -package.numTargets=10 +package.frame.height=1056 +package.frame.width=1932 +package.numDependencies=10 +package.numTargets=9 package.showExtends=true package.showUses=true project.charset=windows-1252 -readme.height=60 +readme.height=58 readme.name=@README -readme.width=49 +readme.width=47 readme.x=10 readme.y=10 target1.height=70 -target1.name=Letter +target1.name=DatabaseConnector target1.showInterface=false target1.type=ClassTarget -target1.width=120 -target1.x=70 -target1.y=10 -target10.height=70 -target10.name=Queue -target10.showInterface=false -target10.type=ClassTarget -target10.width=160 -target10.x=330 -target10.y=530 -target2.height=70 -target2.name=DatabaseConnector +target1.width=150 +target1.x=180 +target1.y=70 +target2.height=60 +target2.name=QueryResult target2.showInterface=false target2.type=ClassTarget -target2.width=150 -target2.x=80 -target2.y=180 -target3.height=70 -target3.name=QueryResult +target2.width=100 +target2.x=100 +target2.y=600 +target3.height=100 +target3.name=Game target3.showInterface=false target3.type=ClassTarget -target3.width=120 -target3.x=730 -target3.y=180 +target3.width=180 +target3.x=630 +target3.y=340 target4.height=70 -target4.name=Game +target4.name=User target4.showInterface=false target4.type=ClassTarget -target4.width=120 -target4.x=300 -target4.y=380 +target4.width=130 +target4.x=900 +target4.y=180 target5.height=70 -target5.name=User +target5.name=Server target5.showInterface=false -target5.type=ClassTarget -target5.width=120 -target5.x=1000 -target5.y=180 +target5.type=AbstractTarget +target5.width=110 +target5.x=310 +target5.y=500 target6.height=70 -target6.name=Server +target6.name=WordleServer target6.showInterface=false -target6.type=AbstractTarget -target6.width=120 -target6.x=490 -target6.y=280 +target6.type=ClassTarget +target6.width=110 +target6.x=480 +target6.y=500 target7.height=70 -target7.name=WordleServer +target7.name=Guest target7.showInterface=false target7.type=ClassTarget -target7.width=120 -target7.x=720 -target7.y=480 -target8.height=70 +target7.width=130 +target7.x=900 +target7.y=310 +target8.height=60 target8.name=List target8.showInterface=false target8.type=ClassTarget target8.width=150 -target8.x=980 -target8.y=380 -target9.height=70 -target9.name=GUI +target8.x=560 +target8.y=640 +target9.height=60 +target9.name=Queue target9.showInterface=false target9.type=ClassTarget -target9.width=120 -target9.x=200 -target9.y=10 +target9.width=160 +target9.x=100 +target9.y=520 diff --git a/wordle.db b/wordle.db index ba1ed6b..505e9e7 100644 Binary files a/wordle.db and b/wordle.db differ