-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCaricamentoCavalli.java
142 lines (112 loc) · 5.09 KB
/
CaricamentoCavalli.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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
import javax.swing.*;
import java.awt.*;
import java.util.Random;
public class CaricamentoCavalli extends JFrame {
//Attributi
private int saldo;
private String name;
private Cavallo[] cavalliDisponibili;
private int indiceCavalloScelto;
private int puntata;
//ELEMENTI PAGINA
private JLabel mainLabel = new JLabel();
private JLabel titleLabel = new JLabel();
private JLabel percentageLabel = new JLabel();
private Font titleFont = new Font("LEMON MILK", Font.BOLD, 50);
private ImageIcon background = new ImageIcon("backgrounds/corsaLoading.png");
private Font buttonsFont = new Font("LEMON MILK", Font.BOLD, 20);
private JProgressBar bar = new JProgressBar(0, 100);
public CaricamentoCavalli(String name, int saldo, int puntata, int indiceCavalloScelto, Cavallo[] cavalliDisponibili){
this.name= name;
this.saldo= saldo;
this.puntata= puntata;
this.indiceCavalloScelto= indiceCavalloScelto;
this.cavalliDisponibili= cavalliDisponibili;
this.setTitle("Cavallo scelto: " + cavalliDisponibili[indiceCavalloScelto].getName() +" - Stelle: "+cavalliDisponibili[indiceCavalloScelto].getStars()+ " - Puntata: " + this.puntata + "$");
this.setResizable(false);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(1300, 900);
this.setLayout(null);
this.setLocationRelativeTo(null);
this.setVisible(true);
mainLabel.setBounds(0, 0, 1300, 900);
mainLabel.setIcon(background);
titleLabel.setBounds(400, 303, 499, 105);
titleLabel.setFont(titleFont);
titleLabel.setText("Correndo...");
titleLabel.setForeground(Color.WHITE);
titleLabel.setHorizontalAlignment(JLabel.CENTER);
percentageLabel.setBounds(250, 396, 800, 30);
percentageLabel.setFont(buttonsFont.deriveFont(Font.BOLD, 18));
percentageLabel.setForeground(Color.WHITE);
percentageLabel.setHorizontalAlignment(JLabel.CENTER);
bar.setValue(0);
bar.setVisible(true);
bar.setFont(buttonsFont);
bar.setBounds(250, 441, 800, 50);
bar.setStringPainted(false);
bar.setBackground(Color.WHITE);
bar.setForeground(Color.WHITE);
this.add(bar);
this.add(percentageLabel);
this.add(titleLabel);
this.add(mainLabel);
fillProgressBar();
}
private void fillProgressBar() {
SwingWorker<Void, Integer> worker = new SwingWorker<Void, Integer>() {
@Override
protected Void doInBackground() throws Exception {
Random random = new Random();
for (int i = 0; i <= 100; i++) {
publish(i);
Thread.sleep(random.nextInt(91) + 10);
}
return null;
}
@Override
protected void process(java.util.List<Integer> chunks) {
int progress = chunks.get(chunks.size() - 1);
bar.setValue(progress);
percentageLabel.setText(progress + "%");
}
@Override
protected void done(){
int guadagno = puntata*-1;
//TROVO CAVALLO VINCENTE
//Totale stelle
int totaleStelle=0;
for (int i=0; i<cavalliDisponibili.length;i++) totaleStelle+= cavalliDisponibili[i].getStars();
//Probabilità di un cavallo = nStelleCavallo/totaleStelle * 100
double mioCavallo = (double) cavalliDisponibili[indiceCavalloScelto].getStars()/totaleStelle*100;
double randomNumber = new Random().nextInt(101);
//Cavallo vincitore
if(randomNumber<=mioCavallo){
JOptionPane.showMessageDialog(null, "Hai vinto!", "Casinò Galaxy - Cavalli", JOptionPane.INFORMATION_MESSAGE);
Cavallo cavalloScelto = cavalliDisponibili[indiceCavalloScelto];
if(cavalloScelto.getStars()==5) guadagno = puntata*2;
if(cavalloScelto.getStars()==4) guadagno = puntata*3;
if(cavalloScelto.getStars()==3) guadagno = puntata*5;
if(cavalloScelto.getStars()==2) guadagno = puntata*8;
if(cavalloScelto.getStars()==1) guadagno = puntata*10;
}
else{
JOptionPane.showMessageDialog(null, "Hai perso!", "Casinò Galaxy - Cavalli", JOptionPane.INFORMATION_MESSAGE);
}
//CHIUDO e passo ai risultati
dispose();
int finalGuadagno = guadagno;
SwingUtilities.invokeLater(() -> {
Results results = new Results(puntata, finalGuadagno,saldo,name);
results.setVisible(true);
});
try {
Thread.sleep(100); // Pausa di 1 secondo per caricare correttamente il frame
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
};
worker.execute();
}
}