我試圖初始化一個數組來存儲蛇的段爲一蛇遊戲「int」類型的參數與類型「segment *」的參數不兼容 - 爲什麼它不接受對象?
類型「段」的結構在這裏被定義
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();
}
}
的它出現的參數'initSnake ()'的順序是錯誤的。 – hmjd
*我問過我的同事,有些人似乎有這個問題。*你問過多個人,但沒有人發現這個問題? – cnicutar
你能告訴我們正在學習一學期的工作嗎?沒有太多的C經驗。我不知道他們的順序會導致任何問題... –