我正在尝试初始化一个数组来存储蛇游戏的蛇段
“段”类型的结构在这里定义
typedef struct snakeSegment {
int x,y;
}segment
然后我声明蛇的结构(由段组成)
struct snakeSegment snake[200];
下面的代码是snake数组的初始化
/*****************************************/
/* 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++;
}
}
每当它到达 main 方法并尝试运行 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();
}
}