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