Beispiel #1
0
 private void PreviousExecute()
 {
     if (This.Bot == null)
     {
         return;
     }
     if (this.OppositePlayer.CurrentMove != null)
     {
         Move move = this.OppositePlayer.CurrentMove;
         this.TempMoves.Add(move);
         Move oppositeMove = move.OppositeMove();
         this.MakeMove(oppositeMove);
         this.OppositePlayer.SetCurrentMove(null);
         This.Board[oppositeMove.StartPosition.File][oppositeMove.StartPosition.Rank].Piece = oppositeMove.StartPosition.Piece;
         if (oppositeMove.StartPosition.Piece != null)
         {
             This.Game.CurrentPlayer.Materials.Add(This.Board[oppositeMove.StartPosition.File][oppositeMove.StartPosition.Rank].Piece);
         }
         if (this.CurrentPlayer.PreviousMove != null)
         {
             this.CurrentPlayer.SetCurrentMove(this.CurrentPlayer.PreviousMove);
             int index = this.CurrentPlayer.Moves.IndexOf(this.CurrentPlayer.PreviousMove);
             if (index > 0)
             {
                 this.CurrentPlayer.PreviousMove = this.CurrentPlayer.Moves[index - 1];
             }
             else
             {
                 this.CurrentPlayer.PreviousMove = null;
             }
         }
         this.CurrentPlayer = this.OppositePlayer;
         This.Board.ResetLegalMoves();
         This.Board.ResetBoardColors();
         This.Board.StartSquare = null;
     }
 }