void applyMy(char type, int prevX, int prevY, int dirc, Board* board){ // Apply my range to tile in the direction. int x = moveX(prevX,dirc), y = moveY(prevY,dirc); if(isInBoard(x,y)==0) return; board->tile[x][y].myReach[board->tile[x][y].myNum] = type; board->tile[x][y].myNum++; }
void ChessMoves::fillcBoardKnight(int row, int col){ //reset cBoard resetcBoard(); Piece const& masterPiece = refBoard.getPieceAt(row,col); //row up 2 and col left right if(isInBoard(row+2, col-1)) checkPiece(masterPiece, row+2,col-1); if(isInBoard(row+2, col+1)) checkPiece(masterPiece, row+2,col+1); //col up 2 and row left right if(isInBoard(row+1, col+2)) checkPiece(masterPiece, row+1,col+2); if(isInBoard(row-1, col+2)) checkPiece(masterPiece, row-1,col+2); //row down 2 and col left right if(isInBoard(row-2, col+1)) checkPiece(masterPiece, row-2,col+1); if(isInBoard(row-2, col-1)) checkPiece(masterPiece, row-2,col-1); //col down 2 and left right if(isInBoard(row+1, col-2)) checkPiece(masterPiece, row+1,col-2); if(isInBoard(row-1, col-2)) checkPiece(masterPiece, row-1,col-2); }
Group moveGroup(Group group, int prevX, int prevY, int x, int y){ // apply Move to Group if(isInBoard(x,y)==0) return group; int i; Group newGroup; newGroup.num = 0; for(i=0;i<group.num;i++){ if(x==group.animal[i].x && y==group.animal[i].y){ continue; //remove attacked animal }else if(prevX==group.animal[i].x && prevY==group.animal[i].y){ group.animal[i].x = x; group.animal[i].y = y; //move animal if(y==0 && group.animal[i].type == 'C') group.animal[i].type = 'H'; // chick to hen } newGroup.animal[newGroup.num] = group.animal[i]; newGroup.num++; } return newGroup; }
bool isInBoard(int r, int c){ if(isInBoard(r) and isInBoard(c)){return true;} else{return false;} }