Как я могу переместить один элемент в двумерном массиве в C ++ на основе пользовательского ввода? - PullRequest
0 голосов
/ 08 ноября 2018

Итак, вот программа, и цель для меня состоит в том, чтобы переместить букву «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.  
...