Advertisement
Insyder01

Untitled

Jan 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None | 0 0
  1. #include "ValidMoves.h"
  2. bool ValidMoves::analyzeMove(Board board, int index, Piece pcMoving){
  3.     if(pcMoving.pieceColor == COLOR_WHITE)
  4.         whiteAttack[index]=true;
  5.     else
  6.         blackAttack[index]=true;
  7.  
  8.     if(board.squares[index].piece.pieceType == NONE){
  9.         pcMoving.validMoves.push(index);
  10.         return true;
  11.     }
  12.  
  13.     Piece pcAttacked = board.squares[index].piece;
  14.     if(pcAttacked.pieceColor != pcMoving.pieceColor){
  15.         pcAttacked.attackedValue += pcMoving.pieceActionValue;
  16.         if(pcAttacked.pieceType == KING){
  17.             if(pcAttacked.pieceColor == COLOR_BLACK)
  18.                 board.blackCheck = true;
  19.             else
  20.                 board.whiteCheck = true;
  21.         }
  22.         else{
  23.             pcMoving.validMoves.push(index);
  24.         }
  25.         /**WHY FALSE!!*/
  26.         return false;
  27.  
  28.     }
  29.     pcAttacked.defendedValue += pcMoving.pieceActionValue;
  30.     return false;
  31. }
  32. void ValidMoves::checkValidMovesPawn(Board board, vector <vector <int> > &pawnMoves, Piece pcMoving, int src){
  33.     for(int i = 0; i < (int)pawnMoves[src].size();i++){
  34.         int dst  =  pawnMoves[src][i];
  35.         if(COL(src) != COL(dst)){
  36.             analyzeMovePawn(board, dst, pcMoving);
  37.             if(pcMoving.pieceColor == COLOR_WHITE)
  38.                 whiteAttack[dst] = true;
  39.             else
  40.                 blackAttack[dst] = true;
  41.         }
  42.         else if(board.squares[dst].piece.pieceType != NONE)
  43.             return ;
  44.         else
  45.             pcMoving.validMoves.push(dst);
  46.  
  47.     }
  48. }
  49. void ValidMoves::analyzeMovePawn(Board board, int dst, Piece pcMoving){
  50.     /**Ignnnore En Passant**/
  51.     Piece pcAttacked = board.squares[dst].piece;
  52.     if(pcAttacked.pieceType == NONE)
  53.         return;
  54.     if(pcMoving.pieceColor == COLOR_WHITE){
  55.         whiteAttack[dst] = true;
  56.         if(pcAttacked.pieceColor == pcMoving.pieceColor){
  57.             pcAttacked.defendedValue += pcMoving.pieceActionValue;
  58.         return;
  59.  
  60.         }
  61.         pcAttacked.attackedValue += pcMoving.pieceActionValue;
  62.         if(pcAttacked.pieceType == KING){
  63.             board.blackCheck = true;
  64.  
  65.         }
  66.         else{
  67.             pcMoving.validMoves.push(dst);
  68.         }
  69.     }
  70.     else{
  71.         blackAttack[dst] = true;
  72.         if(pcAttacked.pieceColor == pcMoving.pieceColor){
  73.             pcAttacked.defendedValue += pcMoving.pieceActionValue;
  74.         return;
  75.         }
  76.         if(pcAttacked.pieceType == KING){
  77.             board.whiteCheck = true;
  78.         }
  79.         else{
  80.             pcMoving.validMoves.push(dst);
  81.         }
  82.  
  83.     }
  84.     return ;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement