-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGame.java
More file actions
94 lines (88 loc) · 3.8 KB
/
Game.java
File metadata and controls
94 lines (88 loc) · 3.8 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
package swe.cardGame2;
public class Game {
private Player player1;
private Player player2;
private CardDeck gameDeck;
private Player currentPlayer;
public Game(Player player1, Player player2, CardDeck cardDeck) {
this.player1 = player1;
this.player2 = player2;
this.gameDeck = cardDeck;
}
public void splitDeck() {
gameDeck.mix();
gameDeck.fillDeck();
CardDeck tempStack = new CardDeck();
for (int i = 0; i < 26; i++) {
tempStack.getCardStack().push(gameDeck.getCardStack().pop());
}
player1.takeGameDeck(tempStack);
player2.takeGameDeck(gameDeck);
}
public int compareCards(Card card1, Card card2) {
if (card1.getValue().ordinal() < card2.getValue().ordinal()) {
return 1;
} else if (card1.getValue().ordinal() == card2.getValue().ordinal()) {
return 0;
} else {
return -1;
}
}
public void changePlayer() {
if (currentPlayer == player1) {
currentPlayer = player2;
} else if (currentPlayer == player2) {
currentPlayer = player1;
}
}
public void play () {
splitDeck();
currentPlayer = player1;
CardDeck pushDeck = new CardDeck();
boolean gameFinish = false;
int turnCount = 0;
while (gameFinish == false) {
boolean turnFinish = false;
turnCount += 1;
System.out.println("\t --------->Turn: " + turnCount + "<-----------");
Card card1 = currentPlayer.topCard();
if (currentPlayer.hasCards()) {
currentPlayer.takeCard();
pushDeck.push(currentPlayer.playCard());
System.out.println(currentPlayer.getName() + " take Card: " + currentPlayer.getTopCard() + ", Cards: " + currentPlayer.getAmountOfCards());
System.out.println("Cards on PushDeck: " + pushDeck.getTopCard() + "\n");
changePlayer();
} else {
turnFinish = true;
gameFinish = true;
changePlayer();
System.out.println("\t <--------" + currentPlayer.getName() + " has won the game!!!" + ", Cards: " + currentPlayer.getAmountOfCards() + "-------->" + "\n");
}
while (turnFinish == false) {
if (currentPlayer.hasCards()) {
Card card2 = currentPlayer.topCard();
currentPlayer.takeCard();
System.out.println(currentPlayer.getName() + " take Card: " + currentPlayer.getTopCard() + ", Cards: " + currentPlayer.getAmountOfCards());
if (compareCards(card1, card2) == 1) {
pushDeck.push(currentPlayer.playCard());
System.out.println("Cards on PushDeck: " + pushDeck.getTopCard() + "\n");
pushDeck.addPushDeckToPlayer(currentPlayer.getDeck());
System.out.println("<---------" + currentPlayer.getName() + " has won this turn" + ", Cards: " + currentPlayer.getAmountOfCards() + "--------->" + "\n");
turnFinish = true;
changePlayer();
} else {
pushDeck.push(currentPlayer.playCard());
System.out.println("Cards on PushDeck: " + pushDeck.getTopCard() + "\n");
changePlayer();
}
}
else {
changePlayer();
System.out.println("<-------" + currentPlayer.getName() + " has won the game!!!" + ", Cards: " + currentPlayer.getAmountOfCards() + "---------->");
turnFinish = true;
gameFinish = true;
}
}
}
}
}