package Domein.DomeinModel.Domein;
import java.util.ArrayList;
import java.util.List;
public class Spelbord {
private Personage p;
private Vak[][] bord;
private int dimensiex;
private int dimensiey;
private int eindpositieX;
private int eindpositieY;
private int startpositieX;
private int startpositieY;
private Categorie categorie;
private ArrayList<Personage> tegenstanders = new ArrayList<Personage>();
public Spelbord(String spelbordnaam, int dx, int dy,int startpositieX,int startpositieY,int eindpositieX,int eindpositieY) {
dimensiex = dx;
dimensiey = dy;
this.startpositieX=startpositieX;
this.startpositieY=startpositieY;
this.eindpositieX=eindpositieX;
this.eindpositieY=eindpositieY;
bord = new Vak[dimensiex][dimensiey];
for (int i = 0; i < dimensiex; i++) {
for (int j = 0; j < dimensiey; j++) {
bord[i][j] = new Vak(i, j);
}
}
}
public Vak[][] getSpelBord() {
return bord;
}
public int getStartpositieX() {
return startpositieX;
}
public void setStartpositieX(int startpositieX) {
this.startpositieX = startpositieX;
}
public int getStartpositieY() {
return startpositieY;
}
public void setStartpositieY(int startpositieY) {
this.startpositieY = startpositieY;
}
public String toString() {
String result = "";
for (int y = 0; y < dimensiex ; y++) {
for (int x = 0; x < dimensiey; x++) {
result = result + bord[x][y].toString();
}
result = result + "\n";
}
return result;
}
public Vak getVak(int x, int y){
return bord[x][y];
}
public boolean isVakVrij(Vak vakToCheck){
boolean res= false;
if (vakToCheck.toString() == "[ ]"){
res=true;
}
else { res = false; }
return res;
}
public boolean isGeldigeZet(Vak vakToCheck, Personage p){
boolean res= true;
int x = p.getVak().getX();
int y = p.getVak().getY();
int xv = Math.abs(x - vakToCheck.getX());
int yv = Math.abs(y - vakToCheck.getY());
//Verticaal
if((yv > 1)&&(y<dimensiey-1)){
res = false;
}
//Horizontaal
if ((xv > 1 )&&(x<dimensiex-1)) {
res = false;
}
//Schuin
if (xv == 1 && yv == 1) {
res = false;
}
return res;
}
public List<Personage> geefBeschikbareTegenstander(Personage p){
int x = p.getVak().getX();
int y = p.getVak().getY();
if(bord[x+1][y].getPersonage() != null)
tegenstanders.add(bord[x+1][y].getPersonage());
if(bord[x-1][y].getPersonage() != null)
tegenstanders.add(bord[x-1][y].getPersonage());
if(bord[x][y+1].getPersonage() != null)
tegenstanders.add(bord[x][y+1].getPersonage());
if(bord[x][y-1].getPersonage() != null)
tegenstanders.add(bord[x][y-1].getPersonage());
return tegenstanders;
}
public void setVak(){
this.setVak();
}
public int getEindpositieX() {
return eindpositieX;
}
public void setEindpositieX(int eindpositieX) {
this.eindpositieX = eindpositieX;
}
public int getEindpositieY() {
return eindpositieY;
}
public void setEindpositieY(int eindpositieY) {
this.eindpositieY = eindpositieY;
}
public Categorie getCategorie() {
return categorie;
}
public void setCategorie(Categorie categorie) {
this.categorie = categorie;
}
}