-
Notifications
You must be signed in to change notification settings - Fork 513
Expand file tree
/
Copy pathGame.java
More file actions
41 lines (38 loc) · 1.28 KB
/
Copy pathGame.java
File metadata and controls
41 lines (38 loc) · 1.28 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
package snakesAndLadders.game;
import snakesAndLadders.board.Board;
import snakesAndLadders.model.Dice;
import snakesAndLadders.model.Player;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Queue;
public class Game {
Queue<Player> players;
Board board;
Dice dice;
public Game(List<Player> players, Map<Integer,Integer> snakes, Map<Integer,Integer> ladders){
this.players = new LinkedList<Player>(players);
this.board = new Board(snakes,ladders);
this.dice = new Dice();
}
public void start(){
while(!players.isEmpty()){
Player current = players.peek();
players.remove();
int roll = dice.roll();
System.out.println("Player "+current.getName()+" rolled: "+roll);
int newPosition = current.getPosition() + roll;
if(newPosition > 100){
newPosition = current.getPosition();
} else{
newPosition = board.getNextPosition(newPosition);
}
current.setPosition(newPosition);
if(newPosition == 100){
System.out.println("Player " + current.getName() + " won!");
break;
}
players.add(current);
}
}
}