Pisałem już tutaj w tej sprawię tydzień temu ale nie otrzymałem odpowiedzi, chyba problem nie został do końca zrozumiany. Gdy pobieram klawisz strzałki współrzędne znaku w konsoli się zmieniają. Istnieje też możliwość wykonania instrukcji default jeśli wszystkie warunki się nie spełnią. Problem polega na tym że za jednym zamachem wykonuje się instrukcja case + default. Ma to jakiś związek z postacią pobranego kursora, próbowałem dokonywać konwersji, i zamiast liter przedstawiających strzałki wpisywałem ich kody ASCII. Bezskutecznie. Dodaje kod i liczę na pomoc.
#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
void gotoxy(int x, int y);
int main()
{
char chr;
int y = 32,x = 11;
do
{
system("cls");
gotoxy(x,y);
cout << "o";
chr = getch();
switch(chr)
{
case 'H': y--; break;
case 'P': y++; break;
case 'M': x++; break;
case 'K': x--; break;
default: cout << chr; break;
}
}while( chr != 27);
}
void gotoxy(int x, int y)
{
COORD c;
c.X = x - 1;
c.Y = y - 1;
SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}