/* Zapoctovy priklad z OOP  Priklad cislo 5
   Miroslav Petrasko 2I2    */

 package zapocet.clasy;

 public class Hracie_Pole{

	public int vyska,sirka,dlzka_p;
	public Stvorcek[][] polia;

	public Hracie_Pole(int v,int s, int d){
		vyska=v;
		sirka=s;
		dlzka_p=d;
   	    polia=new Stvorcek[v][s];
			for (int i=0;i<vyska;i++)
				  for (int j=0;j<sirka;j++)
					    polia[i][j]=new Stvorcek(i,j,-1);
		       }




	public void vypisHP(){ //vypisanie obsahu celeho hracieho pola

		System.out.print("  ");

		for (int i=0;i<sirka;i++)
		    System.out.print(" "+i);

		    System.out.print("\n");

		for (int i=0;i<vyska;i++){
		   	System.out.print(i+" ");
				for (int j = 0; j < sirka; j++)
				     if (polia[i][j].getHrac() == 1)
				       System.out.print(" X");
				     else if (polia[i][j].getHrac() == 0)
				       System.out.print(" O");
				     else
       System.out.print("  ");

		System.out.print("\n");}
		}



	public Stvorcek[][] getStv() {
	   	return polia;
	 	}


	public int getPRiadkov() {
	    return vyska;
	    }

	public int getPStlpcov() {
		return sirka;
		}

	public boolean plneHPole() {
		for (int i=0;i<=vyska;i++)
			for (int j=0;j<=vyska;j++)
				 if (polia[i][j].getHrac()==-1)return false;
			return true;}


			//vracia ci vlozeny stvorcek tvori so susedmi piskvorku
  	public boolean jePiskvorka(int riadok, int stlpec, int hrac) {
		int smery[]={0,1,1,1};
		int smerx[]={1,0,1,-1};
		int pocet,nasobok;
        boolean kontrola,kontrola2;
		for(int i=0;i<4;i++){
			pocet=1;
			nasobok=1;
			kontrola=false;
			kontrola2=false;

			do{

			if(((riadok+nasobok*smerx[i])<vyska)&&((riadok+nasobok*smerx[i])>=0)&&((stlpec+nasobok*smery[i])<sirka)&&((stlpec+nasobok*smery[i])>=0)){
				if (polia[riadok+nasobok*smerx[i]][stlpec+nasobok*smery[i]].getHrac()==hrac) {pocet++;nasobok++;} else kontrola=true;} else kontrola2=true;

			}while ((!kontrola)&&(!kontrola2));

			nasobok=1;
			kontrola=false;
			kontrola2=false;

			do{

			if(((riadok-nasobok*smerx[i])<vyska)&&((riadok-nasobok*smerx[i])>=0)&&((stlpec-nasobok*smery[i])<sirka)&&((stlpec-nasobok*smery[i])>=0)){
				if (polia[riadok-nasobok*smerx[i]][stlpec-nasobok*smery[i]].getHrac()==hrac) {pocet++;nasobok++;} else kontrola=true;} else kontrola2=true;

			}while ((!kontrola)&&(!kontrola2));

			if (pocet>=dlzka_p) return true;
		}

		return false;

	}


}


