C++ 蛇类游戏没有';行不通
这是代码未编译的部分。当它到达这里时,它会启动然后停止。我有一张[11][22]的字符地图,那是我的棋盘。我想做的是让“*”随机生成,并充当我的蛇的食物C++ 蛇类游戏没有';行不通,c++,c++11,visual-c++,C++,C++11,Visual C++,这是代码未编译的部分。当它到达这里时,它会启动然后停止。我有一张[11][22]的字符地图,那是我的棋盘。我想做的是让“*”随机生成,并充当我的蛇的食物 srand(time(NULL)); int pellet=rand()%21; while (GameRunning == true) { for (int pellet = rand(); pellet % Map[11][22]; pellet++) { cout << '*'; }
srand(time(NULL));
int pellet=rand()%21;
while (GameRunning == true)
{
for (int pellet = rand(); pellet % Map[11][22]; pellet++)
{
cout << '*';
}
system("cls");
srand(时间(空));
int pellet=rand()%21;
while(GameRunning==true)
{
对于(int pellet=rand();pellet%Map[11][22];pellet++)
{
cout如果Map
是一个二维字符数组:
char-Map[11][22];
问题在于这一行:
pellet % Map[11][22]
您正在地图中的越界条目上应用模数
对于第一维度,地图可以从0到10
,对于第二维度,地图可以从0到21
。例如,map[0][0]
是一个有效条目,正如map[4][7]
一样,但是map[11][22]
不是一个有效条目
在这个越界条目中,那里的值碰巧是0,导致被零除的错误(计算n mod 0
导致此错误)
为了尽可能简单地解释,请将二维数组视为网格。在您的示例中,网格有11行22列
所以现在你想在网格上的某个点,比如说第三行,第五列。要做到这一点,你会说:“代码> Mat [2 ] [4 ] < /C>。为什么它不是代码> Mat [3 ] [5 ] < /C> >,在C++中,数组索引从0开始,而不是1。
,这是一行一列的界限
是的,你声明数组有11行和22列的大小,但是这只在告诉C++数组有多大(当你声明数组)时是相关的。当你需要访问数组中的各种元素时,你必须使用基于0的索引来获得你感兴趣的条目。
跟进:任何好的C++书籍都比我解释得更详细。你得到的错误是什么?当你的问题不考虑IDE时,请避免使用IDE标签,如VisualStudio。这些问题用于井手问题而不是用它们编写的代码。<代码> Pult%map(11)[ 22 ]。解释这应该做什么。很抱歉,我是这个网站的新手,snake.exe中0x013C921E处未处理的异常:0xc000094:整数除以零。这是我得到的错误。哇,非常感谢,现在我只需要为S(我在蛇身上使用的)的时间编码我想我可以使用if语句当角色和小球在同一个位置时,你能帮我处理代码吗