Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ValidMoves.h"
- bool ValidMoves::analyzeMove(Board board, int index, Piece pcMoving){
- if(pcMoving.pieceColor == COLOR_WHITE)
- whiteAttack[index]=true;
- else
- blackAttack[index]=true;
- if(board.squares[index].piece.pieceType == NONE){
- pcMoving.validMoves.push(index);
- return true;
- }
- Piece pcAttacked = board.squares[index].piece;
- if(pcAttacked.pieceColor != pcMoving.pieceColor){
- pcAttacked.attackedValue += pcMoving.pieceActionValue;
- if(pcAttacked.pieceType == KING){
- if(pcAttacked.pieceColor == COLOR_BLACK)
- board.blackCheck = true;
- else
- board.whiteCheck = true;
- }
- else{
- pcMoving.validMoves.push(index);
- }
- /**WHY FALSE!!*/
- return false;
- }
- pcAttacked.defendedValue += pcMoving.pieceActionValue;
- return false;
- }
- void ValidMoves::checkValidMovesPawn(Board board, vector <vector <int> > &pawnMoves, Piece pcMoving, int src){
- for(int i = 0; i < (int)pawnMoves[src].size();i++){
- int dst = pawnMoves[src][i];
- if(COL(src) != COL(dst)){
- analyzeMovePawn(board, dst, pcMoving);
- if(pcMoving.pieceColor == COLOR_WHITE)
- whiteAttack[dst] = true;
- else
- blackAttack[dst] = true;
- }
- else if(board.squares[dst].piece.pieceType != NONE)
- return ;
- else
- pcMoving.validMoves.push(dst);
- }
- }
- void ValidMoves::analyzeMovePawn(Board board, int dst, Piece pcMoving){
- /**Ignnnore En Passant**/
- Piece pcAttacked = board.squares[dst].piece;
- if(pcAttacked.pieceType == NONE)
- return;
- if(pcMoving.pieceColor == COLOR_WHITE){
- whiteAttack[dst] = true;
- if(pcAttacked.pieceColor == pcMoving.pieceColor){
- pcAttacked.defendedValue += pcMoving.pieceActionValue;
- return;
- }
- pcAttacked.attackedValue += pcMoving.pieceActionValue;
- if(pcAttacked.pieceType == KING){
- board.blackCheck = true;
- }
- else{
- pcMoving.validMoves.push(dst);
- }
- }
- else{
- blackAttack[dst] = true;
- if(pcAttacked.pieceColor == pcMoving.pieceColor){
- pcAttacked.defendedValue += pcMoving.pieceActionValue;
- return;
- }
- if(pcAttacked.pieceType == KING){
- board.whiteCheck = true;
- }
- else{
- pcMoving.validMoves.push(dst);
- }
- }
- return ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement