// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) // Source File Name: PhChess.java import java.applet.Applet; import java.awt.*; public class PhChess extends Applet { public PhChess() { } public boolean SomeInitialConditionForKeydown(){ System.out.println("Backup keys have been disabled"); return true; } public void SomethingElseForTotalBackBoard() { } public void SomethingElseForTotalSaveBoard() { } public void SomethingElseForUnBackBoard() { } public void SomethingElseForLoadSavedBoard() { } public boolean keyDown(Event e, int k) { if (humanizing==true){return false;} if (SomeInitialConditionForKeydown()==true){return true;} Graphics g=getGraphics(); oopsKey=getParameter("OOPS").charAt(0); saveKey=getParameter("SAVE").charAt(0); loadKey=getParameter("LOAD").charAt(0); if (k==oopsKey) { PromotingAPawn=false; GameOver=false; UnBackBoard();TotalMaybeBoard(NowBoard, MaybeBoard); markingAPiece=true; whoseMove=who_backed; SayWhoIsHuman(g); whatpiecescanmove(g); TotalMaybeBoard(NowBoard, MaybeBoard); GenerateAttackersArrays(); CountAllThePieces(); DrawNowBoard(g); return true; } if (k==saveKey) { TotalSaveBoard();TotalMaybeBoard(NowBoard, MaybeBoard); who_saved=whoseMove; } if (k==loadKey) { PromotingAPawn=false; GameOver=false; LoadSavedBoard();TotalMaybeBoard(NowBoard, MaybeBoard); markingAPiece=true; whoseMove=who_backed; SayWhoIsHuman(g); whatpiecescanmove(g); TotalMaybeBoard(NowBoard, MaybeBoard); GenerateAttackersArrays(); CountAllThePieces(); DrawNowBoard(g); return true; } System.out.println("kurwa"); return false; } public void TotalBackBoard(){back_turncounter=turncounter;back_fifty_move_rule=fifty_move_rule; for(xxx=0; xxx < 10; xxx++) for(yyy=0; yyy < 7; yyy++) { BackBoard.sq_[yyy][xxx].side_=NowBoard.sq_[yyy][xxx].side_; BackBoard.sq_[yyy][xxx].piece_=NowBoard.sq_[yyy][xxx].piece_; SomethingElseForTotalBackBoard(); } } public void TotalSaveBoard(){saved_fifty_move_rule=fifty_move_rule;saved_turncounter=turncounter; for(xxx=0; xxx < 10; xxx++) for(yyy=0; yyy < 7; yyy++) { SaveBoard.sq_[yyy][xxx].side_=NowBoard.sq_[yyy][xxx].side_; SaveBoard.sq_[yyy][xxx].piece_=NowBoard.sq_[yyy][xxx].piece_; SomethingElseForTotalSaveBoard(); } } public void UnBackBoard(){turncounter=back_turncounter;fifty_move_rule=back_fifty_move_rule;ShowStatusNothing(); for(xxx=0; xxx < 10; xxx++) for(yyy=0; yyy < 7; yyy++) { NowBoard.sq_[yyy][xxx].side_=BackBoard.sq_[yyy][xxx].side_; NowBoard.sq_[yyy][xxx].piece_=BackBoard.sq_[yyy][xxx].piece_; SomethingElseForUnBackBoard(); } } public void LoadSavedBoard(){turncounter=saved_turncounter;fifty_move_rule=saved_fifty_move_rule;ShowStatusNothing(); for(xxx=0; xxx < 10; xxx++) for(yyy=0; yyy < 7; yyy++) { NowBoard.sq_[yyy][xxx].side_=SaveBoard.sq_[yyy][xxx].side_; NowBoard.sq_[yyy][xxx].piece_=SaveBoard.sq_[yyy][xxx].piece_; SomethingElseForLoadSavedBoard(); } } public void ShowStatusQ(String stringo){ if (turncounter==0){showStatus(stringo);return;} showStatus(stringo+" ["+turncounter+"]"); } public void NegateGMCounts(){GM1count=0;GM2count=0;GM3count=0;GM4count=0;GM5count=0;GM6count=0;GM7count=0;GM8count=0;GM9count=0;GM10count=0;} public void AssignGoodMove1(){GM1count++;if ((Math.random()*GM1count<1)|(GM1count==1)){goodmove1 = moveCounter;}} public void AssignGoodMove2(){GM2count++;if ((Math.random()*GM2count<1)|(GM2count==1)){goodmove2 = moveCounter;}} public void AssignGoodMove3(){GM3count++;if ((Math.random()*GM3count<1)|(GM3count==1)){goodmove3 = moveCounter;}} public void AssignGoodMove4(){GM4count++;if ((Math.random()*GM4count<1)|(GM4count==1)){goodmove4 = moveCounter;}} public void AssignGoodMove5(){GM5count++;if ((Math.random()*GM5count<1)|(GM5count==1)){goodmove5 = moveCounter;}} public void AssignGoodMove6(){GM6count++;if ((Math.random()*GM6count<1)|(GM6count==1)){goodmove6 = moveCounter;}} public void AssignGoodMove7(){GM7count++;if ((Math.random()*GM7count<1)|(GM7count==1)){goodmove7 = moveCounter;}} public void AssignGoodMove8(){GM8count++;if ((Math.random()*GM8count<1)|(GM8count==1)){goodmove8 = moveCounter;}} public void AssignGoodMove9(){GM9count++;if ((Math.random()*GM9count<1)|(GM9count==1)){goodmove9 = moveCounter;}} public void AssignGoodMove10(){GM10count++;if ((Math.random()*GM10count<1)|(GM10count==1)){goodmove10 = moveCounter;}} public void start(){ if (NowBoard==null){init();repaint();ShowStatusQ("Applet Re-Started");} } public void AddAnAttacker() { if((xatt == catt) & (yatt == datt)) return; if((catt > 6) | (datt > 6) | (catt < 1) | (datt < 1)) return; if(satt > 2) { return; } else { Attackers[datt][catt][satt]=Attackers[datt][catt][satt] + 1; if (StrongestAttacker[datt][catt][satt]NowBoard.sq_[yatt][xatt].strength()) | (WeakestAttacker[datt][catt][satt]==0)) {WeakestAttacker[datt][catt][satt]=NowBoard.sq_[yatt][xatt].strength();} return; } } public boolean AmIUnderAttack(int i, int j, int k) { if(SupplementalAmIUnderAttackers(i, j, k)) return true; cc=j + 1; dd=i; while(cc < 7) if(MaybeBoard.sq_[dd][cc].side_ == k) { cc=20; } else { if(IsEnemyRook(dd, cc)) return true; if(MaybeBoard.sq_[dd][cc].piece_ != 0) cc=20; cc++; } cc=j - 1; dd=i; while(cc > 0) if(MaybeBoard.sq_[dd][cc].side_ == k) { cc=-1; } else { if(IsEnemyRook(dd, cc)) return true; if(MaybeBoard.sq_[dd][cc].piece_ != 0) cc=-1; cc--; } cc=j; for(dd=i + 1; dd < 7;) if(MaybeBoard.sq_[dd][cc].side_ == k) { dd=20; } else { if(IsEnemyRook(dd, cc)) return true; if(MaybeBoard.sq_[dd][cc].piece_ != 0) dd=20; dd++; } cc=j; for(dd=i - 1; dd > 0;) if(MaybeBoard.sq_[dd][cc].side_ == k) { dd=-1; } else { if(IsEnemyRook(dd, cc)) return true; if(MaybeBoard.sq_[dd][cc].piece_ != 0) dd=-1; dd--; } cc=j - 1; dd=i - 1; if(IsEnemyKing(dd, cc, k)) return true; cc=j - 1; dd=i; if(IsEnemyKing(dd, cc, k)) return true; cc=j - 1; dd=i + 1; if(IsEnemyKing(dd, cc, k)) return true; cc=j; dd=i - 1; if(IsEnemyKing(dd, cc, k)) return true; cc=j; dd=i + 1; if(IsEnemyKing(dd, cc, k)) return true; cc=j + 1; dd=i - 1; if(IsEnemyKing(dd, cc, k)) return true; cc=j + 1; dd=i; if(IsEnemyKing(dd, cc, k)) return true; cc=j + 1; dd=i + 1; if(IsEnemyKing(dd, cc, k)) return true; cc=j - 1; dd=i; if(IsEnemyVizier(dd, cc, k)) return true; cc=j + 1; dd=i; if(IsEnemyVizier(dd, cc, k)) return true; cc=j; dd=i - 1; if(IsEnemyVizier(dd, cc, k)) return true; cc=j; dd=i + 1; if(IsEnemyVizier(dd, cc, k)) return true; cc=j - 1; dd=i - 1; if(IsEnemyFerz(dd, cc, k)) return true; cc=j - 1; dd=i + 1; if(IsEnemyFerz(dd, cc, k)) return true; cc=j + 1; dd=i - 1; if(IsEnemyFerz(dd, cc, k)) return true; cc=j + 1; dd=i + 1; if(IsEnemyFerz(dd, cc, k)) return true; cc=j - 2; dd=i; if(IsEnemyDabbaba(dd, cc, k)) return true; cc=j + 2; dd=i; if(IsEnemyDabbaba(dd, cc, k)) return true; cc=j; dd=i - 2; if(IsEnemyDabbaba(dd, cc, k)) return true; cc=j; dd=i + 2; if(IsEnemyDabbaba(dd, cc, k)) return true; cc=j - 2; dd=i - 2; if(IsEnemyAlfil(dd, cc, k)) return true; cc=j - 2; dd=i + 2; if(IsEnemyAlfil(dd, cc, k)) return true; cc=j + 2; dd=i - 2; if(IsEnemyAlfil(dd, cc, k)) return true; cc=j + 2; dd=i + 2; if(IsEnemyAlfil(dd, cc, k)) return true; cc=j - 2; dd=i - 1; if(IsEnemyKnight(dd, cc, k)) return true; cc=j - 2; dd=i + 1; if(IsEnemyKnight(dd, cc, k)) return true; cc=j + 2; dd=i - 1; if(IsEnemyKnight(dd, cc, k)) return true; cc=j + 2; dd=i + 1; if(IsEnemyKnight(dd, cc, k)) return true; cc=j - 1; dd=i - 2; if(IsEnemyKnight(dd, cc, k)) return true; cc=j - 1; dd=i + 2; if(IsEnemyKnight(dd, cc, k)) return true; cc=j + 1; dd=i - 2; if(IsEnemyKnight(dd, cc, k)) return true; cc=j + 1; dd=i + 2; if(IsEnemyKnight(dd, cc, k)) return true; if(k != 1) { cc=j + 1; dd=i - 1; if(IsEnemyPawn(dd, cc, k)) return true; cc=j - 1; dd=i - 1; if(IsEnemyPawn(dd, cc, k)) return true; } if(k != 2) { cc=j + 1; dd=i + 1; if(IsEnemyPawn(dd, cc, k)) return true; cc=j - 1; dd=i + 1; if(IsEnemyPawn(dd, cc, k)) return true; } return false; } public boolean AmIUnderSparrowAttack(int i, int j, int k) { if(SupplementalAmIUnderSparrowAttackers(i, j, k)) return true; cc=j + 1; dd=i; while(cc < 7) if(MaybeBoard.sq_[dd][cc].side_ == k) { cc=20; } else { if(IsEnemyRook(dd, cc) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; if(MaybeBoard.sq_[dd][cc].piece_ != 0) cc=20; cc++; } cc=j - 1; dd=i; while(cc > 0) if(MaybeBoard.sq_[dd][cc].side_ == k) { cc=-1; } else { if(IsEnemyRook(dd, cc) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; if(MaybeBoard.sq_[dd][cc].piece_ != 0) cc=-1; cc--; } cc=j; for(dd=i + 1; dd < 7;) if(MaybeBoard.sq_[dd][cc].side_ == k) { dd=20; } else { if(IsEnemyRook(dd, cc) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; if(MaybeBoard.sq_[dd][cc].piece_ != 0) dd=20; dd++; } cc=j; for(dd=i - 1; dd > 0;) if(MaybeBoard.sq_[dd][cc].side_ == k) { dd=-1; } else { if(IsEnemyRook(dd, cc) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; if(MaybeBoard.sq_[dd][cc].piece_ != 0) dd=-1; dd--; } cc=j - 1; dd=i - 1; if(IsEnemyKing(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 1; dd=i; if(IsEnemyKing(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 1; dd=i + 1; if(IsEnemyKing(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j; dd=i - 1; if(IsEnemyKing(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j; dd=i + 1; if(IsEnemyKing(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 1; dd=i - 1; if(IsEnemyKing(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 1; dd=i; if(IsEnemyKing(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 1; dd=i + 1; if(IsEnemyKing(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 1; dd=i; if(IsEnemyVizier(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 1; dd=i; if(IsEnemyVizier(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j; dd=i - 1; if(IsEnemyVizier(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j; dd=i + 1; if(IsEnemyVizier(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 1; dd=i - 1; if(IsEnemyFerz(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 1; dd=i + 1; if(IsEnemyFerz(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 1; dd=i - 1; if(IsEnemyFerz(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 1; dd=i + 1; if(IsEnemyFerz(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 2; dd=i; if(IsEnemyDabbaba(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 2; dd=i; if(IsEnemyDabbaba(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j; dd=i - 2; if(IsEnemyDabbaba(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j; dd=i + 2; if(IsEnemyDabbaba(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 2; dd=i - 2; if(IsEnemyAlfil(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 2; dd=i + 2; if(IsEnemyAlfil(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 2; dd=i - 2; if(IsEnemyAlfil(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 2; dd=i + 2; if(IsEnemyAlfil(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 2; dd=i - 1; if(IsEnemyKnight(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 2; dd=i + 1; if(IsEnemyKnight(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 2; dd=i - 1; if(IsEnemyKnight(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 2; dd=i + 1; if(IsEnemyKnight(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 1; dd=i - 2; if(IsEnemyKnight(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 1; dd=i + 2; if(IsEnemyKnight(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 1; dd=i - 2; if(IsEnemyKnight(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j + 1; dd=i + 2; if(IsEnemyKnight(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; if(k != 1) { cc=j + 1; dd=i - 1; if(IsEnemyPawn(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 1; dd=i - 1; if(IsEnemyPawn(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; } if(k != 2) { cc=j + 1; dd=i + 1; if(IsEnemyPawn(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; cc=j - 1; dd=i + 1; if(IsEnemyPawn(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) return true; } return false; } public boolean AmIWorried(int i) { if((skipDtGM) | (depth > 1)) return false; if(i != whoseMove) return false; for(xxx=1; xxx < 7; xxx++) for(yyy=1; yyy < 7; yyy++) if((MaybeBoard.sq_[yyy][xxx].side_ == i) & (MaybeBoard.sq_[yyy][xxx].strength() > 1) & (MaybeBoard.sq_[yyy][xxx].strength() > NowBoard.sq_[d[depth]][c[depth]].strength()) && AmIUnderSparrowAttack(yyy, xxx, i)) return true; return false; } public void Archives() { ArchiveCounter=0; for(ff=1; ff < 7; ff++) for(ee=1; ee < 10; ee++) { ArchiveBoard[fifty_move_rule].sq_[ff][ee].piece_=NowBoard.sq_[ff][ee].piece_; ArchiveBoard[fifty_move_rule].sq_[ff][ee].side_=NowBoard.sq_[ff][ee].side_; } ArchiveBoard[fifty_move_rule].sq_[0][0].side_=whoseMove; for(xxx=0; xxx < fifty_move_rule; xxx++) { if(DoesArchiveMatchNowBoard()) ArchiveCounter++; if(ArchiveCounter > 1) { drawn_games++; ShowStatusQ("Draw By Repetition"); GameOver=true; return; } } } public void CountAllThePieces() { undef_enemy_pawn_most_advanced_file[1]=0; undef_enemy_pawn_most_advanced_file[2]=0; undef_enemy_pawn_most_advanced_rank[1]=0; undef_enemy_pawn_most_advanced_rank[2]=0; undef_enemy_pawn_nearest_king_file[1]=0; undef_enemy_pawn_nearest_king_file[2]=0; undef_enemy_pawn_nearest_king_rank[1]=0; undef_enemy_pawn_nearest_king_rank[2]=0; distance_to_edible_pawn[1]=200; distance_to_edible_pawn[2]=200; for(xxx=1; xxx < 7; xxx++) for(yyy=1; yyy < 7; yyy++) if(NowBoard.sq_[yyy][xxx].pawn()) { pawnowner=NowBoard.sq_[yyy][xxx].side_; if(Attackers[yyy][xxx][pawnowner] == 0) { if((pawnowner == 1) & ((undef_enemy_pawn_most_advanced_rank[2] == 0) | (yyy > undef_enemy_pawn_most_advanced_rank[2]))) { undef_enemy_pawn_most_advanced_rank[2]=yyy; undef_enemy_pawn_most_advanced_file[2]=xxx; } if((pawnowner == 2) & ((undef_enemy_pawn_most_advanced_rank[1] == 0) | (yyy < undef_enemy_pawn_most_advanced_rank[2]))) { undef_enemy_pawn_most_advanced_rank[1]=yyy; undef_enemy_pawn_most_advanced_file[1]=xxx; } if(distance_to_edible_pawn[3 - pawnowner] > (KingRank[3 - pawnowner] - yyy) * (KingRank[3 - pawnowner] - yyy) + (KingFile[3 - pawnowner] - xxx) * (KingFile[3 - pawnowner] - xxx)) { undef_enemy_pawn_nearest_king_rank[3 - pawnowner]=yyy; undef_enemy_pawn_nearest_king_file[3 - pawnowner]=xxx; } } } ZeroAllFiveCounts(); for(xxx=1; xxx < 7; xxx++) for(yyy=1; yyy < 7; yyy++) { if(NowBoard.sq_[yyy][xxx].piece_ == 1) PawnCount[NowBoard.sq_[yyy][xxx].side_]++; if(NowBoard.sq_[yyy][xxx].piece_ == 2) PawnCount[NowBoard.sq_[yyy][xxx].side_]++; if(NowBoard.sq_[yyy][xxx].piece_ == 3) KnightCount[NowBoard.sq_[yyy][xxx].side_]++; if(NowBoard.sq_[yyy][xxx].piece_ > 104) EnlightenedCount[NowBoard.sq_[yyy][xxx].side_]++; if(NowBoard.sq_[yyy][xxx].piece_ == 5) RookCount[NowBoard.sq_[yyy][xxx].side_]++; if(NowBoard.sq_[yyy][xxx].piece_ == 6) RookCount[NowBoard.sq_[yyy][xxx].side_]++; if(NowBoard.sq_[yyy][xxx].piece_ > 100) TotalPhilosopherCount[NowBoard.sq_[yyy][xxx].side_]++; if(NowBoard.sq_[yyy][xxx].piece_ < 0) KingCount[NowBoard.sq_[yyy][xxx].side_]++; } } public void DesignateTheFineMoves(Chsq chsq) { good_move=1; if((skipDtGM) | (depth > 1) | (worried)) return; if(IsMySideInCheck(3 - chsq.side_)ic=j - 2; dd=i - 2; ooing_file[2]=0; undefp ) { PromotingAPawn=false; Gdd][cc].strength() < MaybeBoard.sq_[i][j;p for(xxx=0; xx if((NowBoard.sq_[chsq.rank_ - 1][chsq.file_ + 1].side_ == 0) & (NowBoard.sq_[chsq.rank_][chsq.file_ + 1].side_ != chsq.side_) & ((NowBoard.sq_[chsq.rank_][chsq.file_ + 1].piece_ == 2) | (NowBoard.sq_[chsq.rank_][chsq.file_ + 1].piece_ == 52) | (Nepcatch; } 3chsq.j].sF } (xx; n return true; if(k != 2) { cc=j + 1; dd=i + 1; if(IsEnemyPawn(dd, cc, k) && MaybeBoard.sq_[dd][cc].strength() < MaybeBoard.sq_[i][j].strength()) [ngth()) return und [ngt= ddsedOver[][]; M [ngt= dds == _4 M _ue; cc=j_hiq.rank_][chsq.file_ + 1].piece_ == 52) |f cc=j_hiq.rank_][chs}+ 1].piece_ == 5a!= chsq.si7 { 79rank_][chsq.file_ + 1].piece_ == 52) aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaali - 1; && MaybeBoard.sq_[dd][cc].stwnowner] - yyy) * (KingRank[3 - pawnowner] - yyy) + (KingFile[3 - pawnowner] - xxx) * (KingFile[3 - pawnowner] - xxx)) { undef_enemy_pawn_nearest_king_rank[3 - pawnowner]=yyy; Count[NowBoard.sq_[yyy][xxx].side_]++; if(NowBoard.sq_[yyy][xxx].piece_ == 3) B4 Count[NowBoard.sq_[yyy]Gy"+turncounter+"]"); } cc=20; cc++; } cc=j - 1; dd=i; while(cc > 0) if(MaybeBoa dd=i; >08_f(IsEnemyKing(dd, cc, k) && Ma3NowBoard.sq_[yyy]Gy"+turncounter+"]"); } cc=20; cc++; } cc=j - 1; dd=i; while(cc > 0) i7 { 79rank_][ile(cc > 0) if(MaybeBoa dd=i; >08_f(IsEnemyKing(dd, cc, k) && Ma3NowBoard.sq_[yyy]Gy"+turncounter+"]"); } cc=20; aaaDt-) < M2[.rank_ - 1][ch_ cc=20; Boa d.piece_ == 52) aaaaaaaaaaaaaaundeia /3m0ep3m0ep3m0ep3m0ep3m0ep3m0ep3mt9rwBoard.s if(MaybeBoa dd=i; >08_f(IsE } } 4G aaaDt cc=20; aaaDt-) < M2[.rank_ - 1][ch_ cc=20; Boa d.piece_ == 52) aaaaaaaaaaaaaaundeia awnown if(Maybe i7 { 79rank_][ile(cc > 0) if(MaybeBoa dd=i; >08_f(IsEnemyKing(dd, cc, k) && Ma3NowBoard.sn( 7 < if ((Math.random()*GM6count<1)|(GM6count==1)){goodmove6 nk_ -ix].side_]++; hmtece_< if ((Math.random()*j_hiq.rank_][ dd=i; w < M|yyy][xxx].piece_ == 1) awnowner] dd=i; >08_f(IsEnemyP awnowner] dd=i; >08_f(IsEnemyP awnowner] dd=i; >08_f(IsEnemyP awnowner] dd=i; >08_f(IsEnemyP r_nearest_king_rank[3 - pawnowne1(8_f(IsEnemyP ) if(MaybeBongsquare_.markchsqiawno] dod.sq_[yyy]Gy"+turncif h c[depth]=chsq.file_ + 1; ;4.file_ + 1; dd=(0) if(MaybeBoa dd=i; >=i; >08_f(I53de_; SaveBoard.sq_[yyy][xxx].piece_=NowBoard.sq_[yyy][xxx].piece_; Pawn(dd,sd=(0) (xx;[yyy]Gy"+turncif h >=i; >08_f(I53de_; SaveBoard.sq_[yyy][xxx].piece_=N].pi (xx;[yyy]Gy"+turncif h >=i; >08_f(I53de_; SaveBoard.sq_[yyy][xxx].piece_=N].pi (xx;[yyy]Gy"rank_][ile(cc > 0) if(MaybeBwn(dd() < MaybeBoe_=N return true; y[chs SaveBoardepth]ue; y[chs sEnemy dd=i; whilFerz(dd, c.pi re_.map3de_; s< if ((Math.random()*GM6coun(andom()*j_hiq. dd=i; whilFerz(dd, c._g(d9MaybeBoe_=N wybeBongsquare_. + { om()*GM6coun(andom()*j_h.pi f(MaybeBoard.sq_[dd][cc].side_ == k) { ngth(io- 2; + { om()*GM6coun(andom()*j_h.pi t0.pi f(MaybeBoard."t+ } k) { -wnoc.pi re_ { -wnoc.pi re r;}} public void AssignGoodMov2iece_ == 52) { ts); rvcifpi f(MaybeBoard"ard."t+ } k) { -wnoc.pi { ts] ts); rvcifpi f(MaybeBo w sEnemy 1slr>=N return true; y[chs SaveBoardepth]ue; y[chs sEnemy n ts); chs rvcifpi f(Mayb{depth]=chsq.fcc, k)) return true; cbsy" f(M(txx].piece_ h } *j_h.pi if(NowBoard.sq_[yyy]q_[yyy]Gy"+temyP 0) aybeBoa 1i).S{ ] f(M(txx].piece_ return trugi).S{ ] f(M(txx w sEnemy re_ { -wnoc.pi re_.map e_ return trugi).S{ ] f(M(txx w sEnemy re_ { -wnoc.pi re_.map e_ return trugi).S{ herCount[NowBoard.sq_[yyy]xd.sq 5f_{ herCount[NowBoard.sq_[yyy]xd.sq 5f_{ herCount[NowBoard.sq_[x].pawn cc=20; if(MaybeBongsquare_.maa 5f_{ herCount[NowBoard.sq_[yyy]xd.sq 5f_{ herCount[NowBoard.sq_[x].]xd. herC f(MaybeBoard.sq_[dd][cc].side_ == k) 7serSq _[yyy]q_[yyy]Gy"+temyP 6coun(aasq_[yyy]xd.sq 5f_{ herCount[NowBoard.sq_[x].]xd. herC f(MaybeBoard.sq_[dd][cc].side_ == k) 7serSq _[yyy]q_[yyy]Gy"+temyP 6coun(aasq_[yyy]xd.sq 5f_{ herCount[NowBoard.sq_[x].]xd. herC f(MaybeBoard.sq_[dd][cc].side_ == k) 7se6= 6coun(aasq_[yyy]xd.sqount[NowBoard7sq 5f_{ herCount[NowBoard.sq_[x].]xd. herC f(MaybeBoard.sq_[dd][cc].side_ == k) 7se6= 6coun(aasq_[yyy]xd.sqount[NowBoard7sq 5f_{ herCount[NowBoard.sq_[x].]xd. herC f(MaybeBoard.sq_[dd][cc].side_ == k) 7se6= 6coun(aasq_[yNowBoard.sq_[yyy]xd.sq 5)yard.sq_[dd][cc].0 id.sq_[dd][cc].6= 6coun(aasq_[yyy]xd.sqount[NowBoard7sq 5f_{ herCount[NowBoard.sq_[x].]xd. herC f(MaybeBoard.sq_[dd][cc].side_ == k) 7se6= 6coun(aas_sq_[(MaybeBoard.sq_[dd][cc].side_ == k) 7s, cc, k)) return thIsEnemyFerz(dd,p e_ ]k) rank_][ile 5f_iank_][ile 5f_i5ourn thIsEnemyFerz(dd,p e_ ]k) sm3wBoard7sq 5k) 7serSq _[yyy]q_[yyy]Gy"+temyP 6coun(aasq_[yyy]xd.sq q 5k) return true; d.side_ == k) 7s, cc, k)) 0o2eoard6l7se6= 6cgoun(aasq_[yyy_[yyy]xd.sq_[x].pawn 6l7se6= 6cgoun(aaspk) rank_][6coun(aasq_[yyy]xd.sq q 6coun(aasq_[yyy6= 6cgougth() < M7dd][cc].side_ == k) 7 0o2eoard6l>-wnoc.pi 8 3toranky]xd.sq_[x].pawn 6l7se6= 6cgoun(aaspk) rank_][6coun(aasq_[yyy]xd.sq q 6coun(aasq_[yyy6= 6cgougth() < M7dd][cc].side_ == k) 7 0o2eoard6l>-wnoc.pi 8 3toranky]xd.sq_[x].pawn 6l7se6= 6cgoun(aaspk) rank_][6c cc=j + 2; dd=i; ifS+ 2; dd=i_[yynoc.pi 8 3toran dd=i_[yyn)) os].pawn 6l7se6= oran dd=i_[yyn)) os].pawn 6l7se6= oran dd=i_[yyn)) os].pawn 6l7T { {oT { q.file_ + 1].piece_ == 2) | (NowBoard.sq-esrs[3 - pa; _[yyn)) os].paw< { if(Suppy 5f_txx].piece_t}hd"W) < M7dd][cc].side_ == k)xd.sq_[x].pawn 6l7 - 1; if(IsE.fi>ide_ == k)xd.sq_[x].pawn 6l7 - 1; if( 2;; _[yyy]xd.s M7dd][cc=2fount[NowBoard7sq 5f_{ herCoune = moveCo 3lSasq_[yyy]xd.sq q 5k) return true; d.side_ == k) 7s, cc, k)) 0o2eoard6l7se6= 6cgoun(an cc}hd"W) < M7dd][cc].side_ == k)xd.sq_[x].pawn 6l7 - 1; if(IsE.fi>ide_ == k)xd.sq_[x].pawn 6l7 - 1; if( 2;; _[yyy]xd.s M7dd][cc=2fount[NowBoard7sq 5f_{ ]) 6cgoun(aaspk) rank_][6c cc=j + 2; dy"+turnci wo ter;fiftyy]x dy"+turnci ] f(M(txx w sEnemy re 0o2M(t(7isE.fi>ide]) 6cgoun(aaspk) rank_][6c == k) 7 0o2eoard6l>-wnoc.pi 8 3toranky]xd.sq_[x].pawn 6l7se6b2 6l7se6b2 6l7se6b2 6l7se6b2 6l7se6b2 6l7se6b2 6l7se6b2 6l7 6l7se6b2e6b2 6l7se6b2 6l7se6b2 6eignGoodMov2iece_yq_[yyy]xd.sq q 5k) if(NowBo(if( 2;; _[yyy]xd.s]e(== 52) loadKey=getParame [yyyadKey=g4count++;if ((Ma7dd][cc].side_ == k) 7 0o2eoard6ljfile_ + 1].piece_ == 52) iid][cc].side_ == k) ;if ((Ma7drank_ - 1][ch_ c=].pawn 6y30 ;if ((Ma - p sEnemy re 0o2M(t(7isE.fi>ide]) 6cgoun(aaspk) rank_][6c rjy c=].pawn 6y30 ;if ((Ma - p sEnemy t(7isE.fi _ cc=j + 2; dd=i; ifSos].paw< { if(Suppy 5f_txx].piece_t}unter;fifty_move_ru2 sEnemP if(NowBo(if( 2;; _[yyy]xd.s]e(== 52) loadKey=getParame [yyyadKey=g4count++;if ((Ma7dd][cc&10st_king_file[1]=0; t_king_file ((etPrd.sq_[yyy][xxx].piece_ == 6) Roo((Mal7 owBoard.sq_[d[depth]][c[depth]].fil( undef_enemy_pa5< M7dd][cc].side_ == == p][ch_ c=].pawn 6y30 ;if ((52) iid][cc].side_ == k) ;if ((Ma7drank_ - 1][ch_ c=].pawn 6y30 ;if ((Ma - p sEnemy re 0o2M(t(7isE.fi>ide]) 6cgoun(aaspk) rank_][6c rjy cd][cc].strength() < Mayby5ourn thIsEnemyFerz(dd,p e2ard6l>-wnoc.pi 8 3toranky]xd.sq_[x].pawn 6l7se6= 6cgoun(aaspk) rank_][6coun(aasq_[yyy]xd.sq q 6coun(aGArz(dd,p e2ard6l>-wnope un_ wBoard.sq_[yyy][xxx].side_]++; opepawn 6l7se6= =]. 6l7se6= 6cgo].side_ == k) wde_ == k) 7s, cc, kmove=1; if((skip6 if(MaybeBoa 6b2 6l7std dd=i_[yynoc.pi 8 3toraif((skip6 if(MaybeBoa 6b2 6l7if(MaybeBoa 6b2 6b2 6l7if(MaybeBoa 6 MaybeBoard.sq_[dd][cc].strenok_i 6l7if(MaybeBoa 6b2 6b2 6l7if(MaybeBoa 6 MaybeBoard.sq_[dd][cc].strenok_i 6l7if(MaybeBoa nok_i 666666666(t(7isEif(MaybeBoa 6 MaybeBoard.sq_[dd][cc].].sid)) 2Pskip6 if(M"ard.sq_[dd][cc].].sid)) 2Pskip6 {(M(txx w sEnemy 6l7se6b2 wBoard.sq_[ 6l7se6blking_hrd.sq_[yatt][xatt].strength();} sEnemy 6l7se6b2 wBoard.sq_[ 6l7se6blng_hrd.sq_[_[ 6l7se6blk].stren ngth(io- 2;f(MaybeBoa 6b2 6b2 6l7if(MaybeBoa 6 MaybeBoard.sqenok_i 6l7if(MaybeBoa 1Boa6l7ify, kmove=1; igth();} S/cc].].sid)) 2Pski 3toraif((skia if(MaybeBongsqsq_[ 6 (Ma7dd][cc].side_ == z(dd,p e2ard6l } else { if(IsEnemyRook(dd, cc)) return truy ((Ma7dd][cc].s if(IsEnemyRook(dd, cc)) return truy side_; SaveBoard.sq_[yyy][xxx].piece_=NowBoard.sq_[ytruyard.sn( 7 < if ((Math.random()*GM6count08_f(Isr] d,).S{ ] f(M(txx w sEnemy re_ { -wnoc.pi e; cc=j - 1; dd=i + 1; if(IsEnemyPawn(dd, cc, k)) return thIsEnemyFerz(dd,p e_ ]k) rank_][ile 5f_iank_][ile 5f_i dd=i; fcc, k)) (M"ard.sq_6ok(dd, cc)) Ferz(dd,prank_][ile dd=i; if(IsEnemyKing(dd, cas1{,p e_ ]k) rank_][i 666666666(t(7isEif(re 5f_iank_][ile 5ank_][ile p.sq_[x].], cas1{,p e_ ]k) [ for6pd if(MaybeBoa 6b2be91{,p e_ ]k) [ for6pd if(MaybeBo if(MaybeBoa 6b2 6l7std dd=i_[yyrank_][ile dd=i; { ]) 6cgoun(aaspaybeBn(aaspaybeBn(e 6b2 6l7777777.lementak) [ for6pd if(Maybes84.S{treturn thIt dd=i_[yoooo(aaspa[ fo(MaybeBoa 6b2 r!= k){treturn thIt dd=i(aaspaybe i_[dd][cc].strenok_i 6lnoc.pi 8 3tevpaybe i_[dd][cc].strenok_ cc=j - 1; q_[x].pawn 6l7 - 1; cc=j + 1; ;z(dd,prank_][ile i0]y7baba(dd, cc, k)) rank7ece_ == 2) 5 a09, c =i .sq_ 5 a09, c =i .sq_ 5 a09, c srank_][ile i0]y7baba(dd, cc, k)) rank7ece_ == 2) 5 a09, c =i .sq_ 5 a09, c =i .sq_ 5 a myFerz(dd,ppth]].strength()) && AmIUnderSparrowAttack(yyy, xxx, i)) return true; "ard.sq_6ok(dd, if(IsEnemyKing(dd, cc, k)) return true; cc=j - 1; dd=i; if(IsEnemyKing(dd, cc, k)) return true; cc=j - 1; dd=i + 1;{ cctrue; cci + v if(IsEnemyKing for(xxx=(dd, for(xxx=(dd, for(xxx=(dd, for(xxx=(dd, for(x for(xxx=(dd, for(x for(xxx=nemyKing for(xxxeBo if(MaybeBoa 6b2 "or(xxx=nemy { Aror(xxx=(dd, forx=ne[ M { Aroreard.sq_[ytruyard.sn( 7 < if ((Math.random()*GM6count 0) if(MaybeBoa dd=i; >08_f(IsEnemyKing(dd, cc, k) && Ma3NowBoard.sq_[yyy]Gy"+turncounter+ }ybeBoad.s if(IsEnem if(MaybeBo.(dd, for(x-+;if ((Ma7dd][cc].side_ == k) 7 0o2eoard6ljfile_ + 1 while(cc > 0) + 1 ] f(M(txx w sEnemy si(7isEif(re 5f_iif ((Ma7dd][+ 1 while(cc > 0) + 1 ] f(M(txx w sEnemy si(7isEif(re 5f_iif ((Ma7dd][+ :c].strength() < M6d_[yyy][xxx].pi.ard2eoard6ljfile_ + 1 while(cc > 0) + 1 ] f(M(t5 < MaybeBoar trueBoar6(t(7ospk) r3trueBoar6(t(7ospk) r3trueBoar6 "ao if(MaybeBongsqsq][ee]ybeBoar true{ herCount[NowBoard.sq_[x].]xd. "s66(t(7isEif(re ; >ee 5t 0)m6ljfile_(M(txx w sEne fifty_mox=0; xxx < if(Maif(r- 2; (cc > 0) + 1 ] f(M(t5ard.sq______________ploar true{ herCousEif(re ; >ee 5tj9ile_ + 1 aa ; eturn true; cc=j - 2; dd=i cc=j + 1; 6(t(7isEif(re sEif(r "ard.sq_o dd=i + 1; _[dd]1t;Eif(re 5) 6(t(7a 6 Maybe3333 a + 1 aa ; eank7ece_ == 2>Ferz(dd,p e_ ]k) sm3wBoardf(MaybeBoa 6a3Noyank_][i 66 undef_ene2emyFerz(dd,p e_ ] aa ; eank7ece_ == 2> s1) e "ard.sq_6ok(ddce_ == 2) | (NowBoard.sq_[chsq.rank_][caw2 for(xxx=0; ifSoor(x]f(Ma}7c" if(MaybeBongsqsq_[q_[chsq.rank_] == 2> s1) e "ard.s6x=0; ifSoor(xp=1; xif(NowBoard.sq_[yyy][xxx]eank7ece_ == 2> s1) undef_ene2emyFerztl/nf(re ; >ee 5tj9ile_ + 1 aa ile dd=i; { ]) Ar3trueBoar6( 5tjt return true; cc= return trybeBongsqsq_[q_[chsq. cc= returmox=0; xxx < if(Maif(r- trength() 6(t(7isEif(re _[yyy]xd.s]e(== 6ljfile_ + 1 whisEi 0y][xxx]eank7ece_ f ((Ma7dd][+ 1 while(cc > 0) + 1 ] f(M(txx w sEnemy si(7isEif(re 5f_iif ((Ma7dd][+ :c].strength() < M6d_[yyy][xxx].pi.ard2eoard6ljfile_ + 1 while(cc > 0) + 1 ] f(M(t5 < MaybeBoar trueBoar6(t(7ospk) r3trfC3r(7ospk) d][+ :c].strength() < M6d_[yyy][xxx].pi.ard2eoard_ + 1 while(cc > 0) + 1 ] f(M(tq_[q_[chsq. cc= recoeMove) ][+ :herCou(== 6ljfile_ + 1 whisEi.2[q_[chsq. cc= recoeMove)6count<1)|(GM6count==1)){e(cc > 0) + 1 ] f(M(t5 < MaybeBoar trueBoar6(t(7ospk) r3trfC3r(7ospk) d][+ :c].strength() < M6d_[yyy][xxx].pi.ard2eoard_ + 1 <1)|(GM6count==1)){e(cc > 0) }1 <1)|(GM6cous9 0) }1 <1)|(GM6cous9 0_[x].]xd. |(GM6cous9 0) }1 <1)cc=1)|(GM6cous9 0)ove)6count<1)|(GM6count==1)){e(cc > 0) + 1 ] f(M(t5 < MaybeBoar trueBoar6(t(7ospk) y si(7isEif(re 5f_iif ((Ma7dd][+ :c] c[ == 2) | (Nof_iif (((Ma7dd][+ tBoa 1Boa6l7ify, kmox 2; if(MaybeBongsqsq][ee]ybeBoar true{ herCount[NowBoard.sq_[x].]xd. "s66(2 tBoa 1Boa6l7ify, kmox 2; if(MaybeBongsqsq][ee herCount[NowBoard.sq_[x].]xd. "s66(2 tBoa 1Boa6l7ify, kmox 2; if(MaybeBongsqsq][ee herCount[ eank7ece_ == 2>Ferz(dd,p e_ ]k) sm3wBoardf(MaybeBoa 6a3Noyank_][i 6(t(7isEif(h0 herCound][+ tBoa 1Boa6eank7ece_ == 2>Ferz(dd,p e_ ]k) sm3wBoardf "s66(2 t5CgP* 5d.sq_[dd][cc].strength() < f ((Ma7dd][+ 1 wfor(xxx=0; xxx < fifty_mox=0; xxx < fifw nsEnemy r=0; dd=i .sq_[ytruya u+ 1 wfor(xxx=0; xxx <_ tBoa 1Boa6l7ify, ke8 } public void DesignateTrbeBoa d dd=-1; (2 tBoa 3r_=-1; (2 tBoa 3r_rueBoar6( 5topy 5f_txx].piF 6G 6cgougth() < M7dd][cpiF 6G 6cgougth() < M7_ rewhilF0oyank_][i 6(t! iRewhilF0oyank_][i 6(t! 7

