Witam! Pisząc zwykłe przesuwanie się "X" po mapie w konsoli natrafiłem na problem. Zamieniają mi się klawisze tak jakby. na pewno coś na odwrót napisałem. Proszę o przejrzenie kodu:
int x = 1, y = 1;
int map[10][10];
void move(int _x, int _y)
{
map[x][y] = 0; //likwidacja starego
x = _x; //aktualizacja pozycji na nowe
y = _y;
map[x][y] = 1; //postawienie nowego
}
int main()
{
char choice;
while (choice != 'q')
{
system("CLS");
for (int _x = 1; _x <= 10; _x++) //pętla x (tak mi się wydaję ;p)
{
for (int _y = 1; _y <= 10; _y++) //pętla y
{
if (map[_x][_y] == 1) cout << "X"; //czyżby tu coś nie tak?
else cout << ".";
}
cout << endl;
}
cout << endl;
cout << "Wprowadz kierunek ruchu (w, a, s, d): ";
choice = getch();
switch(choice)
{
case 'w': move(x, y - 1); break; //wydaję mi się że tak powinno być, zgodnie z prawami układu współrzędnych
case 's': move(x, y + 1); break;
case 'a': move(x - 1, y); break;
case 'd': move(x + 1, y); break;
case 'q': return 1;
}
}
return 0;
}
Nie wiem co o tym myśleć. Proszę o pomoc.
Pragnę dodać, że przy poruszaniu się np. w górę "X" mi idzie na bok. To samo w bok leci po osi Y. ;(