import java.util.*; public class Halma1{ int[][] laud; int laius, korgus; public void algseis(int laius, int korgus, int nuppudelaius, int nuppudekorgus){ laud=new int[laius+1][korgus+1]; this.laius=laius; this.korgus=korgus; for(int rida=1; rida<=nuppudekorgus; rida++){ for(int veerg=1; veerg<=nuppudelaius; veerg++){ laud[veerg][rida]=1; //must } } for(int rida=korgus-nuppudekorgus+1; rida<=korgus; rida++){ for(int veerg=laius-nuppudelaius+1; veerg<=laius; veerg++){ laud[veerg][rida]=2; } } } public void astu(int algveerg, int algrida, int loppveerg, int lopprida){ laud[loppveerg][lopprida]=laud[algveerg][algrida]; laud[algveerg][algrida]=0; } public void astu(HalmaK2ik k2ik){ astu(k2ik.x1, k2ik.y1, k2ik.x2, k2ik.y2); } public boolean kasSees(int veerg, int rida){ if(veerg<1){return false;} if(veerg>laius){return false;} if(rida<1){return false;} if(rida>korgus){return false;} return true; } public boolean kasVaba(int veerg, int rida){ if(laud[veerg][rida]==0){return true;} return false; } public boolean kasSeesJaVaba(int veerg, int rida){ if(!kasSees(veerg, rida)){return false;} return kasVaba(veerg, rida); } public List leiaK2igud(int kelleKord){ List k2igud=new ArrayList(); for(int rida=1; rida<=korgus; rida++){ for(int veerg=1; veerg<=laius; veerg++){ if(laud[veerg][rida]==kelleKord){ if(kasSeesJaVaba(veerg-1, rida)){ k2igud.add(new HalmaK2ik(veerg, rida, veerg-1, rida)); } if(kasSeesJaVaba(veerg+1, rida)){ k2igud.add(new HalmaK2ik(veerg, rida, veerg+1, rida)); } if(kasSeesJaVaba(veerg, rida-1)){ k2igud.add(new HalmaK2ik(veerg, rida, veerg, rida-1)); } if(kasSeesJaVaba(veerg, rida+1)){ k2igud.add(new HalmaK2ik(veerg, rida, veerg, rida+1)); } } } } System.out.println(k2igud); return k2igud; //Trüki välja esimene võimalik käik //Trüki välja juhuslik võimalik käik } public String toString(){ StringBuffer sb=new StringBuffer(); for(int rida=korgus; rida>=1; rida--){ sb.append(rida); //lisab puhvrisse for(int veerg=1; veerg<=laius; veerg++){ char taht=' '; if(laud[veerg][rida]==1){taht='m';} if(laud[veerg][rida]==2){taht='v';} sb.append(taht); } sb.append('\n'); } sb.append(' '); for(int veerg=1; veerg<=laius; veerg++){ sb.append(veerg); } return sb.toString(); } }