游戏代码(Rookie程序员,FYI)

时间:2014-03-01 20:47:52

标签: c

这是我第一次来这里,我希望有一天我会成为一名高级活动家。但是,我对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));
        }
      }
    }
  }
}

1 个答案:

答案 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) ...);