c中的网格和指针

时间:2018-09-02 18:08:38

标签: c pointers grid

我用C语言编写了该程序,其中将对象$(command) 放置在网格上,并且应该从他们的键盘输入来进行移动。例如,如果您按N,就会发生这种情况。

R

所以R使它上升。对象必须在处移动,因此,例如,当它位于[A0] [B0]时,它需要一直向下移动[A2] [B0]。往上看。 它会上下左右移动。

现在我正在创建使它上移的功能,但是我遇到了很多麻烦:有时它会随机冻结为2:0和0:0而没有上升,并且当它在A = 2时,而不是在1时,它变为0,尽管我将其设置为2-1(要在其上必须减去1)。

我不明白是什么原因导致了这些麻烦,有什么建议吗?

         0 1 2
       0 - - -                      R - -                  - - -                               
       1 R - -  PRESS N -> GO UP -> - - - PRESS N AGAIN -> - - -
       2 - - -                      - - -                  R - -

1 个答案:

答案 0 :(得分:1)

在下面的代码中,您正在读取h的值,然后再读取任何内容。如果h的未初始化值恰好是3,则执行将不会进入while循环。

   char h;
   while(h != '3')

因此,将值读入h,然后在while循环中进行检查。

moveUp函数中,可以使用ternary conditional运算符分配下一个位置或对象R

cord->a = (cord->a)? (cord->a - 1): 2;