Итак, вот программа, и цель для меня состоит в том, чтобы переместить букву «G» к букве «X» через все ловушки «T», и я не могу понять, как переместить элемент в массиве. Программа запрашивает пользовательский ввод, поэтому, например, «u» должно быть вверху и т. Д. Я знаю, что, как движущиеся объекты, как массив [x] [y-1] будет перемещать элемент вверх ?? Я думаю, что где-то просто ошибка или что-то, чего я не понимаю. Кроме того, каждый раз, когда пользователь вводит команду, ловушки должны снова самим рандомизироваться. Если бы кто-нибудь мог взглянуть на мой код, это очень помогло бы! Я боролся с массивами столько, сколько себя помню. Спасибо!
#include <iostream>
#include <ctime>
#include <iostream>
char moveUp(int i, int j, char array[i][j])
{
i++;
return array[i][j];
}
int main()
{
int x, y;
char maze[8][8];
char moveUp(x, y, maze);
using namespace std;
char end = 'X';
char player = 'G';
time_t t;
srand((unsigned) time(&t));
char temp;
for(x = 0; x < 8; x++)
{
for (y = 0; y < 8; y++)
{
int trapOrNot = rand()%2;
if (trapOrNot == 1)
{
maze[x][y] = 'T';
}
else
{
maze[x][y] = '.';
}
}
}
maze[7][7] = end; //End
maze[0][0] = player; //Player
if (maze[0][1] == 'T')
{
maze[0][1] = '.';
}
if (maze[1][0])
{
maze[1][0] = '.';
}
for(x = 0; x < 8; x++)
{
for (y = 0; y < 8; y++)
{
cout << maze[x][y]<< " ";
}
cout << endl;
}
char userInput;
while (player != end)
{
cout << "In which direction do you want to move?" << endl;
cin >> userInput;
if (userInput == 'u')
{
moveUp(x, y, maze[x][y]);
}
else if (userInput == 'd')
{
}
else if (userInput == 'l')
{
}
else if (userInput == 'r')
{
}
return 0;
}
}
OUTPUT:
G . T . . . . T
. . . T . T . .
. T . . . . T T
. . T . . T . .
. . . . . T T .
T . . . . T . .
T T T T T . T .
T T T . . . T X
and then after each time it's supposed to loop until the G reaches the
X. and then it'll say "you've made it!" or something. I really just
need the moving functions figured out.