目前我有左移功能
int8_t move_piece_left(piece_type* piecePtr) {
int8_t row;
/*
* Check if piece is all the way to the left If so, return.
* (Remember, column number is based on bit position - higher
* numbers to the left.
*/
if(piecePtr->right_column + piecePtr->x_dimension >= BOARD_WIDTH) {
return 0;
}
/*
* Make the move.
*/
for(row=0; row < piecePtr->y_dimension; row++) {
piecePtr->rowdata[row] <<= 1;
}
piecePtr->right_column++;
return 1;
}
我认为正确的移动将是一个简单的改变,我确信它是,但我不认为它进展得那么顺利。所以很明显我需要检查这件作品是否一直在右边而不是左边,也许它的
piecePtr->right_column--;
向右移动,因为左是 ++ 右,我想?
我在这里和那里尝试了一些更改,但效果不大,所以我开始认为我没有完全理解代码。
有人可以更深入地解释代码在做什么(我可以阅读我想要更深入解释的评论)。
编辑有适当的检查以便向左或向右移动。例如检查一块是否存在