Witam, mój problem polega na tym, iż napisałem program do poruszania kursorem po określonej płaszczyźnie w konsoli, chciałbym aby po wciśnięciu klawisza enter (lub innego jakiegokolwiek klawisza) zapisał to położenie i wyświetlał w tym miejscu również symbol kursora, wraz z późniejszym jego położeniem, a po wciśnięciu enter nic się nie dzieje :( ...
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{ int x=1,y=2;//współrzędne pierwszego punktu
int rx[10],ry[10];//współrzędne zapisanego punktu
char kierunek;
char pole[10][10];//tablice współrzędnych mapy
unsigned char znak;
int enter =0;
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
{
pole[i][j]='p';//wypełnienie mapy tłem dla kursora
}
do
{
znak = getch();
system("cls");//czyszczenie ekranu
std::cout << "znak: '" << znak;
if(znak==224)//pobranie strzalki z klawiatury i układ sterowania kursorem
{{
znak=getch();
if(znak==72)kierunek='u';
if(znak==80)kierunek='d';
if(znak==75)kierunek='l';
if(znak==77)kierunek='r';
}
if (kierunek=='u')
{
y--;
if(y<0)y=0;
kierunek=0;
}
if (kierunek=='d')
{
y++;
if(y>9)y=9;
kierunek=0;
}
if (kierunek=='l')
{
x--;
if(x<0)x=0;
kierunek=0;
}
if (kierunek=='r')
{
x++;
if(x>9)x=9;
kierunek=0;
}}
else if(znak==13)//jeżeli wciśnięty znak to nie strzałka tylko enter, to zapisanie wartości kursora do tablic ry i rx, przypisanie do mapy na stale wartości 'e' , w danym punkcie
{
rx[enter]=x;
ry[enter]=y;
pole[ry[enter]][rx[enter]]='e';
enter++;
}
for(int i=0;i<10;i++)//przypisanie, współrzędnych kursora do mapy
for(int j=0;j<10;j++)
{
if(pole[i][j]!='x'||pole[i][j]!='e')
pole[i][j]='p';
if(i==y&&j==x&&pole[i][j]!='e')
pole[i][j]='x';
}
for(int i=0;i<10;i++)//rysowanie kursora w miejscu obecnym, a także zapisanych po wcisnieciu enter jego poprzednich wpółrzędnych
{cout<<endl;
for(int j=0; j<10;j++)
{
if(pole[i][j]=='x'||pole[i][j]=='e')cout<<"i";//kursor
else
cout<<"O";//tło
}}
}while( znak != 27 ); //ESC
return( 0 );
}