Files
tutorialjava2024-25/src/tutorialJava/capitulo5/simulacroExamen02_arkanoid/Juego.java
2025-01-06 11:32:00 +01:00

100 lines
2.2 KiB
Java

package tutorialJava.capitulo5.simulacroExamen02_arkanoid;
import java.util.Iterator;
import tutorialJava.Utils;
public class Juego {
private Ladrillo ladrillos[] = new Ladrillo[20];
private Pelota pelota = new Pelota();
private Ladrillo ladrillosDestruidos[] = new Ladrillo[20];
private int contadorLadrillosDestruidos = 0;
public Juego() {
for (int i = 0; i < ladrillos.length; i++) {
ladrillos[i] = new Ladrillo();
ladrillos[i].setNombre("L" + i);
}
}
/**
*
*/
public void jugar() {
do {
pelota.mueveAlAzar();
boolean colisionConLadrillos = false;
for (Ladrillo l : ladrillos) {
if (l.getPuntosVida() > 0) {
if (pelota.chocaConLadrillo(l)) {
l.quitoPuntoDeVida();
colisionConLadrillos = true;
agregaLadrilloADestruidosSiCorresponde(l);
}
}
}
if (colisionConLadrillos == true) {
muestraArrayLadrillos();
}
} while (quedanLadrillos());
// Estadísticas
System.out.println("Primero en ser destruido: " + ladrillosDestruidos[0].toString());
System.out.println("Último en ser destruido: " +
ladrillosDestruidos[ladrillosDestruidos.length - 1].toString());
System.out.println("Orden de destrucción de los ladrillos");
muestraArrayLadrillosDestruidos();
}
private void agregaLadrilloADestruidosSiCorresponde(Ladrillo l) {
if (l.getPuntosVida() <= 0) {
ladrillosDestruidos[contadorLadrillosDestruidos] = l;
contadorLadrillosDestruidos++;
}
}
private void muestraArrayLadrillosDestruidos() {
for (Ladrillo l : ladrillosDestruidos) {
System.out.print(l.toString() + "-");
}
System.out.println();
}
private void muestraArrayLadrillos() {
for (Ladrillo l : ladrillos) {
if (l.getPuntosVida() > 0) {
System.out.print(l.toString() + "-");
}
}
System.out.println();
}
private boolean quedanLadrillos() {
for (Ladrillo l : ladrillos) {
if (l.getPuntosVida() > 0) {
return true;
}
}
return false;
}
public Ladrillo[] getLadrillos() {
return ladrillos;
}
public void setLadrillos(Ladrillo[] ladrillos) {
this.ladrillos = ladrillos;
}
public Pelota getPelota() {
return pelota;
}
public void setPelota(Pelota pelota) {
this.pelota = pelota;
}
}