-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPartida.java
106 lines (90 loc) · 2.94 KB
/
Partida.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
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Partida {
private int numLinea = 0, numLineas = 0, numBatalla = 1;
private boolean fin = false;
private String puntuaciones = "";
public Partida(Bosque bosque, Jugadores jugadores, LagoSagrado lago, TemploMaldito templo, boolean reparto,
String nombreFicheroReparto, boolean partida, String nombreFicheroPartida, boolean error) {
// Si hay reparto, calcular cuantas lineas hay
if (reparto == true) {
Scanner entrada = null;
try {
entrada = new Scanner(new FileInputStream(nombreFicheroReparto));
} catch (FileNotFoundException e) {
error = true;
System.out.println("\nNo existe el fichero " + nombreFicheroReparto);
System.exit(-1);
}
while (entrada.hasNextLine()) {
entrada.nextLine();
numLineas++;
}
}
PrintWriter salida = null;
// Si hay partida, crear fichero
if (partida == true) {
try {
salida = new PrintWriter(nombreFicheroPartida);
} catch (FileNotFoundException e) {
error = true;
}
}
while (fin == false) {
// Se celebra una batalla
Batalla batalla = new Batalla(bosque, jugadores, lago, templo, reparto, nombreFicheroReparto, numLinea,
partida, numBatalla);
if (partida == true) {
salida.println(batalla.getResultado());
} else {
System.out.println(batalla.getResultado());
}
numBatalla++;
// Si hubo reparto, actualizar la linea
if (reparto == true) {
if (numLinea == numLineas - 1) {
numLinea = 0;
} else {
numLinea++;
}
}
// Se comprueba si quedan criaturas
if (bosque.comprobarTodasNeutralizadas() == true) {
fin = true;
}
// Se comprueba si hay ganador
if (jugadores.comprobarDiezPuntos() == true) {
fin = true;
}
if (fin == true) {
if (partida == true) {
salida.println("VISITAS A LOS LUGARES SAGRADOS:\n Lago Sagrado: " + lago.mostrarVisitas()
+ "\n Templo Maldito: " + templo.mostrarVisitas() + "\n\nPUNTUACIONES:");
} else {
System.out.println("VISITAS A LOS LUGARES SAGRADOS:\n Lago Sagrado: " + lago.mostrarVisitas()
+ "\n Templo Maldito: " + templo.mostrarVisitas() + "\n\nPUNTUACIONES:");
}
for (int i = 0; i < jugadores.getNumJugadores(); i++) {
if (jugadores.getJugador(i).equals(jugadores.getGanador())) {
puntuaciones = puntuaciones + " " + jugadores.getJugador(i).getNombre() + " ("
+ jugadores.getJugador(i).getID() + ") = " + jugadores.getJugador(i).getPuntos()
+ " (VENCEDOR)" + "\n";
} else {
puntuaciones = puntuaciones + " " + jugadores.getJugador(i).getNombre() + " ("
+ jugadores.getJugador(i).getID() + ") = " + jugadores.getJugador(i).getPuntos() + "\n";
}
}
if (partida == true) {
salida.println(puntuaciones);
} else {
System.out.println(puntuaciones);
}
}
}
if (partida == true) {
salida.close();
}
}
}