08_f(IsEnemyP awnowner] dd=i; >08_f(IsEnemyP r_nearest_king_rank[3 - pawnowne1(8_f(IsEnemyP ) if(MaybeBongsquare_.markchsqiawno] dod.sq_[yyy]Gy"+turncif h lo A cc=j - 2; dd=i cc=j + 1; yngsqsq][ee herCount[ eank7ece_ == 2>Ferz(dd,p e_ ]k) sm3wBoardf(MaybeBoa 6a3Noyank_][i 6(t(7isEif(h0 herCound][+ tBoa 1Boa6eank7ece_ == 2>Ferz(dd,p e_ ]k) sm3wBoardf "s66(2 t5CgP* 5d.sq_[dd][cc].strength() < f ((Ma7dd][+ 1 wfor(xxx=0;t MaybeBoard.sq_[ddid AssignGoodMov2iece_ == 52) q_[ddid Afse3333 =i + 1; _[e)uls1]arn truy side_; q_[ddid Afse3333 =i + 1; _[e)uls1]arn truy side_; c6a3Noyank_][i_f(IsEnemyP r_nearest_king_rank[3 - pawnowne1(8_f[e)uP ) MaybeBoa 6a3NoyEnemyP r_nearest_king_rank=i; >08_f(IsEnemyKing(dd, ca3NoyEnemyP il(d ccddF King(dd, ca3NoyEnemyP il(d ccddF King(dd, ca3NoyEnemyP il(d ccddF King(dd, ca3NoyEnemyP il(d ccddF Kdd, ca3NoyEnemyP il(d ccddFed_file[1]=0; k7ece_ == 2) 5 a09, c =i .sq_ 5 a09, c =i .sif(MaybeBoa {id AssignGoodMov2iece_ == 52) q_[4r =i .sif(MaybeBoa {id AssignGoodMov2i.sif(MaybeBoa oa {i } if(distance_to_e{ lo A cc=j - 2; p K3333 =i + 1; _[e)uls1]arn truy side_;3p _[e)uls1]ar_ Kdd, ca3NoyEnemyP il(d ccddFed_o=y >08_e)uls1]arn t h r_a_king26 side_;3p _[e)uls1]ar_ Kdd, ca6courn t h r_a_king26 side_;3p _[e)uing26 side_;3p _p 56n t h r_a_king26 s F King(d[yyy][xxx].side_]++; f>fn ank_6 s F ]i7 56n t sEnemy t(7is6n t t h r_a_king26 s cc=j - 2; p K3333 =i + 1; _[e)uls1] sEnemy t(7R if(distance_to K3333 yyy][xxx].side_]++; f>fn ank_6 s F ]2/=j - 1; dd=i + 2; return true; } return false; } public boolean AmIWorried(int i) { if((skipDtGM) | (depth > 1)) pth > 1)) pth > 1)) pth > 1e)) pth > 1e)) _[e)uls1]arn truy side_;3p t(7R i_e_; c6a3Noyank_][i_f(IsEnem ic+5 s2/=j - 1; dd= i pth > 1e)) _e6b2 6l7se6b2 6l7 6l7se6b2e6b2 6l7se6b2 6l7se6b2 6eignGoodMov2iece_yq_[yyy]xd.sq q 5k) if(NowBo(if( 2;; _[yyy]xd.s]e(== 52) loadKey=getParame [yyyadKey=g4count++;if ((Ma7dd][cc].side_ == k) 7 0o2eoard6ljfile_ +3 dd=i cc=j + 1; h()) re undsm ktre 4 undsm ktre c6a3NoyaM1f2) loadKey=getParame [yyyadKey=g4count++;if ((Ma7dd][cc].siddp6 {(M(txx w /[e)uls1]ar_ Kdd, ca6courn t h r_a_king26 sLCx7) &r.sq_[dd][cc].strength(ng26 sLCx7) &r.sq_[dd][cc].strength pth > 1e)) Keyc].siddp6 {(M(txx w /[e)uls1]ar_x w /[e)uls1]ar /[e)uls1]a r_x w /[e)u55o] dod.sq_[uls1]& herCount[N } t_;3p t(7R ()GM) | (depth > 1) | ( return true; cc=j + 1; dd= cc=j + 1; r_x w /[e)u55o] dod.sq_[u5rue6blng_hrrrrrrrrrrrrrrrrrrrrrrrrrrrradKee6blng_hrrrrrrf ((Ma7dd][+ 1 while(cc > 0) + 1 ] f(M(txx w sEnemy si(7isEif(re 5f_iif ((Ma7ddd(ayb{depth]=chsq.fccka;z(dd,p e_ ]kpr+2; return true; 40; xxx < fifte=] fue; cc=j +>ae)uls1]ar_ Kdd, ca6courn t h r_a1_6 s F ]2/=j - (cc > 0) + 1 ] f(M(txxs{lb } return falecpth > 1) | 9 s cc=j - 2; p K3333 =i + 1; _[e)uls1] sEnemy t(7R 6 + 1; _[wes1] sEnemy t(7R 6 + 1; _[wes1] sEnemy t(7R 6 + 1; _[wes1] sEnemy t(7R 6 + 1; _[wes1] sEnemy, k)) _!Rkr(xxx=(, foO cci + v if .0 id.sq_[dd][cKing(dd, cc, k)) s1) e "ard.sq_6ok(ddce_ == 2) | (NowBoard.sq_[chsq.rank_][caw2 for(xxx=0; ifSoor(x]f(Ma}7c" if(MaybeBongsqsq_[ 6 (Ma7dd][cc].side_ == zc=jdce_ == 2) | (NowBoard.sq_[chsq.rank_][ctount++;if ((Ma7dd][cco 6 + {(M(txx w /[e)uls1]ar_x w /[e)uls1]ar /[e)uls1]a r_x w /[e)u55o] dod.sq_[uls1]& herCount[N } t_;3p r(x]f(Ma}7c"1 rjfrrrrrrrrrrrrrrrN } t_;3p r(x]f(Ma}7c"1 rjfrrrrrrrrrrrrrrrN } t_;3p rcDx w /[e)u55o] dod.sq_=arcDx w /[e)u55o] dod.s r_x w /[e)u55o] dod.sce_ == 2) | (rradKee6blng_hrrrrrrf ((Ma7d; return true; cc=j + 1; dd= cc=j + 1; r_x w /[e)u55o] dod.sq_[u5rue6blng_hrrrrrrrrrrrrrrrrrrrrrrrrrrrradKee6blng_hrrrrrrf ((Ma7dd][+ 1 whilme)u55o] dRfxGM6count==1)){goodmove6 nk_ -ix].side_]++; dmove6 nk_ -ix].side_]++; dmove6 nk_ -ix];96rrrrf ((Ma7dd][+ 1 whilme)u55o] dRfxGM6count==1)){goodmove6 nk_ -ix].side_]++; dmove6 nk_ -ix].< f ((Marrrrf ((Ma7dd][+ 1 t, f pawnowner=Nowf ((Ma7t, cc, k) && Maybe5odMov2iece_ == 52) q_[ddid Afse3333 =i + 1; _[e)uls1]arn truy side_; q_[ddid Afse3333 =i + 1; _[e)uls1]arn truy side_; c6a3Noyank_][i_f(IsEnemyP r_nearest_king_rank[3 - pawnowne1(8_f[e)uP ) & herCount[N } t_;3p r(x]f(Ma}7c"1d.sq_[u5rue6blng_ dd=i[e)uls1]arn truy side_; c6a pa c6a pa c6a pa 3rrrrf ((Ma7dd][+ 1 t, f pawnowner=Nowf ((Ma & herCount[N ard.sq_[i][j].st==1)){goodmove6 nk_ -ix].sidEerCount[N } rf ((Ma7dd][+ 1 t, f i][j].st==1)){goodmove6 nk_ while(cc > 0) i7 { 79rank_][ile(cc > 0) if(MaybeBoa dd=i;ar)u55oo] dRfxGM6count==1)){goonowne1(8_f[e)uP gth pth > 1e)d6ljfile_ + 1 rrrrrrrradKee6blngd|I-eank7ece_ ]) Ar3trueBoar6( 5tjt c=j - 2; p K3333 pawnowner=Nowf>rn tru c6a3Noyk[3 - pawnowne1(8_f[e)uwrrf ((Ma7dd][+ 1r dd=i;aF5 5k) if(NowBo while(cc > 0) i7 { 79rank.awn_most_advanced_rank[1] == 0) | (yyy < undef_enemy_pawn_most_advanced_rank[2]))) { undef_enemy_pawn_most_advanced_rank[1]=yyy; undef_enemy_pawn_most_advanced_file[1]=xxxe(cc > 0) if(MaybeBoa 7sssssssssss|I-eank7ece_ ]) Ar3true_rank[1] == 0) | (yyy < undef_enemy_pawn_m) Ar3true_ra== k) 7se6= 6cou|ra== k) 7se6= 6cou|raB 6cou|raB 6cou|raB 6cou|raB 6cou|w)uls1]arn truy side_; , 1e)uP ) MaybeBo_oowner=Nowf>7= 6cou|ra== k) 7se68_fMaybeBo_oowner=Nowf>7= 6cou|ra== k) 7se68_fMaybeBo_oowner=Nowf>7= 6cou|ra== k) 7se68_fMaybeBo_oowne MaybeBo_oowner=Nowf>7= S6ljfile_ + 1 rrowner=Nowf>7= 6cou|ra== k) 7se68_fMaybeBo_oowne MaybeBo_oowner=Nowf>7= S6ljfile_ + 1 rrowner=Nowf_x w /[e)uls1]ar /[e)uls1] 6coUe)uls1]ar /[e)uls1] 6coUe)uls1]ar /[e)uls1] 6coUe)i dd=a== k) 7se68_fMaybeBo_oowne ) 7se68_fMaybeBo_oo. )uls1] 6coUe)uls1]ar k) 7se68_fMaybeBo_oowne ) KingCount[ KingC 7se68_fMaybeBoe999999999999999999999v5_ -ix].side_]++; dmove6 nk_ -ix].< f ((Marrrrf ((Ma)u5565si KingCo awnowner] dd=i; >08_f(IsEnemyP r_nearest_king s1uls1] 6coUe)uls1]ar k) 7se68_fMaybeBo_oowne ) Kingse68_fMaybeBo_beB:1d4.[1] == 0) | (yyy < undef_enemy_pawn_m) Ar3true_ra== k) 7se6= 6cou|ra== k) 7se6= 6cou|raB 6cou|raB 6cou|raB 6cou|raB 6cou|w)uls1]arn truy s dod.sq_[uls1]& her1e)d6ljfile_ + 1 rrr6= 6cou|ra((Ma7dd][cc].side_ neare KingC 7se68_fMaybeBoe9999999999r=Nowo er1e)d6ljfilllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllnemy_pawnm+; ShowStatusayber3true_ra cci if(Mayb2 "or(xxi if(_{ 1(] == 0) | (yyy < und8]++; dmove6 nk_ -ix].< f ((MCnbFng_rank[3 -8_f(IsEnemyP r_nearest_king s1uls1] owo er1e)d6ljfill k) 7se68_fMaybeBo_oowne ) KingCount[ KingC 7se68_fMaybeBoe999999999999999999999v5_ -ix].side_]++; dmove6 nk_ -ix].< f ((Marrrrf ((Ma)u5565si KingCo awnowner] dd=i; >08_f(IsEnemyP r_nearest_king s1uls1] 6coUe)uls1]ar k) 7se68_fM)ul5(IsEper3true_ra eroi9side_]++; dm awnowner]ssss|I-eank7ece_ rC 7se68_f; <7xx].piece_ == 5) for(x for(xxx= retur | (NowBoard.sq_[chsq.r[chsq.rank_][caw2 for(trd.sq_[ytruyaD randgcg(chsq.rank_][ca cci + v if .0 id.sq_[dd][cKing(d|FFFFFFFFFFFFFdd=i; >08_f(IsEnemyKing(dd, cc, k) && Mafor(x for50uls1]ar k) 7se68_fM)ul5(IsEper3true_ra eroi9side_]++; dm awnowner]ssss|I-eank7ece_ r 7sebt_king s1uls1] owo er1e)d6ljfill k) 7se68_fMaybeBo_oowne ) KingCount[ KingC 7se68_fMaybeBoe999999999999999999999v5_ -ix].side_]++; dmove6 nk_ -ix].< f ((Marrrrf ((Ma)u5565oiMarrrrf ((Ma)uf7se68_fMaybeBoe999999999999999999999v5_ -iae)d6l8_fgCount[ KingC 7se68_fMaybeBoe999999999999999999999v5_ -ix].si16i f ((Marrrrf ((Ma)u55rf ((Ma)u5565oiMarrrarf ((Ma)uf7se68_fMaybeBoe999999999999999999999v5_ -iae)d6l8_fgCouqy+ 1 retur | (NowBoard.sq_[chsq.r[ch5p}ueBoar6( 5tjt c=j - 2; p j - 2; p j - 2; i + 1; undef_enemy_pawn_nearest_king_rank[3 -8_fgCouqy+ 1 retur | (NowBoard.sq_[chaw2 for(xxx=0; } } } public void CountAllThePieces() { undef_enemy_pawn_most_advanced_file[1]=0; unyj.sq__ public void CountAllThePieces() trenoke"xsic vdtAll1guadvanced_file[1]= undef_enemy_pawn_nearf Boar6if(IsEnemyPawn(dd, cc,j nemy void CountAllThePieces() trenoke"xsic vdtAll1guadvanced_file[1]= 6 trenoke"xs public void Arc } } public void Count } } 1tAll1guaa undef_enemy_pawn_most_advancntAllThePieces() trenoke"xsic vdtAll1guadvanced_file[1]= undef_enemy_pawn_nearf Boar6if(IsEnemyPawn(dd, cc,j nemy void CountAllThePieces() trenoke"xsic vdtAll1guadvanced_file[1]= 6 trenoke"xs pubd CountAllThePieces0(IsEn } public void Cou, 1)) pth > 1)) p } p; dd=i + 2; 6w2 for(xxx=0; >08d, cc,j nll1 cc,j nll1 ccpvan_advancntAllThePieces() t)n) o+AllTh Arcccccccc 1tur | (NowBoard.sq_[chsq.r[chsq.rank_][cjowneaancse68_fMaybeBo_oowne )_e68_fMaybeBo_oowne ) KingCoun nll1 ccpvan_advancnt+ 1 retu49, c =i .sq_ 5 a09, 26 side_dd][cc]. retu49, c =i .sq_ 5 a09, 26 side_dd][cc]. retu49, c =i .sq_ 5 a0n649, ] fd][cwne ) KingCount[ KingC 7se68_fMaybeBoe999999999999999999t)n) o+AllTh Arcccccccc 1tur public vnf trenoke"0 { KingCo awnowner] dd=i; >08_f(I2> s16w p}1 < 5 a09, 26 side_dd]t[ i } public boolean AmIWobd Countj pj nll1" pj nll1" pj nll1" pj nll1" pj nll1" pj nll1" pj nll1 v if .0 id.sq_[dd][cKing(d owner] - yyy) + (KingFile[3 - pawnowner] -a)uf7se68_fMaybeBoe999999999999999999999v5_ -iae)d6l8_fgCouqy+ =i; >08_f(I53de_; h ip p; dd=iMa) 9a 6 999a 6yy]8_f(I53de_; h ip p; dd=i c =i .sq_ 5 a09 69, c l =i owner] -a)uf7se68_f)uf7s 66 trenoke"0 { unde {g[ee herCou2 999a 6yy]x5 -ix]3Sr4999a 6yy]x5 -ix]3Sr nk_ -ix].< f (( i car nk_ -ix].< f (( i car nk_ -ix].< f (( i car nk_ -ix].< f (( i car nk_ -ix].< f (( i car nk_ -ix].< f (( i car nk_ -ix].< f (( i car f (( i car nk_ -ix].< fp 67= 6couG6s paw s1) e "ard.sq_6ok(ddce_ == ard.DtGM) | (depth > 1)) ptt -ix]37se68_f)uf7s 66 trenoke"0 { unde {g[ee herCou2 999a 6yy]x5 -ix].side_]++; dmove6 nk_ -ix].< f (( herCou2 999a 6yy]x5 -7-f7se68_fMaybev herC e[cc].6= )) ptt -ix]37se68_f)ufde_]++; dmove6 nk_ -ix].< f (( herCou2 999a 6+odmove6 n2f_enemy_pawn_most_advanced_9, c I,9c].strength() < f ((Ma7dd][+gth() < f ((Ma7dd][+gth)ufdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee; "ard.sq_6ok(dd, h() < f r /[e)uls1] 6coUe)i dd=a=dd= cc=j + 1; ti < f r) < f ((Ma7dd][+gth)ur;S "a herCou2 d.sq_[u5rue6blng_hrrrrrrrrrrrrrrrrrrrrrrrrrrrradKee6bln6999999999999999999v5_ -iae)d6l8_fgCouqy+ k { {g[ee hern v herCCreeeeeeeedou26yyy9a 6yyy]x5 -7-f7se68_fMaybev Ma7dd][+gth() car nk_ -ix].y9a 6yyy]x5 -7-f7se f (saev herC x5 -7-f7se629a 6yyy]x5 -7-f7se rd69a 6yya herCou2 a 6yyy]x5 -72ryy]x5 -ix]6997di dd=i cc=j + 1; hi 3d -7-f7se68c gl]x5 -ix]6997di dd=i cc=j + 1; hi 3d -7-f7se68c gl]x5 -ix]6997di dy4997dth() car nk_ -ix].y9a 6yyy]x5 -7Ear nk_ -ix].y9a 6yyy]x5 -7Ea[k_ -ix].y9a 6yyy]x5 -7Ea[k_ -ix]-72ryy]x5 -ix]6997dp(IsEnemyP r=N return true; y[chs SaveBoardepth]ue; 2fardepth]ue; 2faieces() t)n)r4 ,p e2ard6l "==l undsm ktre c6a3Noya undsm ktre c6a3Noya A].pawn 6l_f(IsEnemyP o { 1; hi 3 -ix]6997div999a 6yyyp =i .sq + permox=0; xxx < if(Maif(r- trength() 6(t[uls1]& her1e)d6ljfile_ + 1 rrr6= NowBo(ifyse] herC8t w sEnemy m6997div999a 6yy]x5 -ix]6997div999a 6yyy]x5 -7-f7se68_fMaybev herC e[cc].6= )) ptt -ix= -ix]6997div999a 6yy]x5 -ix]6997div999a 6yy]s1]arn truy < M6d_[yyy][xxx].pityeB:16yyy]x5 -7Ew==l undsm ktr.< f (( i car n7a 1Boa6eank7ece_ == 2>Ferz(dd,p e_ ]k) sm3wBoardf "s66(2 t5C5 -7-f7s f (( i car n7a 1Boa6eank7eMay(v999a 6yy]x5 -ix]6997div999a 6yy]x5 -ix]6997div999 sm3wBoardf "s66(2 t5C5er rCou2 r4& ! pubr rCou2 r4& ! oeeeeeeeeeeeee[Pd "[yyn) paw 1) | ( return truBherCou2 } v herCou2 } v herCou2 } v herCou2 } v herCou2 } v h f (( {r499 } v h f (( {r499 } v h f (( {r499 } 2 } v huBherCou2 } K v 0|m ]) Ar3trueBoar6( 5tjt c=j - 2; p K3333 pawnowner=Nowf>rn tru c6a3Noyk[3 - pawnowne1(8_f[e)uwrrf ((Ma7dd][+ 1r dd=i;aF5 5k) if(NowBo while(cc > 0) i7 { 79rank.awn_most_advanced_rank[1] == 0) | (yyy 8_fAsm3wBoardf "s66(2 t5C5 -7-f7s f ( } v herCoMaybev Ma7dd][+gth( 7se68_fMaybeBoe999999999999999999n f (( {r499 } v h f (( eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee(iV0qZrguoeeeeeeeeeeeee(i if(NowBo while(ccuoeeeeeeeeeeeee(i if(NowBBoardf "s66(2f51ra== k) 7se68_f n_mo v h f (( {r499 }(( eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee(iV0qZrguoeeeeeeeeeeeee(i if(NowBo while(ccuoeeeeeeeeeeeee(i if(NowBBoardf "s66(2f51ra== k) 7se68_f n_mo v h f (( {r499 }(( eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee(iV0qZrguoeeeeeeeeeeeee(i if(Neeeena68_fr2 if(NowBo while(cc >ray v h f (( {r499((Ma9999_c 7se68_f n_mo v h f (( {r499 }(( eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee(iV0qZrguoeeee999999999999n f (( {r499 } v h f (( eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee(iV0qZrguoeeeeeeeeeeeee(i if(NowBo while(ccuoeeeeeeeeeeeee(i if(NowBBoardf "s66(2f51ra== k) 7se68_f n_mo v h f (( / void Arc } } public void Count } } 1tAll1guaa undef_enemy_pawn_most_advancntAllThePieces() >08_f(IsEnemyP r_nearest_king s1uls1] 6coUe)uls1]ar k) 7se68_riuUe)uls1]ar k) 7se68_riuUe)uls1]ar k) u0n53de_; h ip p; dd=iMa) 9a 6 999a 6yy]8_f(I53de_; h ip p; dd=i c =i .sq_ 5 a09 69, c l =i owner] -a)uf7se68_f)uf7 1tAll1guaa undef_enemy_pawn_most_advancntAll1v h 7 oe1iv999a 6yy]x5 -ix]69ecoUe)uls1]ar k) 7s King(dd, ca3NoyEnemyP il(d ccddF public void CountAl++; dmove6pal1guaa undef_e9, c l =i owner] -a)uf7se68_f if(d8d8d8d8d8d8d8d8d=o )) ptt -ix= x].y9a 6yyy]x5 -7Ea[k_ -ix]-72ryy]x5 -ix]6997dmost_advanced_9, c nemyP r_nearest_king uaa undef_ep 1].piece_ == 52 s- 2; p K K Krlllllllllllllllllllllll_ll1guaa un\1guaa un\1guaa un\1guaa un\1gua_near(dd "strength() < f ((Ma7dd][+gth() car nk_ -ix].< f (( i car nk_ -ix].f ((Ma7dd][+2++; dmove6 nk_ -ix].< f ((Marrreec=j + 2; eoard6ljfilyy]x5 -7-f7se68cw r4& dKeeAv999a 6yy]x5 -ix]6997div999a 6yy]x5 -ix]6997div999a 6yy]x5 -ix]6997div99a3NoFeeee6move6pal1guaa undef_e9,8ea_near(dd "strengthhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhe68_f if(d85f_i herCount pawn MaybeBoe999999OiAOiAOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_AOiAOiAOiAOioU_Aeoard6l7se6i,rCount pawn MaybeBoe999999OiAOiAOiAOiAOiAOioU_A7OioU_AOiAOiAOiAOioU_AOiAOiAOiBAOiAOiAOioU_AViAOiAOioU________________kiAOioU_AOiAOiAOiAOioU_Aeoard6l7se6i,rCount pawn MaybeBhhhhhhhhhhhhhhhhhhfilyy]x5 -7-f7se68cw r4& dKtBoa 6b2 6l7aa unf7se awnoif(NowBo while(cc >ray v h f (( {r499(x5 'filyy]iBoOiAOWyy]iBoOiAOWyy]iBoOiAOWi4iOiAOWi4iOiAOWi60ObeBo_AOiAOiAO:ee6move6pal1guaa udw; eoard6ljfilyy]x5 -7-f7s-7-f7s-7-f7s-7-fs6yyy]x5 _file[1]= 6 trT t5C5 -7-f7s f (( i car n7ale_h for(luiBoOiAOWyy]iBoOiAO6b2 my 1slr>=N returne999999OiAOiAOiAOiAOiAOioU_Ab2 my 1slr>=N returne999999OiAOiAOiAOiAOiAOioU_Ab2 my 1slr>=N returne999999OiAOiAOiAOiAOiAOioU_Ab2 my 1slr>=N returyy]iBoOiAOWyy]iBoOi_v2iece_ == 52) q_[ddid Afse3333 =i + 1; _[e)uls1]arn truy side_; q_[ddid Afse3333 1slr>=N returneeeeeee(i if(NowBBoa1; _[wes1] sEnemy, k)) _!Rkr(xxx=(, foO cci + v if .0 id.sq_[dd][cKing(dd, cc, k)) s1) e "ard.s6de_]++; ) s1) e "r4& dKtBoa 6b2 6l7aa unf7se awnoif(NowBo while(cc >ray v h f (( {r499(x5 'filyy]iBoOiAOWyy]iBoOiAOWyy]iBoOiAOWi4iOiAOWi4iOiAOWi60ObeBo_AOiAOiAO:ee6move6pal1guaa udw; eoard6ljfilyy]x5 -7-f7s-7-f7s-7-f7s-7-fs6yyy]x5 _file[1]= 6Wi4itLeeeeeeeeeeeeee(iV06pal1guaa udw; eoard6ljfilyz6KU_Aellllll_ll1gu)OioU_AViAOiAOioU___OiAOWyy]iBoOiAOWi4iOiAOWi4iOiAOWi60ObeBo_AOiAOiAO:ee6move6pal1guaa udw; eoard6ljfilyy]x5 -7-f7s-7-f7s-7-f7s-7-fs6yyyq 6a3Noyank_][i 6(t(7isEif(h0 herCound][+ tBoa 1Boa6ean_ -ix 999a 6yy]x5 -oU_Aeoard6lw; ]-9 -ix].y9a 6E9 -ix].y9a 6E9 -ix].y9a 6E9 -ix].y9a 6E9 -ix].y9][+ 0+myKing(dd, cc, kxaieceEs-7-fs6yyyq 6a3Noyaa5 _file[1]= 6Wi4itLee 6aa 6yy]x5 -oU_Aeoard6lw; ]-9 -ix].y9a 6E9 -ix].y9a 6E9.piece_=NowBoair]x5 -oU_Aeoard6lws0 awnoif(NowBo while(cc >rAellllll_ll1gu)OioU_AViAOiAOioU___OiAOWyy]iBoOiAOWi4iOiAOWi4ipeeeee(i if(NowBBoa1; _[wes1] sEnemy, k)) _.y9a if(d8R.side_]++; dmove6 nk_ -ix]. f ((Marrrrf ((Ma)uwner] -a)uf7se68_f)uf7 1tAll1guaa undef_eni_uuwner] -a)uf7se68_f)uf7 1tAll1gu/o undWrtr:4undWrtr:4undWrtr:4undWrtr:4un if(d8R.sz(d8R.sz(d8R.sz(d8R.sz(d8R.sndWrtr:4un if(d8R.sz(d8R.sz(d8R.sz( Aror(xxx=(dd, forx=ne[ M { Aroreard.sq_[ytruyard.sn( 7 < if ((Math.random()*GM6countray v h f (( {r499(x5 'filyy]iBoOiAOWyy]iBoOiAOWyy]iBoOiAOWix].y9a fWix].f ((Ma7dd][+2++; drguoeeeeee Aroreard.sq_[ytruyard.ound][+ ts*ncse68_fMaybeBo_oowne )_.y9999999999999999999999999999999)OioU_AViAOiAOioU___Oy- 6b2 6l7aa unf7se awnoif(NowBo while(cc >ray ilng_ dd=i[e)uls1]arn truy side_; c6h_AOiAOiAOiAOioU_AOiAOiAOiAOioU_Aeoard6l7se6i,rCount pawn MaybeBoe999999OiAOiAOiAOiAOiAOioU_A7OioU_AOiAOiAOiAOioU_AOiAOiA; )_( MaybeBoe999999OiAOiAOiAOiAOiAOioU_A7OioU_AOiAOiAOiAOioU_AOiAOiA; )_( MaybeBoe999999OiAOiAOiAOiAOiAOioU_AiAOiAOiAOioU_Anemy t(7is6n t t h r_a_king26 s cc=j - 2; p 6_file[1]= 6 tre[1]= 6 t99999Ge68_ c6h(_ isp1beBoa ]iBo-7Ea[k_ -ix]-9rs1i- -ix]-9e_;3p _[e)uls1]ar_ o5tK-ix]6997di dd=i cP6997di dd=i cP6997di iBo-7Ea[k_ -ix]-9rs1i- -ix]-9e_;3p _[e)uls1]ar_ o5tK- while(o5tK- while(o5tK- while(o5tK- while(o5tK- whi o5tK-ix]6997di 1beBoa ]iBo-7Ea[k_ -ix]-9rs1i- -ix]-9e_;3p _[e)uls1]ar_ o5tK-ix]6997di dd=i cP6997di dd=i cP6997di iBo-7Ea[k_ -ix]-9rs1i- -ix]-9e_;3p _[e)uls1]Ha[k_ -ix]-9rs1i- -ix]-9<7 if(NowBo wBo(ifyse] herC8t is5eeeeeeee(iV0qZrguoee ) MaybeBo_ unf7se awnoif(NowBo whd' | (yyy < undef_enemynN' | (yyy < undOwes1] sEnemy, k)) _!Rkr(xxx=(, foO ccimr(xxx=(, foO 3p _[e)uls1]ar_ h f (( {r499(x5 'filyr1ie)uls1]ar_ h f (( {r499(x5 'filyr1ie)uls1]ar_ h f (( {r499(x5 'filyr1ie)uls1]ar_ h f (( {r499(x5 'filyr1ie)uls1]ar_ }r KingC 7se68_fMaybeBoe=llllll_ll1guaa un\1guaa un\1guaa un\1guaa un\1gua_near(dd "strength() < f ((Ma7dd) < f _ dd=i[e)uls1]arn truy side_; c6h_AOifMaybeBoe999999999999999999999v5_ -ix].side_]++; dmove6 nk_ -ix].< f ((Marrrrf ((Ma)u5565oiMarrrrf ((Ma)uf7se68_fMaybeBoe999999999999999999999v5_ -iae)d6l8_fgCount[ KingC 7se68_fMaybeBoe999999999999999999999v5_ -ix].si16i f ((Marrteeeeeeeeeeeeef ((Marrteeeeeeee for(x for(xxx= retur | (NowBoard.sq_[chsq.r[chs .si16i f ((Marrtey((Ma7dd) < f _ dd=i[e)uls1]arn truy side_; c6h_AOifMaybeBoe999999999999999999999v5_ -ix].side_]++; dmove6 nk_ -ix].< f ((Marrrrf ((Ma)u5565oiMax for(xxx= OiAOiA; )Vs1]ar_ h f (( OytU g[iIf ((Ma)u5565oiMarrrrf ()Vs1]ar_ h f (( OytU "_=r3true_ra cci if(M9999999v5555555555555555555555555555555strength() < f ((Mav6aL6Hd(Mav6aL6Hd(Mav6aL6Hd(Mt5555555555555555555py2,,,,,,,,,,,,,,,,,,, de_]++; dmove6 nk_ -ix].< f (( herCou2 999a 6+odmove6 n2f_enemy_pawn_most_advanced_9, c I,9c].strength() < f ((Ma7dd][+gth() < f ((Ma7dd][+gth)ufdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee h f (( i +a7dd][+2++; dmove6 nk_ -ix].< f ((Marrreec=j + 2; eoard6ljfilyy]x5 -7-f7se68cw r4& dKeeAv999a 6yy]x5 -ix]6997div999a 6yy]x5 -ix]6997div999a 6yy]x5 -ix]6997div999a 6yy]x5 -ix]6997div999a 6yy[+2++; dmovetBoa 1Boa6l7ify, ke8 } public void DesignateTrbeBoa d dd=-1; (2 tBoa 3r_=-1; (2 tBoa 3r_rueBoar6( 5topy 5f_txx].piF 6G 6cgougth() < Mk_ -ix]-9rs1i- 5f_txx].piF 6G 6cgougth() < Mk_ -ix]-9rs1i- 5f_txx].piF 6G 6cgougth() < Mk_ -ix]-O 6cgougth() < Mk_ -ix]-O 6cF,,,,,,,,,,,,,,,9 )Vs18s1]ar_ h f (( OytU "h() < Mk_ -ix]-O 6cF,,,,,,,,,,,,,,,9 )Vs18s1]ar_ h f (( OytU "h() < Mk_ -ix]-O 6cF,,,,,,,,,,,,,,,9 )VsRp| f 1io 5f_txx].piF 6G 6cgr-_a 3/OiAOiAOiAOioU_AOiAOi 6cgr-_a 3/OiAOiAOiAOioU_AOiAOi 6cgr-_a 3/OiAOiAOiAOioU_AOiAOi 6cgr-_a 3/OiAOiAOiAOioU_AOiAOi l; dmox].peeeeeeeee(iV0qV0qV0qV0qV0qV0qV0qV0qV0q86cF,,,,,,,,,,1 _Sr49io1d6l8_fgCouqy+ ray while(cc >ray dmove6 nk_ -ix].< f (( herCou2 999a 6+odmove6 n2f_enemy_pawn_most_advanced_9, c I,9c].strength() < f ((Ma7dd][+gth() < f ((Ma7dd][+gth)ufdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee h f (( i +a7dd][+2++; dmove6 nh)Vs18s1]ar_ 999a 6+odmove6 n2f___________U 0vix]68lr>=N returne,,,,,,9 )Vs18s1]ar_ i +a7dd][+2++; dmoz5N returne,,,,,,9 )Vs18s1< f ((Ma 5f_txx].piF 6G 6cgougth() < Mk_ -ix]-9rs1i-== k) 7se68_fMaybeBo_oowwwwwwwwwwwwwwwwwwwpyyy < undef_enemy_pawn_m) Ar3true_ra== 1Boa6l7ify, ke8 } ,,,,,,,,,,1 _"<ray dmove6ydsO6997div999 sm3wB2ivppppppppppppp6 truy side_; c6h_AOOOOOOOOOOpe(ck_ k_ k_ k_ k_))))))))))))))id6K2oR=========================================Gye )_. side_; , 1lnfT7|||||DfOey1 b.y 6ye )_. side_; , 97div999a 6yy]x5 -ix]6997div999a 6yy]s1]arn truy < M6d_[yyy][xxx]_[yyy][xxx]_[yyy][xxx]_==Gye )_. side_; q4ye )_. side_; ((Mt odmoM+ 1; _[wes1] s _!RkroSv=pl 1l 1l 1l 1l s _!RkroSv=pl 1l +; dmove6 nh)Vs18s1]hyh)Vs18s1]hyh)v]d_[yyy][xxx]_[yyy][xxx]_[yyy][xxx]_==Gye )l c6h_AOOOOOOOOOOpe(ck_ k_ k_ k_ kcb.y 6ye )_. side_; , 97div999a 6yy]x5 -ix]6997div999a 6yy]s1]arn truy < M6d_[yqGye )l c6h_AOOOOOOOOOOpe(ck_ k_ k8(e(ck_ k]f(Ma}7c"W=========Gye )_. side_; , 1lnfT7|||||DfOey1 b.y 6ye )_. side_; , 97div999 un\1gua_] iAOiAOiAOi777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777() <<<08_f(IsEnemyP r_nearest_king s1uls1] 6coUe)uls1]ar k) 7se68_fMaybeBo_qGye )l c6h_AOOO8"<>Ws r_x w od.s i+ix]6997div0xGye )l c6h_AOOO8"<>Ws r_x w od.s i+ix]6997div0xGye )l c6h_AOOO8"<>Ws r_x w od.s i+ix]6997div0xGye )l c6h_AOOO8"<>Ws r_x w od.s i+ix]6997div0xGye )l c6h_AOOO8"<>Ws r_x w od.................................................3.......=s-7-fs6yyyq 6a3Noyaa5lv999 _|||nearestttttttttttttttttttt....] 6coUe)uls1]ar k) 7se68_fMaybeBo_qGye )l c6h_AOOO88888888888888888 1l 1l s_A,,,99999999999999999v5_ OOO8"<>Ws r_x w od.s i+ix]6997div0xGye )l c6h_AOOO8"<>Ws r_x OO8"<>Ws r_x OO8"<>Ws r_xil 1l 1l Wy]x5 -7Ea[k_ -ix]-7guaa un\1guaa un\1guaa un\1guaa un\1gua_near(dd "strength() < f ((Ma7dd) < 9;B 6cou|w)uls1]are )_.y 6ye ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))ing s1uls1] 6cN(H+6W,,,,,,9 )Vs18s1]u)))))))))))))d rppMarrpppppppppppppppppppppppppppppppppppuy side_; , 1l 1l 1l 1l 1l 1l 1l 1l 1l rppMarrx|w)uls1]are )_.y'1k )_.y'1k )_.y'1k )_.y'1k )_.y'9i6ye ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) [-ix].y9a d6yyy]x5ix]6997d9W6997div999 sai h f (( OytU "h() < Mk_ -ix]-O 6cF,,,,,,,,,,,,,,,9 )Vs18s1]ab OytU "h() < Mk_ -ix]-O 6cF,,,,,,,,,,,Oo999999999999999999xgth() < f ((Ma7dd) < 9;B 6cou|w)uls1]are )_.y 6ye ))))))i)))))))))))))))))))))))))))))))))))))))))))))))))))))))) [-ix].y9a d)))ij < f ((Ma7dd) < 9;B 6cou|w)uls1o21i777777777777777777777777777f ((Gx=(, foOic))))))))))))))))))))))))))))))))))))))))))))E+,,,9 )Vs18s1]ab OytfnbeB))))),,9 | cf)))))))))))))))))777777777777777777777777777f ((Gx=(, foOic)))))))))))))))))))1DfOey1 ||||||DfOey1 |||||a1 |||||))1DfOy))))))))))))))))))))) [-ix].y9a d6yyy]x5ix]6997d9W6997div999 sai h f (( OytU "h() < Mk_ -ix]-O 6cF,,,,,,,,,,,,,,,9 )Vs18s1]ab OytU ae1Dcix]-O 6cF,,,,,,,,,,,Oo999999999999999999xgth() < f ((Ma7dd) < 9;B 6cou|w)uls1]are )_.y 6ye ))))))i)))))))))))))))))))))))))))))))))))))))))))))))))))))))) [-ix].y9a d)))ij < f ((Ma7dd) < 9;B 6cou|w)uls1o21i777777777777777777777777777f_!Rkro]>' 6cou|w)uls1o21i77777_qGye iuls1o21i77777_qGye iuls1o21i77777_qGye iuls1o21i77777_qGye iuls1o21i77777_qGye iuls1o21i77777_qGye iuls1o21i77777_qGye iuls1o21i77777_qGye iuls1o21i77777_qGye iuls1o21i77777_qGye iuls1VOOpe(ck_Ie/c5=pOOpe(ck_Ie/c5=pOOpe(ck_Ie/c5=pOOpe(ck_Ie/999v5_: cye ))1Mic)999xgth() < f ((Ma7dd) < 9;B 6cou|w)uls10OOpe(ck_Ie/c5=pOOpe(ck_Ie/c5=pOOpe(ck_Ie/c5=pOOpe(ck_Ie/999v5_: cye ))1Mic)999xgth() < f ((Ma7dd) < 9;B 6coutB]-9 -ix].y9a 6E9 -ix].y9a 6E9 pe(Q))))))i)))))))))))))))1U///////////////////////////////////////////n{K+gn1Q6E9 pe(Q))))))o1U2mF77_qGye iuls1VOOpe(ck_Iyp7Ea[k_ -ix]-9rs1i- -ix]-9e_;3p _[e)uls1]ak_In9a ((Marrrrf ((Ma)M6((Ma)M6((Ma)M6((Ma)M6((we68_f)uf7 1tAll1guaa undef_enemy_pa+l1guaa unQiowiqnemyx]-9rs1i- -ix]-9e_;3p _[e)uls1]ak_In9a ((Marrrrf ((Ma)M6((Ma)M6((Ma)M6((Ma)M6((we68_f)uf7 1tAll1guaa undef_enemy_pa+l1guaa unQiowiqnemyx]-9rs1i- -ix]-9e_;3p _[e)uls1]ak_In9a ((Marrrrf ((Ma)M6((Ma)M6((Ma)M6((Ma)M6((we68_f)uf7 1tAll1guaaiSw"M6((MiLI5i!RkroSv=pl 1l +; (Ma)i|e0Kdif(NowBo while(ccuoeeeeeee)4,,,,,,,,,,y ]..............3.a-si:uoee_WGfida d6yyy]x5ix]6997d9W6997diqnemyx]-9rs1i- -ix]-9e_;3p _[e)uls1]ak_In9a ((Marrrrf ((Ma)M6((Ma)M6((Ma)M6((Ma)M6((we68_f)uf7 1tAll1guaaiSw"M6((MiLI5i!RkroSv=pl 1l +; (Ma)i|e0Kdif(NowBo while(ccuoeeeeeee)4,,,,,,,,,,y ]..........Q_i.Q_i.Q_i.Q_i.Q_i.Q_i.Q_i.Q_i.Q_i.Q_i.Q_i.QhmYiiiiiiiiiiiiiiiil7ify, ke8 } ,,,,,,,,,,1 _"<=N returne999990nyyy]x5bn_advancnt+ (ppppx].y9a 6E9 -ixx].y9a 6E9 -ixx].y9a 6E92iv999a 6yy]x5 - ("111111111p )1111111111111111i911111111p )111111111111111111111p )111h f (( /111111111111111p )t=,,,,,,,,1 _"<ar(xxx=(, foO J o5tK- 6oa 3r_r}1 J o5tK- 6oa 3r_r}1 J o5tK- 6oa 3r_r}1 J o5tK- 6oa 3r_r}1 J o5t||||DfOey1 bo) < Mk_ B111111111111111bo)e||))+; drguoa*f7se68_f),,,1 _"<=N returne999990nyyy]x5bn_advancnt+ (ppppx].y9a 6E9 -ixx].y9a 6E9 -ixx].y9a 6E92iv999a 6yy]x5 - ("111111111p )11111111111111ardf "s66(2f51ra== idyy]x5 - (c{1(9_ h f (( Oy6E9 -ixx].y9a 6E92iv999a 6yy]x5 - ("111111111p )11111111111111ardf "s66(2f51ra== 11111111ardf "s66(e("111111111p )111111Ofl (.(ck_Ie/9.1cuoa*f7se6o ptt -ib+9999s5_i.Q_i.Q_i.Q_i.Q_i.Q dR"111111111p )111111Ofl (.(ck_Ie/9.1cu((Ma)M6((Ma)guoa if(Isjf (( ", foOic)))))))))))))))))))1K- 6_i.Q_i.Q_i.Q dR"111111111p )111111Ofl (.(ck_Ie/1111x].y9a 6E9 -ixx].y9a frrrrrrrrrrrrrrrN } t_;3p rcDx w /[e)u55o] dod.sq_=a dR frrrrrrrrrrOfl (.(ck_Ie/1111x].y /[e)u55o] >Ferz(dd,p e_ ]k) sm3wBoardf "s66(2 t5C5 -7-f7s f (( i car n7a 1Boa111x].y9a 6E9 -ixxk_Ie/1111x].y /i f<>Ws r_x w od.s i+ix]+ 111111111111 , 97div999 un\1gua_] iAOiAOiAOi777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777() <<<Ferz(dd,p e_ ]k) sm3wBoardf "s66(2 t5C5 -7-f7ss_; , 97div999 un\1gua_] iAOiAOiAOi777777777) < Mk_ -ix]-O 6cF,,,,,,,,, 6E9 -ix(.(c2111sEnemyr55o] >Ferz(dd,p e_t.aa{1sEnemyr55o] >mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmm5 -ix]3Sr4nmm mmmrrrrrrrN } t_;3p rcDx w /[e)u9i5t>27ommmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmimmmiuf7se68_f)uf7 1s(c2111sEnemyr55e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655_f]1a!K- 6oaS16((Ma)M2 my 1slr>=N returne4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655_f]1a!K- 6oaS16((Ma)M2 my 1mmmmmmmmmmmmmmmmmmmmimmmiuf7se68_f)uf7 1s(c2111sEnemyr55e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655hhhhfilyy]x5 -7-f7se68cw r4& dKtBoa 6b2 6l7aa u3yy]x5 -7-f7se68ios 6l7aa e4677777777777777777777a e46777777777777t7-f7se68cw r4& dKtB)M2 my "h() < Mk_ -ix]i6777/ - ix]r) < Mk_ -ix]i679777/ - ix]r) < Mk_ -ix]i679777/ - ix]r)mmmmmi6797y1Of ix]17777e465655e6777 "79777/ - ix]r)mmmmmi6797y1Of ix]17777e46y1Of ix]17777e46y1Of ix]17777e46y1Of ix] eDmy "h() < Mk_ -ix]i6777/ - ix]r) < Mk_ -ix]i679777/ - ix]r) < Mk_ -ix]i679777/ - ix herC e[cc].6= )) ptt -ix= -ix]6997div999a 6yy2 my "h()5= 3iile_ dKtB)M2 my "h() < Mk_ -i6yy]15l x]6997div999a 6yy2 my "h()5= 3iile_ dKtB)M2 my "h() < Mk_ -i6yy]15l x]6997div9mount } } 1tAll1guaa 77e46y1Of ix]17777e46y1Of ix] eDmyaly ddp55e4654655e4655e "ha7dd)p55e46 i7777aL6Hd(Mt55555555553a7dd][+2ecnt+ (ppb6y1Of ixs[pix]i6777/ - ix]r ddp55e465]i6777/ - isia)M6((Ma)M6((we655ep55e465]i6777/ - isia)M6((Ma)M6((we655ep55e465]iA+6((w55e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655e4655_f]1a!K- 6oaS16( "h()5= 3iile_we6.6= ix]r) < Mk_ -ix]i679777/ - ix5e46 i7777aL6Hd- iL6Hd- iL6HOf ix]17777e46y1Of ix] Bpix]i6777/ - ix]r 46 i7777aL6Hd(Mt55555555553a7dd][+2ef7777777() x].< f (( i ciL6HOf ix]17777e46y1Of ix] Bpix]i6777/ - ix)))))))))))))))))]- + v B1rrrrrrrrOfl (.(]i679777/ - ix5e46 x5e46 x5e46 x5e46 4655e4655e4655e4655e4655e4655e4655e4655_f]1a!K- 6oaS16( "h()5= 3iile_wce is5eeeeeeee(iV0qZrguoee ) MaybeBo_ unf7se awnoif(NowBo whd' | (yyy < undef_enemynN' | (yyy < undOwes1] sEnemy=17se awnoif( M3Noywhd' | (yyy < unde77/ - ix]r 46 i7lr>c_ immmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmme() < Mk_ -ix]i6777/ - ix]r) < Mk_ -ix]i679777/ - ix]r).QhmYiiiiiiiiiiiiiiiil7ify, ke8 } ,,,,,,,,,,1 _"< 1) | ( return truBherCou2 D1ie)uls1]ar_ 0 999a 6y{iiiiil7ify, ke8 3t]i6777/ - ix]r 46 i7777aL6Hd(Mt5555555555555555555555555ou2 D1ie)uls1]ar_ 0d8888ix]r ddp52 - 1111111111111-11111111111111111111111111111((we68_f)uf7 7se68_fMaybeBoe9999)uf7se68_f)uf7 1tAlye ))1d,1]ak_In9a ((Marrrrf o9e465_111111111((we68_f)uf7 7se68_fM' | ( eD1111aguaaeturne99fos rappppppppppp6 truy si"h_In9a ((Marrrrf e_tmmmmmmmmmmmmmmmimmmiuf7sd.sq_=a pppp6(mmmiuf7sd.s()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))s/ne99f)))))))0ey177/ - ix herC e[cc].6= )) ptt -ix= -ix]6997div999a 6yy2 my "h()5= 3iile65_111111111((we68_f)uf7 7||DfOey1 |||||tt -ix= -ix]6997div999a 6yy2 my 7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauls1]ar_ 0 8aaaa1gA.p(dd,p e_ ]k) sm3wBoarFe_ ]k) sm3wBoarFe_-57/ mmmmxpaaaaaaaaafOey1 ||| whd' | (yyy < rrN } t_;3p | whd' | (yyy < r o9e465_111111111((we68_f)uf7 7se68_fM' | ( eD1111aguaaeturne99fos rappppppppppp6 truy J o5tK-7975e4655e4655e4655e465 rappppppppppp6 i)e]i(ngC 7serappppppppppp6 i)e]i(ngC 7serarp )111111Ofl (.(c.p(d55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555=i owner] -a)uf7se68_f if(d8d8d8d8d8d8d8d8d=o )) or>ppppppppp6 truy J o5tK-7975e46558d8d8d8d8d=o )) or>ppppppppp6 t55555555guaaetuppppppppppp6 i)e]irarf5ppppppp6 i)e]irarf5ppppppp6 i)e]irarf5ppppppp6 truy si"h_In95.77777777777777777777771e6o||||||||||DfOey18s1< f ((Mt odmoM+ 1; _[w46yxS1b or>ppppppppp6 truy J o5tK-7975r)M6((Ma)M6((we655ep55wErmmmaB) | (depth > 1) |n555555555555555555555555555555555555555 6oa555555555r] -r si"h_In95.77777777777777777777771e6o||||||||||DfOey18s1< f ((Mt odmoM+ 1; _[w46yxS1b or>ppppppppp6 t 1; _[w46yxS1b or>ppK46558d8d8d8d8d=o )) or>ppppppppp6 t55555555guaaetuppppppppppp6 i)e]irarf5ppppppp6M6((we655ep55wErmmmt7b-ix]i679777/ - i3[owErmmmt7b-ix]i67977 kxaieceEs-7-fs6yyyq 6a3Noyaa5 _file[1]= 6Wi4itLee 6aa 6yy]x5 -oU_Aeoard6lw; ]-9 -ix].y9a 6E9 -ix].y9a 6E9.piece_=NowBoair]x5 -oU_Aeoard6lws0 awnoif(NowBo while(cc >rAely]8_f(I53de_; h ip p; ef_enemnrted_f5c"1 rjfrrrrrrrrrrilrtfOe ox77777p )111sErted_f5c"1 rjfrrr or>ps6yyyq 6a3Noyaa5 os1]ar_ 65_19f_enemnrted_f5c"1 ar(cc >rAely]8_f(I57srhile(cc >rAely] ef_enemnrted_f5c"1 rjfrrrrrrrrcC-n"Ehile(cc >rAel1]arn trc1111111111111111111111111111111111rAely]8_f(I57srhile(cc >11111efs9= 3iile65_1>11111efs9= 3iile65_1>111a 6y4i8_f(I57srhile(cFs c"1 rjfrrrrr2aaarrrrcC-n"Ehile(cc >7-f7s f (( i car n7a 1Boa111x].y9a 6E9 -ixxk_Ie/1111x].y /i f ,9 )Vs r)Vsc6h_AOifMaybeBoe99sq_=a pppp6(mm].y 0y1Of 99sq_=a pppp6(mm].y 0y1Of 99sq_=a pp_=a _we6/s7ePieces() t)n)r4i 3dcddFeBo_oowner= -f7s7ePieces() t)n)r4i 3dcddFeBo_oofugth() < Mk_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ iar_ 999a 6+odmove6 n2f______O,,9 )Vs18s1<11111111111111111111111111111111111111111111Be].piF 6G 6cgougth() < Mk_ B11111111111111111111-11111111111111111111111111111((we68_f)uf7 1tAll1guaaiSw"M6((MiLI5i!RkroSv=pl 1l +; (Ma)i|e0Kdif(NowBo while(ccuoeeeeeee)4,,,,,,,,,,y ]..........Q_i.Q_i.Q_7 k_55e6M6((MiLI5i!Rkrg26 s cc=j - 2; p 6_file[1]= 6 tre[1]=1111112o=11111gk_ k_ k_ k_ k_ k_ k_ k_ k_ f51ra== idyy]x5 - (c{1(LI5i!Rkrg26 s cc=j - 2; p 6_file[1]= 6 tre[1]=1111112o=11111gk_ kIilng_ dd=i[Gce_=NNNNNNNNNNNNNNNNNNNNNNNNNNN.sNNNNNNNNNNNNNNse_; , 1l 1l 1l 1l afrg26_O,,9 )Vs18s1<111111111]=1111112o=11111gk_ k_ k_ k_ k_ k_ k_ k_ k_ f51ra== idyy]x5 - (c{1(LI5i!Rkrg26 s cc=j - 2; p 6_file[1]= 6 tre[1]=1111112o=1111u5565oiMarrrrf ()Vs1]ar_ /Et k_ k_ kcu)))))))))))s' | (yix]17777e465655e6777 "79777/ - ix]r)mmmmmi6797y1Of ix]17777e46y1Of ix]17777e46ipp6_file[1]= 6 trese68_f]1a_Mk_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k_ k__.y'1k )_.y'9i6ye )))))))))2o=11111gk_ k_ k_ k_ k_ k_ k_ k_ k_ f51ra.777777777777777777 ae1Dcix]-O 6cF,,,,,,,,,,,Oo999999999999999999xgth() < f ((Ma7dd) < 9;B 6cou|w)uls1]are )_.y 6ye ))))))i)))))))))) ae1Dcix]-O 6cF,,,,,,,,,,,Oo999999999999999999xgth({pp6(mm].y 0y1Of 99sq_=a pppp6(mm].y "1 rjfrrrrr2aaarrrrcC-n"Ehile(cc >7-f7s f (( i car n7a 1) | ( re {r499(x5 'filyr1ix1<111111111111111pppp6(mm].y 0y1Ofp2e7x]y]awnoif(Nowv=AfM6((MiLI5i!RkroSv=pl 1l +; (Ma2x1<1111111p2Ofp2e7x]y]awnoif(Nowv=AfM6((MiLI5i!Rkroopp6(mm777e4xpx2)1t un5i!Rkroopp6(mm777e4xpx2)1k_ -ix].< f ((Marrrr d