这是我第一次来这里,我希望有一天我会成为一名高级活动家。但是,我对C编程非常陌生,而且我正在研究我的学校项目,称为RushHour游戏。我在这里发布了示例板。然而,这个程序非常艰难,我有点落伍。所以,我正在研究我的移动汽车功能(字母将用作汽车)。我的程序必须与任何类型的板一起使用。我编写了函数,我不确定它们是否正确完成,因为我在交换行上一直出错。我正试图让车和点交换正确。我在这做错了什么?对于任何反馈,我们都表示感谢。我会接受侮辱或其他什么。
- - - - - - - -
| G G . . . Y |
| P . . B . Y |
| P R R B . Y >
| P . . B . . |
| O . . . T T |
| O . F F F . |
- - - - - - - -
程序:
#include <stdio.h>
#include <stdlib.h>
#define size 64
void swap(char* board[], int *index1, int *index2)
{
char tempChar = *index1;
*index1 = *index2;
*index2 = tempChar;
}
void moveCar(char* board[], char* vehicle, char* direction)
{
int i;
for (i = 0; i < size; i++)
{
if(board[i] = vehicle)
{
if(*direction = 'r')
{
if(*board[i + 1] = '.')
{
swap((&board), (&i), (&i + 1));
}
}
else if (*direction = 'l')
{
if(*board[i - 1] = '.')
{
swap(&board[], &(i), &(i - 1));
}
}
else if (*direction = 'd')
{
if(*board[i + 8] = '.')
{
swap(&board[], &(i), &(i + 8));
}
}
else if(*direction = 'u')
{
if(*board[i - 8] = '.')
{
swap(&board[], &(i), &(i - 8));
}
}
}
}
}
答案 0 :(得分:2)
目前尚不清楚你在这里问的是什么,但让我们假设问题是
为什么我收到错误
[Warning] passing arg 1 of 'swap' from incompatible pointer type
原因是你错误地调用了swap
。你称它为两种方式:
swap((&board), (&i), (&i + 1));
和
swap(&board[], &(i), &(i - 1));
但在这两种情况下,board
都被声明为char* board[]
,所以您需要做的就是:
swap(board, ... (whatever) ...);