新手开发命令行界面的吃豆子遇见了一个问题,求助!
我是C语言新手,然后尝试着开发命令行界面的吃豆子。遇见了一个问题:问题描述:
当宏定义中的_WIDE与_HEIGHT相等的时候,一切正常,可是把_WIDE改成40之后,屏幕中间的‘o’居然不见了……

源代码:=
=============================================================
程序代码:
#include <stdio.h>
#include <stdlib.h>
#define _WIDE 40
#define _HEIGHT 20
//初始化环境。把周围铺满x
void init_env(int (*g)[_WIDE]/*, int x, int y*/);
//输出环境。&a代表数组,a和b代表吃豆子动物的坐标
void show_env(int (*g)[_WIDE]/*, int a, int b*/);
//void operat(int (*g)[_WIDE], int x, int y);
int main()
{
//int wide = _WIDE, height = _HEIGHT;
//动物的坐标(_x, _y)
//int _x = _WIDE/2, _y = _HEIGHT;
/*envir代表环境,元素的值可以为-1、0、1,分别代表:
-1:边界,0:空白,1,吃豆子的动物*/
int envir[_HEIGHT][_WIDE];
init_env(envir);
/*while (1)
{
operat(envir, _x, _y);
system("cls");
show_env(envir);
}*/
show_env(envir);
return 0;
}
void init_env(int (*g)[_WIDE]/*, int x, int y*/)
{
int temp_x = 0;
int temp_y = 0;
//把周围铺满瓷砖
for (temp_x = 0; temp_x < _WIDE; temp_x++)
{
g[0][temp_x] = -1;
g[_HEIGHT - 1][temp_x] = -1;
}
for (temp_y = 0; temp_y < _HEIGHT; temp_y++)
{
g[temp_y][0] = -1;
g[temp_y][_WIDE - 1] = -1;
}
//再把瓷砖内铺满0
for (temp_x = 1; temp_x < _WIDE - 1; temp_x++)
{
for (temp_y = 1; temp_y < _HEIGHT - 1; temp_y++)
{
g[temp_y][temp_x] = 0;
}
}
//最后初始化动物的位置
g[_WIDE/2][_HEIGHT/2] = 1;
}
void show_env(int (*g)[_WIDE])
{
int temp_x;
int temp_y;
for (temp_y = 0; temp_y < _HEIGHT; temp_y++)
{
for (temp_x = 0; temp_x < _WIDE; temp_x++)
{
switch (g[temp_y][temp_x])
{
case -1:
putchar('x');
break;
case 1:
putchar('o');
break;
case 0:
putchar(' ');
break;
default :
printf("!!!!!!!!!ERROR!!!!!!");
exit(0);
break;
}
}
putchar('\n');
}
}











看不太懂