// 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: ReadyChs.java import java.awt.*; public class ReadyChs extends EasyChss { public ReadyChs() { } 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); MayReady=false; markingAPiece=true; whoseMove=who_backed; SayWhoIsHuman(g); whatpiecescanmove(g); opening_library_move=499; GenerateAttackersArrays(); CountAllThePieces(); DrawNowBoard(g); ShowStatusNothing(); return true; } if (k==saveKey) { TotalSaveBoard();TotalMaybeBoard(NowBoard, MaybeBoard); who_saved=whoseMove; } if (k==loadKey) { PromotingAPawn=false; GameOver=false; LoadSavedBoard();TotalMaybeBoard(NowBoard, MaybeBoard); MayReady=false; markingAPiece=true; whoseMove=who_backed; SayWhoIsHuman(g); whatpiecescanmove(g); opening_library_move=499; GenerateAttackersArrays(); CountAllThePieces(); DrawNowBoard(g); ShowStatusNothing(); return true; } System.out.println("kurwa"); return false; } public void SomethingElseForTotalBackBoard() { back_ready[yyy][xxx]=ready[yyy][xxx]; back_MayReady=MayReady; } public void SomethingElseForTotalSaveBoard() { save_ready[yyy][xxx]=ready[yyy][xxx]; save_MayReady=MayReady; } public void SomethingElseForUnBackBoard() { ready[yyy][xxx]=back_ready[yyy][xxx]; MayReady=back_MayReady; } public void SomethingElseForLoadSavedBoard() { ready[yyy][xxx]=save_ready[yyy][xxx]; MayReady=save_MayReady; } public void AddACLCAttacker() { //System.out.println("AddACLCAttacker"); if((xatt==catt) & (yatt==datt)) return; if (ready[yatt][xatt]==false){return;} if((catt > 8) | (datt > 8) | (catt < 1) | (datt < 1)) return; if(satt > 2) { return; } else { CLCAttackers[datt][catt][satt]++; return; } } public boolean MachineMoves(Graphics g, int i) { //System.out.println("MachineMoves"); if(GameOver) return true; //System.out.print("1"); NegateGMCounts();goodmove1=0; goodmove2=0; goodmove3=0; goodmove4=0; goodmove5=0; goodmove6=0; goodmove7=0; goodmove8=0; goodmove9=0; goodmove10=0; moveCounter=0; depth=1; //System.out.print("2"); for(xx=1; xx < 9; xx++) for(yy=1; yy < 9; yy++) if(NowBoard.sq_[yy][xx].side_==i) findPieceMoves(g, NowBoard.sq_[yy][xx], NowBoard, MaybeBoard); //System.out.print("["+goodmove4+"]["+MaybeMoves[goodmove4].startingsquare_.file_+""+MaybeMoves[goodmove4].startingsquare_.rank_+""+MaybeMoves[goodmove4].endingsquare_.file_+""+MaybeMoves[goodmove4].endingsquare_.rank_+"]"); //System.out.print("3"); depth=0; ShowStatusNothing(); if(moveCounter==0) { System.out.println("No Moves");WhoIsHuman[1]=true;WhoIsHuman[2]=true;ShowStatusQ("No Moves"); return false; } if ( (goodmove1==0)& (goodmove2==0)& (goodmove3==0)& (goodmove4==0)& (goodmove5==0)& (goodmove6==0)& (goodmove7==0)& (goodmove8==0)& (goodmove9==0)& (goodmove10==0)) { if (AnyReadiable(whoseMove)==true) { System.out.print("Any Readiable???"); a=1;while (a<10){ b=1;while (b<9){ if ((NowBoard.sq_[b][a].piece_==whoseMove)&(ready[b][a]==false)) { ready[b][a]=true; if ((IsMySideInCheck(3-whoseMove)==true)|( (int)Math.floor(Math.random() * 10)==0)) {DrawNowBoard(g);System.out.println("a="+a+" b="+b);return true;} ready[b][a]=false; } b++;}a++;/*if (a==9){a=1;}*/} } } //System.out.print("4"); x=1 + (int)Math.floor(Math.random() * (double)moveCounter); if(Attackers[MaybeMoves[x].endingsquare_.rank_][MaybeMoves[x].endingsquare_.file_][3 - i] > Attackers[MaybeMoves[x].endingsquare_.rank_][MaybeMoves[x].endingsquare_.file_][i]) x=1 + (int)Math.floor(Math.random() * (double)moveCounter); if(Attackers[MaybeMoves[x].endingsquare_.rank_][MaybeMoves[x].endingsquare_.file_][3 - i] > Attackers[MaybeMoves[x].endingsquare_.rank_][MaybeMoves[x].endingsquare_.file_][i]) x=1 + (int)Math.floor(Math.random() * (double)moveCounter); if(goodmove1 > 0) {x=goodmove1;/*System.out.print("A");*/} if(goodmove2 > 0) {x=goodmove2;/*System.out.print("B");*/} if(goodmove3 > 0) {x=goodmove3;/*System.out.print("C");*/} if(goodmove4 > 0) {x=goodmove4;/*System.out.print("D");*/} if(goodmove5 > 0) {x=goodmove5;/*System.out.print("E");*/} if(goodmove6 > 0) {x=goodmove6;/*System.out.print("F");*/} if(goodmove7 > 0) {x=goodmove7;/*System.out.print("G");*/} if(goodmove8 > 0) {x=goodmove8;/*System.out.print("H");*/} if(goodmove9 > 0) {x=goodmove9;/*System.out.print("I");*/} if(goodmove10 > 0) {x=goodmove10;/*System.out.print("J");*/} //System.out.print("5"); moveto_file=MaybeMoves[x].endingsquare_.file_; moveto_rank=MaybeMoves[x].endingsquare_.rank_; mover_file=MaybeMoves[x].startingsquare_.file_; mover_rank=MaybeMoves[x].startingsquare_.rank_; if(opening_library_move < 10) opening_library(); //System.out.print("6"); RedCastleCheat(); NormalMove(g); NowBoard.sq_[mover_rank][mover_file].drawchsq(g, 1, false); NowBoard.sq_[moveto_rank][moveto_file].drawchsq(g, 1, false); MaybeBoard.sq_[mover_rank][mover_file].side_=NowBoard.sq_[mover_rank][mover_file].side_; MaybeBoard.sq_[moveto_rank][moveto_file].side_=NowBoard.sq_[moveto_rank][moveto_file].side_; MaybeBoard.sq_[mover_rank][mover_file].piece_=NowBoard.sq_[mover_rank][mover_file].piece_; MaybeBoard.sq_[moveto_rank][moveto_file].piece_=NowBoard.sq_[moveto_rank][moveto_file].piece_; //System.out.print("7"); TotalMaybeBoard(NowBoard,MaybeBoard);DidICheckOrStalemate(g, i); if(GameOver) return true; //System.out.print("8"); if(fifty_move_rule>100) { fifty_move_rule=0; DrawNowBoard(g);ShowStatusQ("Fifty move rule!"); drawn_games++; GameOver=true; return false; } else { MachineMoveExtra(g, i); return true; } } public void AddAnAttacker() { //System.out.println("AddAnAttacker"); if((xatt==catt) & (yatt==datt)) return; if (ready[yatt][xatt]==false){return;} if((catt > 8) | (datt > 8) | (catt < 1) | (datt < 1)) return; if(satt > 2) { return; } else { Attackers[datt][catt][satt]++; 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 IsEnemyKnight(int i, int j, int k) { //System.out.println("IsEnemyKnight"); if((j > 8) | (j < 1) | (i > 8) | (i < 1)) return false; if (ready[i][j]==false){return false;} if(MaybeBoard.sq_[i][j].side_==k) return false; if((MaybeBoard.sq_[i][j].piece_==3)|(MaybeBoard.sq_[i][j].piece_==28)) { if(assailant_rank !=0) { assailant2_rank=assailant_rank; assailant2_file=assailant_file; } assailant_rank=i; assailant_file=j; return true; } else { return false; } } public boolean IsEnemyPawn(int i, int j, int k) { //System.out.println("IsEnemyPawn"); if((j > 8) | (j < 1) | (i > 8) | (i < 1)) return false; if (ready[i][j]==false){return false;} if(MaybeBoard.sq_[i][j].side_==k) return false; if(MaybeBoard.sq_[i][j].piece_==1) { if(assailant_rank !=0) { assailant2_rank=assailant_rank; assailant2_file=assailant_file; } assailant_rank=i; assailant_file=j; return true; } if(MaybeBoard.sq_[i][j].piece_==2) { if(assailant_rank !=0) { assailant2_rank=assailant_rank; assailant2_file=assailant_file; } assailant_rank=i; assailant_file=j; return true; } else { return false; } } public boolean IsEnemyRook(int i, int j) { //System.out.println("IsEnemyRook"); if((j > 8) | (j < 1) | (i > 8) | (i < 1)) return false; if (ready[i][j]==false){return false;} if((MaybeBoard.sq_[i][j].piece_==5)|(MaybeBoard.sq_[i][j].piece_==6) |(MaybeBoard.sq_[i][j].piece_==9)|(MaybeBoard.sq_[i][j].piece_==28)) { if(assailant_rank !=0) { assailant2_rank=assailant_rank; assailant2_file=assailant_file; } assailant_rank=i; assailant_file=j; return true; } else { return false; } } public boolean IsEnemyBishop(int i, int j) { //System.out.println("IsEnemyBishop"); if((j > 8) | (j < 1) | (i > 8) | (i < 1)) return false; if (ready[i][j]==false){return false;} if((MaybeBoard.sq_[i][j].piece_==4)|(MaybeBoard.sq_[i][j].piece_==9) |(MaybeBoard.sq_[i][j].piece_==28)) { if(assailant_rank !=0) { assailant2_rank=assailant_rank; assailant2_file=assailant_file; } assailant_rank=i; assailant_file=j; return true; } else { return false; } } public boolean PassedOtherRequirementsToKeep(Chsq chsq, CB10_10 cb10_10, CB10_10 cb10_10_1) { if (ready[chsq.rank_][chsq.file_]==false) { if ((chsq.piece_==1)&(chsq.file_!=c[depth])){return false;} if (cb10_10.sq_[d[depth]][c[depth]].piece_!=0){return false;} } return true; } public boolean markAPiece(Graphics g, int i, int j) { System.out.println("markapiece"); if(NowBoard.sq_[i][j].side_ !=whoseMove) return false; moveCounter=0; c[depth]=j; d[depth]=i; AlsoMark(g); mover_rank=i; mover_file=j; moveCounter=0; MayReady=false; TotalMaybeBoard(NowBoard,MaybeBoard); if ((IsMySideInCheck(whoseMove)==false)& (ready[i][j]==false)){MayReady=true;} findPieceMoves(g, NowBoard.sq_[mover_rank][mover_file], NowBoard, MaybeBoard); if((moveCounter==0)&(MayReady==false)) { stringy=NowBoard.sq_[mover_rank][mover_file].moniker();ShowStatusQ("That "+stringy+" cannot move."); NowBoard.sq_[i][j].drawchsq(g, 1, icanmove[i][j]); return false; } NowBoard.sq_[i][j].drawchsq(g, 2, false); for(x=1; x <=moveCounter; x++) MaybeMoves[x].endingsquare_.markchsq(g); markingAPiece=false; SayWhoIsHuman(g); return true; } public boolean mouseDown(Event event, int i, int j) { //System.out.print("A"); if(NowBoard == null) return true; Graphics g=getGraphics(); TotalMaybeBoard(NowBoard, MaybeBoard); TotalMaybeBoard(MaybeBoard, TwoBoard); TotalMaybeBoard(TwoBoard, ThreeBoard); TotalMaybeBoard(ThreeBoard, FourBoard); ShowStatusNothing(); //System.out.print("B"); if(j < 30) if((humanizing) | (PromotingAPawn)) { return true; } else { DisplayRules(g); return true; } if(!PromotingAPawn) SayWhoIsHuman(g); if(PromotingAPawn) DrawPromotionOptions(g); //System.out.print("C"); if(GameOver) { GameOver=false; StartUp(g); repaint(); return true; } //System.out.print("D"); //System.out.print("E"); a=i / 30; b=9 - j / 30; //System.out.print("F"); if(!PromotingAPawn) if((i >= 56) & (j >= 276) & (i <= 104) & (j <= 294)) { humanizing=true; WhoIsHuman[1]=true; SayWhoIsHuman(g); } else if((i >= 117) & (j >= 276) & (i <= 178) & (j <= 294)) { humanizing=true; WhoIsHuman[1]=false; SayWhoIsHuman(g); } else if((i >= 56) & (j >= 296) & (i <= 104) & (j <= 314)) { humanizing=true; WhoIsHuman[2]=true; SayWhoIsHuman(g); } else if((i >= 117) & (j >= 296) & (i <= 178) & (j <= 314)) { humanizing=true; WhoIsHuman[2]=false; SayWhoIsHuman(g); } else if((i >= 26) & (j > 316) & (i <= 93) & (j <= 334)) { if(who_is_winning == 0) return true; humanizing=true; accepted_terms=true; SayWhoIsHuman(g); } else if((i >= 147) & (j >= 316) & (i < 242) & (j < 334)) { if(who_is_winning == 0) return true; humanizing=true; accepted_terms=false; SayWhoIsHuman(g); } else if((i >= 210) & (j >= 285) & (i < 270) & (j < 320)) { humanizing=false; SayWhoIsHuman(g); if(accepted_terms) { if(who_is_winning != 0) GameOver=true; if(who_is_winning == 1) wins[1]++; if(who_is_winning == 2) wins[2]++; if(who_is_winning == 3) drawn_games++; if(who_is_winning != 0) { StartUp(g); repaint(); markingAPiece=true; return true; } } } if(humanizing) return true; if((PromotingAPawn) ) { if(!PromotionClicks(i, j)) return true; NowBoard.sq_[queening_rank][queening_file].piece_=xxx; MaybeBoard.sq_[queening_rank][queening_file].piece_=xxx; NowBoard.sq_[queening_rank][queening_file].drawchsq(g, 1, false); TotalMaybeBoard(NowBoard,MaybeBoard);DidICheckOrStalemate(g, whoseMove); PromotingAPawn=false; if (WhoIsHuman[whoseMove]==true){SayWhoIsHuman(g);} NextOrdinaryPlayer(g); if(WhoIsHuman[whoseMove]) { markingAPiece=true; return true; } } //System.out.print("G"); UnTwoThePawns(whoseMove); if((MayReady) & (i >= 210) & (j >= 285) & (i < 270) & (j < 320)) { TotalBackBoard(); who_backed=whoseMove; ready[mover_rank][mover_file]=true;DrawNowBoard(g); System.out.print("You readied "); if (WhoIsHuman[whoseMove]==true){SayWhoIsHuman(g);} DidICheckOrStalemate(g, whoseMove); MayReady=false; NextOrdinaryPlayer(g); if(WhoIsHuman[whoseMove]) { markingAPiece=true; return true; } } if((a < 1) | (a > 8) | (b < 1) | (b > 8) && WhoIsHuman[whoseMove]) return true; //System.out.print("H"); if ((a>0)&(b>0)&(a<9)&(b<9)){ if((NowBoard.sq_[b][a].side_ != whoseMove) | (NowBoard.sq_[b][a].piece_ >= 0)) MayReady=false;} //System.out.print("I"); if(WhoIsHuman[whoseMove]) if(markingAPiece) { markAPiece(g, b, a); SayWhoIsHuman(g); } else if(HumanMoveAPiece(g, b, a)) { if(GameOver) return true; if(PromotingAPawn) return true; NextOrdinaryPlayer(g); } //System.out.print("J"); while((!WhoIsHuman[whoseMove]) & (!GameOver) & (!PromotingAPawn)) { MachineMoves(g, whoseMove); if(GameOver) return true; NextOrdinaryPlayer(g); UnTwoThePawns(whoseMove); if(WhoIsHuman[whoseMove]) markingAPiece=true; } return true; } public void DisplayRules(Graphics g) { LowRectangle(g); g.drawString("A move must be used to restore a unit's", 5, 285); g.drawString("ability to capture, except for the king.", 5, 301); g.drawString("Tony Quintanilla, 2003.", 5, 317); } public void AssignVariantName(){ variant_name="Ready Chess"; } public void SupplementalStartup() { MayReady=false; a=1;while (a<9){ ready[1][a]=true; ready[2][a]=true; ready[3][a]=false; ready[4][a]=false; ready[5][a]=false; ready[6][a]=false; ready[7][a]=true; ready[8][a]=true; a++; } } public void DrawNowBoard(Graphics g) { //System.out.println("DrawNowBoard"); for(ee=1; ee < 9; ee++) for(ff=1; ff < 9; ff++) { NowBoard.sq_[ff][ee].drawchsq(g, 1, icanmove[ff][ee]); if (ready[ff][ee]==true){NowBoard.sq_[ff][ee].drawyellowball(g,308);} } } public void PawnStuff(Graphics g) { //System.out.println("PawnStuff"); if(NowBoard.sq_[mover_rank][mover_file].piece_==2) NowBoard.sq_[mover_rank][mover_file].piece_=1; I_just_took_en_passant=false; if((mover_rank - moveto_rank) * (mover_rank - moveto_rank) !=1) return; if((mover_file - moveto_file) * (mover_file - moveto_file) !=1) return; if(((NowBoard.sq_[mover_rank][mover_file].piece_==1) | (NowBoard.sq_[mover_rank][mover_file].piece_==51) | (NowBoard.sq_[mover_rank][mover_file].piece_==83) | (NowBoard.sq_[mover_rank][mover_file].piece_==85) | (NowBoard.sq_[mover_rank][mover_file].piece_==85) | (NowBoard.sq_[mover_rank][mover_file].piece_==8101) | (NowBoard.sq_[mover_rank][mover_file].piece_==8102)) && (NowBoard.sq_[mover_rank][moveto_file].piece_==2)) { NowBoard.sq_[mover_rank][moveto_file].piece_=0; NowBoard.sq_[mover_rank][moveto_file].side_=0; ready[mover_rank][moveto_file]=false; if (GameOver==false){ShowStatusQ("En Passant");CapturedAPawn[whoseMove]=true;} I_just_took_en_passant=true; NowBoard.sq_[mover_rank][moveto_file].drawchsq(g, 1, false); MaybeBoard.sq_[mover_rank][moveto_file].side_=0; MaybeBoard.sq_[mover_rank][moveto_file].piece_=0; } } public void CastleStuff(Graphics g) { //System.out.println("CastleStuff"); if((NowBoard.sq_[moveto_rank][moveto_file].piece_==-2) | (NowBoard.sq_[moveto_rank][moveto_file].piece_==-14)) { if(moveto_file==7) { ShowStatusQ("Castling King Side"); NowBoard.sq_[moveto_rank][6].side_=NowBoard.sq_[mover_rank][mover_file].side_; NowBoard.sq_[moveto_rank][6].piece_=5; ready[moveto_rank][6]=true; NowBoard.sq_[moveto_rank][8].side_=0; NowBoard.sq_[moveto_rank][8].piece_=0; ready[moveto_rank][8]=false; NowBoard.sq_[moveto_rank][6].drawchsq(g, 1, false); NowBoard.sq_[moveto_rank][8].drawchsq(g, 1, false); MaybeBoard.sq_[moveto_rank][6].side_=NowBoard.sq_[mover_rank][mover_file].side_; MaybeBoard.sq_[moveto_rank][6].piece_=5; MaybeBoard.sq_[moveto_rank][8].side_=0; MaybeBoard.sq_[moveto_rank][8].piece_=0; } if(moveto_file==3) { ShowStatusQ("Castling Queen Side"); NowBoard.sq_[moveto_rank][4].side_=NowBoard.sq_[mover_rank][mover_file].side_; NowBoard.sq_[moveto_rank][4].piece_=5; ready[moveto_rank][4]=true; NowBoard.sq_[moveto_rank][1].side_=0; NowBoard.sq_[moveto_rank][1].piece_=0; ready[moveto_rank][1]=false; NowBoard.sq_[moveto_rank][4].drawchsq(g, 1, false); NowBoard.sq_[moveto_rank][1].drawchsq(g, 1, false); MaybeBoard.sq_[moveto_rank][4].side_=NowBoard.sq_[mover_rank][mover_file].side_; MaybeBoard.sq_[moveto_rank][4].piece_=5; MaybeBoard.sq_[moveto_rank][1].side_=0; MaybeBoard.sq_[moveto_rank][1].piece_=0; } NowBoard.sq_[moveto_rank][moveto_file].piece_++; } } public void NormalMoveExtra() { if ( (ready[mover_rank][mover_file]==true) & (NowBoard.sq_[moveto_rank][moveto_file].piece_==0) & ((NowBoard.sq_[mover_rank][mover_file].piece_!=1)|(mover_file==moveto_file)) ) {ready[moveto_rank][moveto_file]=true;} else {ready[moveto_rank][moveto_file]=false;} ready[mover_rank][mover_file]=false; } public boolean AnyReadiable(int i){ TotalMaybeBoard(NowBoard,MaybeBoard); if (IsMySideInCheck(i)==true){return false;} a=1;while (a<9){ b=1;while (b<9){ if ((NowBoard.sq_[b][a].side_==i)&(ready[b][a]==false)){return true;} b++;}a++;} return false; } public void SupplementalInit() { ready=new boolean[10][10]; back_ready=new boolean[10][10]; save_ready=new boolean[10][10]; } public boolean opening_library() { return false; } public void SayWhoIsHuman(Graphics g) { if(PromotingAPawn) return; g.setColor(niceblue); g.fillRect(0, 271, 300, 94); g.setColor(Color.black); g.setFont(f1); g.drawString("White:", 10, 290); g.drawString("Red:", 10, 310); g.drawString("Computer", 120, 290); g.drawString("Computer", 120, 310); g.drawString("Human", 60, 290); g.drawString("Human", 60, 310); g.setFont(f1);NameThisChessVariant(g); g.drawString("White " + wins[1] + " Red " + wins[2] + " Drawn " + drawn_games, 5, 360); switch(who_is_winning) { case 1: // '\001' g.drawString("White wins", 30, 330); break; case 2: // '\002' g.drawString("Red wins", 30, 330); break; case 3: // '\003' g.drawString("Draw", 30, 330); break; } if(who_is_winning > 0) g.drawString("Continue Game", 150, 330); if(who_is_winning > 0) { if(accepted_terms) { g.drawRect(26, 316, 67, 18); g.drawRect(27, 317, 65, 16); } if(!accepted_terms) { g.drawRect(147, 316, 95, 18); g.drawRect(148, 317, 93, 16); } } g.setFont(f3); g.drawString("--Ed Friedlander", 235, 360); g.setFont(f2); if(humanizing) g.drawString("OKAY", 210, 300); if(MayReady) g.drawString("READY", 210, 300); g.setColor(Color.white); if(WhoIsHuman[1]) { g.drawRect(56, 276, 48, 18); g.drawRect(57, 277, 46, 16); } if(!WhoIsHuman[1]) { g.drawRect(117, 276, 61, 18); g.drawRect(118, 277, 59, 16); } g.setColor(Color.red); if(WhoIsHuman[2]) { g.drawRect(56, 296, 48, 18); g.drawRect(57, 297, 46, 16); } if(!WhoIsHuman[2]) { g.drawRect(117, 296, 61, 18); g.drawRect(118, 297, 59, 16); } } boolean ready[][]; boolean MayReady; boolean back_ready[][]; boolean back_MayReady; boolean save_ready[][]; boolean save_MayReady; }