スネーク ゲーム用にスネークのセグメントを格納する配列を初期化しようとしています
タイプ「セグメント」の構造はここで定義されています
typedef struct snakeSegment {
int x,y;
}segment
次に、ヘビの構造を宣言します (セグメントで構成されています)。
struct snakeSegment snake[200];
次のコードは、スネーク配列の初期化です
/*****************************************/
/* Create snake array of length snake_length */
void initSnake(segment snake[], int snake_length)
{
int x = 50;
int y = 50;
snake[0].x= x;
snake[0].y= y;
for (int i = 1; i < 21; i++ )
{
snake[i].x= snake[i-1].x;
snake[i].y= snake[i-1].y;
x++;
}
}
メイン メソッドに到達して initSnake() 関数を実行しようとするたびに問題が発生します。
ここに主な機能があります
int main() {
initDevices();
remainingSnakes = initGame();
while ( remainingSnakes ) {
// waitForStart();
snakeInPlay= 1;
currentDirection= 'N';
initSnake(snake_length, snake );
renderSnake(snake_length);
}}
コードの initSnake() 行で、コンパイル時に次のエラーが生成されます: タイプ "int" は、タイプ "segment *" のパラメーターと互換性がありません
同僚に尋ねてみたところ、この問題を抱えている人もいるようです。別の解決策を探しましたが、大幅に変更されないメイン機能が提供されました。なぜこのエラーが表示されるのかわかりませんので、フィードバックをいただければ幸いです。ありがとう!
以下は、モデル化に使用するメイン関数です。
initialiseDevices();
remainingSnakes= initialiseGame();
while ( remainingSnakes ) {
waitForStart();
snakeInPlay= 1;
currentDirection= N;
snakeLength= 10;
initialiseSnake( snake, snakeLength );
renderSnake( snake, snakeLength );
while ( snakeInPlay ) {
newDirection= ReadBoardAngle();
currentDirection= moveSnake ( snake, newDirection, snakeLength );
snakeInPlay= testSnakeCollision( snake, snakeLength );
delay();
}
}