-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPlayer.java
94 lines (80 loc) · 2.15 KB
/
Player.java
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
import java.util.*;
public class Player {
private Tile[] rack; // tiles that can be played from the rack
private int score;
public Player() {
rack = new Tile[7];
score = 0;
}
public String getScore() {
return String.valueOf(score);
}
public void setScore(int num) {
score = num;
}
public void addScore(int num) {
score = score + num;
}
public void shuffleRack() {
List<Tile> list = Arrays.asList(rack);
Collections.shuffle(list);
list.toArray(rack);
}
// pushes tiles in rack to left side, leaving no spaces in between tiles.
public void organizeRack() {
for (int i = 0; i< 6; i++) {
if (rack[i] == null) {
for (int j = i + 1; j < 7; j++) {
rack[i] = rack[j];
rack[j] = null;
break;
}
}
}
}
public Tile getFromRackAt(int index) {
return rack[index];
}
public Tile getAndRemoveFromRackAt(int index) {
Tile temp = rack[index];
rack[index] = null;
return temp;
}
// adds tile to next free index in rack array the returns which index, -1 if no free index to insert tile
public int addTileToRack(Tile tile) {
for (int i = 0; i < rack.length; i++) {
if (rack[i] == null) {
rack[i] = tile;
return i;
}
}
return -1;
}
// helper function for undo button
public void addTileToRackAt(Tile tile, int index) {
if (rack[index] == null) {
rack[index] = tile;
}
}
public boolean rackIsFull() {
int count = 0;
for (int i = 0; i < rack.length; i++) {
if (rack[i] != null) {
count++;
}
}
return count == 7;
}
public int getRackSize() {
int count = 0;
for (int i = 0; i < rack.length; i++) {
if (rack[i] != null) {
count++;
}
}
return count;
}
public Tile[] getRack() {
return this.rack;
}
}