Repository navigation
Expand file tree
/
Copy pathDeck.java
More file actions
75 lines (66 loc) · 2.92 KB
/
Copy pathDeck.java
File metadata and controls
75 lines (66 loc) · 2.92 KB
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
package com.example.yugioh;
import android.content.Context;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Deck {
private ArrayList<Carta> cartas;
public Deck(ArrayList<Carta> cartas) {
if (cartas == null || cartas.size() > 20) {
throw new IllegalArgumentException("El deck no puede ser nulo y debe tener un máximo de 20 cartas.");
}
this.cartas = cartas;
}
public ArrayList<Carta> getCartas() {
return cartas;
}
public void agregarCarta(Carta carta) {
if (cartas.size() < 20) {
cartas.add(carta);
} else {
System.out.println("El deck ya tiene 20 cartas. No se puede agregar más.");
}
}
public void eliminarCarta(Carta carta) {
cartas.remove(carta);
}
public static Deck CrearDeck(String nomfile) {
ArrayList<Carta> ldeck = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(nomfile))) {
ArrayList<Carta> moncartas = new ArrayList<>();
ArrayList<Carta> mtcartas = new ArrayList<>();
String line;
while ((line = br.readLine()) != null) {
String[] carta = line.split(",");
if ("MONSTRUO".equals(carta[0])) {
Atributo at = Atributo.valueOf(carta[3]);
TipoMonstruo tm = TipoMonstruo.valueOf(carta[4]);
int atk = Integer.parseInt(carta[5]);
int def = Integer.parseInt(carta[6]);
CartaMonstruo cartam = new CartaMonstruo(carta[1], carta[2], at, tm, atk, def, false, Ubicacion.MANO, carta[7]);
moncartas.add(cartam);
} else if ("MAGICA".equals(carta[0])) {
TipoMonstruo tm = TipoMonstruo.valueOf(carta[5]);
CartaMagica cartamag = new CartaMagica(carta[1], carta[2], CartaMagica.AtributoModificado.valueOf(carta[3].toUpperCase()), Integer.parseInt(carta[4]), tm, Ubicacion.MANO, carta[6]);
mtcartas.add(cartamag);
} else if ("TRAMPA".equals(carta[0])) {
Atributo at = Atributo.valueOf(carta[3]);
CartaTrampa cartat = new CartaTrampa(carta[1], carta[2], at, Ubicacion.MANO, carta[4]);
mtcartas.add(cartat);
}
}
for (int i = 0; i < 10; i++) {
ldeck.add(Carta.cartaAleatoria(moncartas));
}
for (int i = 0; i < 5; i++) {
ldeck.add(Carta.cartaAleatoria(mtcartas));
}
} catch (IOException e) {
System.out.println("Error al leer el archivo: " + e.getMessage());
}
return new Deck(ldeck);
}
}