Ejemplo n.º 1
0
Archivo: rate.c Proyecto: yulcat/shogi
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++;
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
Archivo: rate.c Proyecto: yulcat/shogi
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;
}
Ejemplo n.º 4
0
bool isInBoard(int r, int c){
	if(isInBoard(r) and isInBoard(c)){return true;}
	else{return false;}
}