2つの関数は、大文字小文字のステートメントから約200行です(そしてそれらは正しく動作します)ので、私はそれが何をしているのかを説明します。私は現在、チェッカーに似たゲームを作成しています。最初の関数がC言語で実行される場合にのみ、2番目の関数をキャンセルする方法はありますか?
機能1:ユーザーが有効な移動を入力したかどうかを確認します。彼らがしなかった場合、それは "無効な移動"を印刷します。
機能2:ボード上で移動したピースを更新し、新しい更新ボードを表示します。
main関数ではwhileループを実行したので、無効な移動を入力した場合は、再度入力を求められます。それはしますが、ボードはまだ更新されます。たとえば、ピース3が占有している場所にピース1を移動することを選択した場合、ボードは更新します。ピース1のスポットは、「無効な移動」を印刷しても空になります。私は機能1が何かを印刷した場合、機能2を止める方法を知らない。 ここに私がmain関数に入れたものがあります。
char pieceToMove, emptySpot;
int moveNumber = 0;
int piecesOnBoard = 15;
while (piecesOnBoard >= 1, ++moveNumber) {
//prompting user input
printf("%d. Enter your move:", moveNumber);
scanf(" %c %c", &pieceToMove, &emptySpot);
checkMoves(pieceToMove, emptySpot, all, the, pieces, ect);
updateBoard(all, the, pieces);
}
'チェックし、ユーザの入力であれば、有効な移動。彼らがしなかった場合、それは "無効な移動"を印刷します。この関数はあまりにも多くのことをしようとしています。単元責任原則についてお読みください。 –