Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 蛇类游戏没有';行不通_C++_C++11_Visual C++ - Fatal编程技术网

C++ 蛇类游戏没有';行不通

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 << '*'; }

这是代码未编译的部分。当它到达这里时,它会启动然后停止。我有一张[11][22]的字符地图,那是我的棋盘。我想做的是让“*”随机生成,并充当我的蛇的食物

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语句当角色和小球在同一个位置时,你能帮我处理代码吗