gpt4 book ai didi

c - 试图创建一个简单的 map ,让玩家可以四处走动,但惨败

转载 作者:行者123 更新时间:2023-11-30 15:11:43 26 4
gpt4 key购买 nike

所以每当我运行这段代码时,我都会看到一个充满随机符号的屏幕,当我尝试移动播放器时,程序崩溃了。我已经被困了很长一段时间试图解决这个问题,任何见解都将非常感激。

#include <stdio.h>
int main()
{
int size, x, y, test = 1;
printf("How big is your map? ");
scanf("%d", &size);
char map[size][size], move;
int row = size/2, col = size/2;
for(x = 0; x < size; x++)
{ //gives one value to everything in the board
for(y = 0; y < size; y++)
{
map[size][size] = 'X';
}
}
while(test != 0)
{
scanf("%d", &test); //just so I can keep testing over and over
for(x = 0; x < size; x++)
{
for(y = 0; y < size; y++)
if (x == row && y == col)
{
printf("O");
map[row][col] = 'O';
}
else
printf("%c", map[x][y]);
printf("\n");
}
printf("Use W, A, S, D to move around.");
scanf(" %c", move);
map[row][col] = 'X'; //set the old player location to the original value.
switch(move)
{
case 'w':
case 'W': row -= 1; break;
case 's':
case 'S': row += 1; break;
case 'a':
case 'A': col -= 1; break;
case 'd':
case 'D': col += 1; break;
}
map[row][col] = 'O';
}
return 0;
}

最佳答案

        map[size][size] = 'X';

应该是

        map[x][y] = 'X';

            map[row][col] = 'O';

应该是

            map[x][y] = 'O';

此外,保护 row 和 col 不超出 [0,size]

...另外,更改

scanf(" %c", move);

scanf(" %c", &move);

将字符写入 move 指向的任何现有值会导致崩溃。

关于c - 试图创建一个简单的 map ,让玩家可以四处走动,但惨败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35514238/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com