
Ayuda con mazo de cartas
Publicado por Ru (21 intervenciones) el 02/07/2020 19:46:28
Hola! buenas tardes, tengo un problema con un juego de cartas que estoy haciendo,
cuando quiero repartir las cartas a los jugadores reparte bien, pero luego de que no haya mas cartas en el mazo sigue repartiendo igual, nose como hacer para solucionarlo, si alguien me podría dar una ayuda se lo agradecería. Les dejo el código:
cuando quiero repartir las cartas a los jugadores reparte bien, pero luego de que no haya mas cartas en el mazo sigue repartiendo igual, nose como hacer para solucionarlo, si alguien me podría dar una ayuda se lo agradecería. Les dejo el código:
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
//palos
public enum Palos {
ORO,
COPA,
BASTO,
ESPADA
}
//la clase cartas
public class Cartas {
public int numero;
public Palos palo;
public int valor;
public Cartas(Palos palo, int numero, int valor) {
this.palo = palo;
this.numero = numero;
this.valor = valor;
}
public String toString() {
return numero + " de " + palo;
}
public int getValor() {
return valor;
}
}
//la clase mazo
public class Mazo {
public boolean mano=true;
private Cartas[] cartas = new Cartas[40];
public static int cartaActual = 0;
public Mazo() {
Palos[] palos = new Palos[4];
palos = Palos.values();
int carta = 0;
for(int palo = 0; palo < palos.length; palo ++) {
for(int valor = 1; valor <= 12; valor ++) {
if (!(valor==8 || valor==9 )){
cartas[carta++] = new Cartas(palos[palo],
valor,
getFigura(valor));
}
}
}
mezclar();
}
private int getFigura(int valor) {
int respuesta = 0;
switch(valor) {
case 1: respuesta=1;
break;
case 2: respuesta=2;
break;
case 3: respuesta=3;
break;
case 4: respuesta=4;
break;
case 5: respuesta=5;
break;
case 6: respuesta=6;
break;
case 7: respuesta=7;
break;
case 10:
respuesta = 8;
break;
case 11:
respuesta = 9;
break;
case 12:
respuesta = 10;
break;
}
return respuesta;
}
public void mezclar() {
Random r = new Random();
for(int i = 0; i < cartas.length; i ++) {
int pos = r.nextInt(40);
Cartas aux = cartas;
cartas = cartas[pos];
cartas[pos] = aux;
}
cartaActual = 0;
}
public Cartas getCarta() {
Cartas c=null;
if (cartaActual >= cartas.length) {
System.out.println("No hay mas cartas");
}else {
c= cartas[cartaActual ++];
}
return c;
}
//El metodo para repartir las cartas a los jugadores de la clase juego
public void repartirJugadores() {
// Paso 1. Repartir cartas a jugadores
for (int i = 0; i < 3; i++) {
for (Jugador j: jugadores) {
j.agregarCarta(mazoCarta.getCarta());
}
}
}
Valora esta pregunta


0