Zapisywanie pozycji kursora w konsoli

0

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 );
}
 
0

nie da się tego zrobić bez biblioteki windows.h?

0

Sorki, bardziej mi chodziło o to, czy nie dało by się tego zrobić bez żadnych dodatkowych bibliotek

0

Czyli nie da rady wdrożyć mojego toku myślenia i po prostu zapisać współrzędne do tablic pomocniczych i za ich pośrednictwem zapisać je w tablicy dwuwymiarowej?

1 użytkowników online, w tym zalogowanych: 0, gości: 1