-
Notifications
You must be signed in to change notification settings - Fork 48
Expand file tree
/
Copy pathHangmanRunner.java
More file actions
50 lines (42 loc) · 1.21 KB
/
HangmanRunner.java
File metadata and controls
50 lines (42 loc) · 1.21 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
package com.hangman;
import com.hangman.players.YourPlayer;
public class HangmanRunner implements Runner {
private GameOverDisplay display;
private Game game;
private Player player;
private Ticker ticker;
public HangmanRunner(Game game, GameOverDisplay display, Player player, Ticker ticker)
{
this.display = display;
this.game = game;
this.player = player;
this.ticker = ticker;
}
@Override
public void run() {
while(!game.IsOver()) {
char guess = player.GetGuess(game.CurrentClue());
game.Guess(guess);
ticker.tick();
}
display.GameOver();
}
@Override
public boolean isWinner() {
return game.IsWinner();
}
@Override
public int numGuesses() {
return game.numGuesses();
}
public static void main(String [] args) throws Exception {
HangmanGame game = new HangmanGame();
ConsoleDisplay display = new ConsoleDisplay();
game.addObserver(display);
HangmanRunner runner = new HangmanRunner(game,
display,
new YourPlayer(WordList.words),
new SleepTicker());
runner.run();
}
}