package taslar;

public class Kale {
	public boolean alive = true;
	public boolean sonuc;
	public String tasIsim = "kale";
	public char isim;
	public char renk;
	public int konumSatir, konumSutun;
	
	
	public Kale(char is, char re) {
		this.isim = is;
		this.renk = re;
	}
	
	public void setPosition(int x, int y) {
		this.konumSatir = x;
		this.konumSutun = y;
	}
	
	public boolean checkMove(char[][] T, int x, int y) {
		Character hedefChar = T[x][y];
		sonuc = true;
		if((this.renk == 'b') && (hedefChar.hashCode()>95)) {
			sonuc = false;
		} else if((this.renk == 's') && (hedefChar.hashCode() < 95) && (hedefChar.hashCode()>50)) {
			sonuc = false;
		}
		
		if((this.konumSatir != x) && (this.konumSutun != y)) {
			sonuc = false;
		}
		
		
		//önünde taş var mı? varsa sonuc = false yap ki gidemesin
		//sola kontrol
		if((konumSutun-y)>0) {
			//konumu azalt
			for(int i = 1; i<(konumSutun-y); i++) {
				if(T[konumSatir][konumSutun-i]!='0') {
					sonuc = false;
				}
			}
		}
		//sağa kontrol
		if((konumSutun-y)<0) {
			//konumu arttır
			for(int i = 1; i<Math.abs((konumSutun-y)); i++) {
				if(T[konumSatir][konumSutun+i]!='0') {
					sonuc = false;
				}
			}
		}

		//yukarı kontrol
		if((konumSatir-x)>0) {
			//satırı azalt
			for(int i = 1; i<(konumSatir-x); i++) {
				if(T[konumSatir-i][konumSutun]!='0') {
					sonuc = false;
				}
			}
		}

		//aşağı kontrol
		if((konumSatir-x)<0) {
			//satırı arttır
			for(int i = 1; i<Math.abs((konumSatir-x)); i++) {
				if(T[konumSatir+i][konumSutun]!='0') {
					sonuc = false;
				}
			}
		}
				
		//-#! debug System.out.println(sonuc);
		return sonuc;
	}		
}
