-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStack.java
More file actions
85 lines (72 loc) · 1.83 KB
/
Stack.java
File metadata and controls
85 lines (72 loc) · 1.83 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
import java.util.ArrayList;
import java.util.Random;
public class Stack {
public ArrayList<Card> stack = new ArrayList<Card>();
private ArrayList<Card> backup = new ArrayList<Card>();
public ArrayList<Card> setStock(ArrayList<Card> allCards, boolean isNew) {
stack.clear();
if (isNew) {
Random rand = new Random();
backup.clear();
for (int i = 0; i < 24; i++) {
addToStack(allCards.remove(rand.nextInt(allCards.size())), false, true);
}
} else {
for (int i = 0; i < 24; i++) {
addToStack(backup.get(i), false, false);
}
}
return allCards;
}
public ArrayList<Card> setTableau(ArrayList<Card> allCards, int length, boolean isNew) {
stack.clear();
if (isNew) {
Random rand = new Random();
backup.clear();
for (int i = 0; i < length-1; i++) {
addToStack(allCards.remove(rand.nextInt(allCards.size())), false, true);
}
addToStack(allCards.remove(rand.nextInt(allCards.size())), true, true);
} else {
for (int i = 0; i < length-1; i++) {
addToStack(backup.get(i), false, false);
}
addToStack(backup.get(length-1), true, false);
}
return allCards;
}
public void addToStack(Card card, boolean visibility, boolean addBackup) {
card.isVisible = visibility;
stack.add(card);
if (addBackup) {
backup.add(card);
}
}
public void add(Card card) {
stack.add(card);
}
public void add(int index, Card card) {
stack.add(index, card);
}
public void clear() {
stack.clear();
}
public Card get(int index) {
return stack.get(index);
}
public Card getLast() {
return stack.get(stack.size()-1);
}
public Card remove(int index) {
return stack.remove(index);
}
public Card removeLast() {
return stack.remove(stack.size()-1);
}
public void set(int index, Card card) {
stack.set(index, card);
}
public int size() {
return stack.size();
}
}