enum DIRECTION {DIR_UP=38, DIR_DOWN=40, DIR_LEFT=37, DIR_RIGHT=39};
DIRECTION Kierunek = pobierzkierunek();
int pobierzkierunek() { int kierunek; kierunek = getch(); return kierunek; }
@Lorak, post #1
kierunek = (DIRECTION)getch();W ten sposób niejako zdejmujesz z kompilatora odpowiedzialność za to co się stanie jeżeli wartość będzie spoza zakresu. Rozwiązaniem bardziej eleganckim (choć niekoniecznie najszybszym) byłoby napisanie czegoś takiego:
DIRECTION pobierzkierunek() { switch(getch()) { case 37: return DIR_LEFT; case 38: return DIR_UP; case 39: return DIR_RIGHT; case 40: return DIR_DOWN; default: /* no i tu właśnie mamy problem, właściwie należałoby rzucić wyjątkiem... albo dodać DIR_WRONG i jakoś to potem obsłużyć. */ } }
@Lorak, post #5
@smith, post #6
@AmiChris, post #7