Files
PacMan/Labyrinth.java
2023-10-16 15:09:46 +02:00

113 lines
4.0 KiB
Java

import java.awt.*;
/**
* Beschreiben Sie hier die Klasse Labyrinth.
*
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Labyrinth extends GameObject
{
private static final int[][] MAP = {
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1},
{1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1},
{1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1, 0, 2, 2, 2, 0, 1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1},
{1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1},
{1, 2, 2, 2, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 1, 2, 2, 2, 1},
{1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1},
{1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 1},
{1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1},
{1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1},
{1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1},
{1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1},
{1, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 1},
{1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1},
{1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1},
{1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1},
{1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};
private final int SpielobjektGröße;
Spielobjekt[][]Spielobjekte;
Labyrinth(int SpielobjektGröße){
this.SpielobjektGröße = SpielobjektGröße;
Spielobjekte = new Spielobjekt[MAP.length][MAP[0].length];
zuruecksetzen();
}
public void zuruecksetzen(){
for(int y = 0; y < getHöhe(); y++){
for(int x = 0; x < getBreite(); x++){
int SpielobjektID = MAP[y][x];
if(SpielobjektID == 0){
Spielobjekte[y][x] = new Nichts(x,y);
}else if(SpielobjektID == 1){
Spielobjekte[y][x] = new Block(x,y);
}else if(SpielobjektID == 2){
Spielobjekte[y][x] = new Punkt(x,y);
}
}
}
}
public void render(Graphics2D g, int SpielobjektGröße){
for(Spielobjekt[] row: Spielobjekte){
for(Spielobjekt spielobjekt: row){
spielobjekt.render(g, SpielobjektGröße);
}
}
}
public int PunkteZaehler(){
int sum = 0;
for (Spielobjekt[] reihe : Spielobjekte){
for (Spielobjekt spielobjekt : reihe){
if (spielobjekt instanceof Punkt){
sum++;
}
}
}
return sum;
}
public boolean isFrei(int x, int y){
if(x < 0){
return false;
}else if(y < 0){
return false;
}else if(x >= getBreite()){
return false;
}else if(y >= getHöhe()){
return false;
}
return !(Spielobjekte[y][x] instanceof Block);
}
public int getBreite(){
return Spielobjekte[0].length;
}
public int getHöhe(){
return Spielobjekte.length;
}
public int getSpielobjektGröße(){
return SpielobjektGröße;
}
public Spielobjekt getSpielobjekt(int x, int y){
return Spielobjekte[y][x];
}
public void setSpielobjekt(int x, int y, Spielobjekt spielobjekt){
Spielobjekte[y][x] = spielobjekt;
}
}