113 lines
4.0 KiB
Java
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;
|
|
}
|
|
}
|