-
Notifications
You must be signed in to change notification settings - Fork 0
/
Mano.java
161 lines (141 loc) · 3.33 KB
/
Mano.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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/**
* Classe contenente tutti i metodi necesari alla creazione e alla manipolazione di una mano del giocatore.
* @author Alberto Bettella, Leonardo Canello, Leonardo Daniele, Simone Dassani Bogdan Popov, Gabriele Trevisan
* @version 1.0 (21-02-2019)
*/
public class Mano {
/**
* Crea l'array di carte presenti nella mano;
*/
Mazzo mano = new Mazzo();
/**
* Indica il valore numerico della mano;
*/
private int valore;
/**
* Indica il numero di carte;
*/
private int carte;
/**
* Inizializza i due attributi carte e assi a "0" e imposta il valore di tutte le carte a "null"
*/
public Mano() {
carte = 0;
mano.setCarteNull();
}
/**
* Inserisce la carta scelta nella mano
* @param c Carta che verrà aggiunta alla mano
*/
public void aggiungiCarta(Carta c) {
mano.inserisci(c);
valore = aggiornaValore();
}
/**
* Estrae la carta scelta dalla mano
* @param ca Carta che verrà estratta dalla mano
*/
public void estraiSplit(Carta ca) {
int c = mano.cerca(ca);
mano.estrai(c);
}
/**
* restituisce l'attributo mano
* @return mano
*/
public Mazzo getMano(){
return mano;
}
/**
* Imposta un array di carte a mano
* @param car[] Array di carte che verrà inserito
*/
public void setMano (Carta [] car) {
mano.setCarte(car);
}
/**
* imposta la carta in una posizione desiderata a NULL
* @param p posizione della mano da estrarre
*/
public void setCartaNull(int p){
mano.estrai(p);
}
/**
* Estrae la carta alla posizione desiderata
* @param i Posizione della carta
* @return carta estratta
*/
public Carta estraiSplit (int i) {
return mano.estrai(i);
}
/**
* Azzera il valore complessivo delle carte che si ha nella mano
*/
public void azzeraValore(){
valore = 0;
}
/**
* Aggiorna il valore complessivo delle carte che si ha nella mano
* @return restituisce il valore complessivo delle carte
*/
public int aggiornaValore() {
int valNum = 0;
int tempVal = 0;
int i = 0;
Carta carte[] = mano.getCarte();
while(carte[i] != null){
if(carte[i].getVal().getV() != 1){
tempVal = carte[i].getVal().getV();
valNum += tempVal > 10 ? 10 : tempVal;
}
i++;
}
i = 0;
while (carte[i] != null){
if(carte[i].getVal().getV() == 1){
if (valNum + 11 > 21){
valNum += 1;
}
else{
valNum += 11;
}
}
i++;
}
valore = valNum;
return valNum;
}
/**
* restituisce in valore della mano
* @return valore della mano
*/
public int getValore() {
return valore;
}
/**
* restituisce il numero delle carte
* @return carte del mazzo
*/
public int getCarte() {
return carte;
}
/**
* restituisce l'array di carte sotto forma grafica
* @param m Numero di carte per riga
* @return carte del mazzo
*/
public String stampaManoASCII(int m){
StampaCarte carteASCII = new StampaCarte(mano.getCarte());
return carteASCII.StampaggioCarte(m);
}
/**
* restituisce l'array di carte in input sotto forma grafica
* @param c[] array di carte da stampare
* @param m numero di carte per riga
* @return carte del mazzo
*/
public String stampaManoASCII(Carta[] c, int m){
StampaCarte carteASCII = new StampaCarte(mano.getCarte());
return carteASCII.StampaggioCarte(m);
}
}