我正在制作一个版本的“尖峰时刻”,这是一个游戏,您可以在其中移动汽车以便让特定的汽车通过。对于我的程序,如果用户输入......比如说GR1(G代表哪个汽车要移动,R代表方向(右),1代表有多少个空间朝那个方向移动)然后汽车假设为1空间在右边。我注意到,对于我的程序,它只会移动汽车的一部分。我认为正在发生的事情是我的循环没有通过我的整个阵列。一旦找到汽车的第一部分,它就会移动它,然后通过循环直接返回。我怎样才能移动整辆车?如何继续搜索我的数组?
这里是什么样子的例子:
--------
|GG...Y|
|P..B.Y|
|PRRB.Y>
|P..B..|
|O...TT|
|O.FFF.|
--------
//进入GR1应该给我
--------
|.GG..Y|
|P..B.Y|
|PRRB.Y>
|P..B..|
|O...TT|
|O.FFF.|
--------
//但给了我这个代替
--------
|G.G..Y|
|P..B.Y|
|PRRB.Y>
|P..B..|
|O...TT|
|O.FFF.|
--------
//代码a和c是用户输入
for(i=64; i>0; i--)
{
if(board[i] == a)// if user input is found checks board
{
a = i;
tmp = board[a];
board[a] = board[a+c];
//printf("The value of the swapping position is %c\n", board[a+c]);
if(board[a+c]!= '.' || board[a+c]=='|')
{
printf("Invalid move. exiting..\n");
return 0;
}
board[a+c] = tmp;
printf("the value of a is %c\n", a);
}
}
什么是a和c在这里。从你的例子中,我假设a ='G'和c ='1'。 'GR1'中'R'的输入变量在哪里。 – Joe
b ='R'的意思是“正确的”,但在我将用户的输入转移到该车的位置之前,我想确保我可以让汽车一起移动。所以,我没有把代码放在变量b中。 – Funbar