我在做 Nim 游戏程序时遇到了一些麻烦。到目前为止,我有一个显示管道金字塔的程序。它看起来像这张图片上的“起始位置”金字塔。
http://www.mathsisfun.com/puzzles/images/b-nim.gif
无论如何,我在移动时遇到了麻烦,每当我尝试移动时,我的光标都会以完全不稳定的方式移动。这将使游戏完全无法玩。我不确定这是否是我的计数变量的问题,甚至是我完全丢失的一些较小的东西,无论如何这就是我所拥有的:
#include <stdlib.h>
int nim()
{
char *tab;
if ((tab = malloc(sizeof(char) * 20 + 4)) == NULL)
return (-1);
tab = " | \n ||| \n ||||| \n |||||||\n"; /* this is indeed a nasty way to do it :P */
putstr(tab);
}
int move_normally()
{
char bffr[10];
int x;
int y;
x = 0;
y = 0;
while (42 && x <= 6 && y <= 3)
{
read(0, bffr, 10);
putstr(tgoto(tgetstr("cm", NULL), x, y);
if (bffr[2] == 66 && y <= 3 && x <= 6)
y++
else if (bffr[2] == 65 && x <= 6 && y <= 3 && (y - 1) >= 0)
y = y - 1;
else if (bffr[2] == 67 && x <= 6 && y <= 3)
x++
else if (bffr[2] == 68 && x <= 6 && y <= 3 && (x - 1) >= 0)
x++
}
}
那么,我在这里缺少什么吗?其他一切都几乎完美无缺,我无法理解为什么这会带来麻烦。另外,还有其他方法可以做到这一点吗?我对任何替代方式持开放态度。