-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dice.java
108 lines (91 loc) · 2.07 KB
/
Dice.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
import java.util.Random;
import javax.swing.*;
/**
* Jan 20, 2022 <br>
* This is the dice class used in the monopoly game. It is used as the randomizer
* for moving the player on the board.
*/
public class Dice
{
//Class constant
public static final int INITIAL_VALUE = 1;
public static final int NUM_SIDES = 6;
public static final String DICE_FILE_PATH = ".//Images//Dice//";
public static final String DICE_FILE_NAME = "diceface";
public static final String DICE_FILE_TYPE = ".png";
public static final int[] X_IMAGE = {1050, 1200};
public static final int Y_IMAGE = 780;
//Instance variables
private int value;
private int xPosition;
private int yPosition;
private JLabel label;
private Random random;
//Creates a new dice
public Dice(int index)
{
random = new Random();
label = new JLabel();
if(index >=0 && index < X_IMAGE.length)
xPosition = X_IMAGE[index];
else
xPosition = X_IMAGE[0];
yPosition = Y_IMAGE;
getNewValue();
}
//Creates a new value and returns it
public int getNewValue()
{
value = random.nextInt(NUM_SIDES) + INITIAL_VALUE;
ImageIcon image = new ImageIcon(DICE_FILE_PATH+DICE_FILE_NAME+value+DICE_FILE_TYPE);
label.setIcon(image);
label.setBounds(xPosition, yPosition, image.getIconWidth(), image.getIconHeight());
return value;
}
// Adds the dice to the frame
public void addToFrame(JFrame frame)
{
frame.add(label);
}
//Getters
//Gets the value
public int getValue()
{
return value;
}
public int getXPosition()
{
return xPosition;
}
public int getYPosition()
{
return yPosition;
}
public void setVisible(boolean type)
{
label.setVisible(type);
}
//Gets the string of the icon
public JLabel getLabel()
{
return label;
}
//Setters
public void setXPosition(int xPosition)
{
this.xPosition = xPosition;
}
public void setYPosition(int yPosition)
{
this.yPosition = yPosition;
}
public void setLabel(JLabel label)
{
this.label = label;
}
//Returns a string representation of the object
public String toString()
{
return "Dice with value of "+value;
}
}