-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhomeController.java
More file actions
127 lines (97 loc) · 2.51 KB
/
homeController.java
File metadata and controls
127 lines (97 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import javafx.stage.*;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.control.Button;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import java.util.*;
public class homeController {
@FXML
Label gamesPlayedLabel;
@FXML
Label averageGuessesLabel;
@FXML
Button resetStatsButton;
@FXML
Button resetGameButton;
@FXML
Label guessesLabel;
@FXML
Label lettersRemainingLabel;
@FXML
Label lettersCorrectLabel;
@FXML
Label lettersIncorrectLabel;
@FXML
Label hintsLabel;
@FXML
TextField guessTextEntry;
@FXML
Button guessTextButton;
public int numGuesses = 0;
public int numGames = 0;
public int numTotalGuesses = 0;
public WordSet w;
public homeController() {
w = new WordSet(8);
}
@FXML
protected void submitGuess() {
String guess = guessTextEntry.getText();
System.out.println("Guess submitted " + guess);
guessTextEntry.setText("");
w.submitGuess(guess);
ArrayList<String> hints = w.guess;
updateHints(hints);
// Call getHints
// Reset the letter stats
// different game modes button changes word length
// different files/words sets
// Fix Average Guesses
// Check single letters
// optomization if we want to
numGuesses++;
updateGuesses();
updateStats();
guessesLabel.setText("Guesses: " + numGuesses);
// Some check to see if the game is finished
if (w.isComplete()) {
numGames++;
numTotalGuesses += numGuesses;
resetGame();
}
}
@FXML
protected void resetStats() {
numTotalGuesses = 0;
numGames = 0;
updateStats();
}
@FXML
protected void resetGame() {
w = new WordSet(8);
numGuesses = 0;
updateGuesses();
updateHints(w.guess);
updateStats();
// reset game
}
public void updateStats() {
// Update Games Played
gamesPlayedLabel.setText("Games Played: " + numGames);
averageGuessesLabel.setText("Average Guesses: " + ((double) numTotalGuesses / numGames));
lettersRemainingLabel.setText("Letters Remaining: " + w.possibleGuesses);
lettersCorrectLabel.setText("Letters Correct: " + w.successfulGuesses);
lettersIncorrectLabel.setText("Letters Incorrect: " + w.unsuccessfulGuesses);
}
public void updateHints(ArrayList<String> hints) {
String res = "";
for (String s : hints) {
res += s + " ";
}
hintsLabel.setText(res);
}
public void updateGuesses() {
guessesLabel.setText("Guesses: " + numGuesses);
}
}