目前,我已經離開了移動功能俄羅斯方塊功能舉動
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--;
向右移動,因爲左邊是右邊++將是 - 我想?
我已經嘗試了幾處更改,但沒有太多的工作,所以我開始認爲我不完全理解代碼。
有人可以更深入地解釋代碼在做什麼(我可以閱讀我想要的更多深入解釋的評論)。
編輯有適當的檢查,以左右移動。例如檢查一塊是否存在
現有的代碼似乎有缺陷的或誤導性的。爲了向左移動,需要計算左側座標並檢查它是否小於電路板的左側,然後向左移動。 爲了向右移動,可以計算右側座標,檢查它是否大於板的右側,然後向右移動。 正如@Medinoc指出的那樣,也沒有針對其他作品的檢查。 – nurettin
有,但我沒有顯示的代碼,我將編輯我原來的帖子,雖然 – Jim