-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBoard.java
executable file
·116 lines (102 loc) · 3.74 KB
/
Board.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import javax.swing.*;
public class Board extends JPanel{
public static Board board = null;
private Image casinoTable_img;
private ArrayList<Card> player1_cards;
private ArrayList<Card> player2_cards;
private ArrayList<Card> player1_cards_backside;
private ArrayList<Card> player2_cards_backside;
private boolean revealPlayer1Numbers = false;
private boolean revealPlayer2Numbers = false;
public static Board getBoard(){
if(board == null){
board = new Board();
}
return board;
}
private Board(){
super();
setBounds(0,0,400,800);
NumberManager nm = NumberManager.getNumberManager();
//get numbers for P1&2 that are randomly generated by NumberManager Class
ArrayList<String> player1_nums = nm.getPlayer1_numbers();
ArrayList<String> player2_nums = nm.getPlayer2_numbers();
//create cards(frontside) for player1&2
//Based on the information that received above from NumberManager Class
player1_cards = new ArrayList<Card>();
player2_cards = new ArrayList<Card>();
for(int i = 0; i < player1_nums.size(); i++){
int num = Integer.parseInt(player1_nums.get(i));
int num2 = Integer.parseInt(player2_nums.get(i));
player1_cards.add(new Card(num));
player2_cards.add(new Card(num2));
}
//backside
player1_cards_backside = new ArrayList<Card>();
player2_cards_backside = new ArrayList<Card>();
for(int i = 0; i < 3; i++){
player1_cards_backside.add(new Card(-1));
player2_cards_backside.add(new Card(-2));
}
try{
casinoTable_img = ImageIO.read(new File(Card.SharedImgPath + "Casino_Table01.jpg"));
}
catch(IOException e){
e.printStackTrace();
}
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
//draw table
g.drawImage(casinoTable_img, 0, 0, 400, 800, null);
int coordinateX, coordinateY;
int sizeX, sizeY;
int marginForPlayer1Cards = 10, marginForPlayer2Cards = 25;
//draw player2 cards
coordinateX = 100;
coordinateY = 100;
sizeX = 50;
sizeY = 75;
if(!revealPlayer2Numbers){
displayCards(player2_cards_backside, coordinateX, coordinateY, sizeX, sizeY, marginForPlayer2Cards, g);
}
else{
displayCards(player2_cards, coordinateX, coordinateY, sizeX, sizeY, marginForPlayer2Cards, g);
}
//draw player1 cards
coordinateX = 40;
coordinateY = 500;
sizeX = 100;
sizeY = 175;
if(!revealPlayer1Numbers){
displayCards(player1_cards_backside, coordinateX, coordinateY, sizeX, sizeY, marginForPlayer1Cards, g);
}
else{
displayCards(player1_cards, coordinateX, coordinateY, sizeX, sizeY, marginForPlayer1Cards, g);
}
g.dispose();
}
public void displayCards(ArrayList<Card> cards, int coordinateX, int coordinateY, int sizeX, int sizeY, int margin, Graphics g){
Image cardImg;
for(int i = 0; i < cards.size(); i++){
cardImg = cards.get(i).getImage();
g.drawImage(cardImg, coordinateX, coordinateY, sizeX, sizeY, null);
coordinateX += sizeX + margin;
}
}
public void revealPlayer2Numbers(){
revealPlayer2Numbers = true;
repaint();
}
public void FlipPlayer1Numbers(){
revealPlayer1Numbers = !revealPlayer1Numbers;
repaint();
}
}