package taslar;
public class Sah {
	public boolean alive = true;
	public boolean sonuc;
	public String tasIsim = "sah";
	public char isim;
	public char renk;
	public int konumSatir, konumSutun;
	
	
	public Sah(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;
		}
		
		//-- çapraz test için 2 int;
		int a = Math.abs(konumSatir - x);
		int b = Math.abs(konumSutun - y);
		//-- hareket sınırları
		if((this.konumSatir != x) && (this.konumSutun != y)) {//-- bu kısım kale ile aynı
			if(a!=b) {
				sonuc = false; //-- bu kısımında fil ile aynı olması lazım) {
			} 
		}
		
		double uzaklik = Math.pow(((konumSatir-x)*(konumSatir-x) + (konumSutun-y)*(konumSutun-y)), 1/2.0); 
		if(uzaklik>1.9) {
			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;
	}		
}