nie działa switch strzałka w górę

0

Witam,
Oto fragment mojego kodu:

//ludek
                                int a=11, b=15;
                                move(a,b);
                                printw(LUDEK);
                                move(a,b);
    
    int klawisz,
    cbreak();
    noecho();
  
  klawisz=getch();
  
  while (klawisz != ERR ) {

		switch (klawisz) {
			case KEY_UP:
				if ( ((a==9) && (b==12||b==13||b==14||b==19||b==20)) || ((a==10) && (b==12||b==13||b==14||b==19||b==20)) || ((a==11) && (b==12||b==12||b==14||b==15||b==16||b==17||b==19||b==20)) || ((a==12) && (b==12||b==15||b==16||b==17||b==19||b==20)) || ((a==13) && (b==12||b==15||b==16||b==17||b==18||b==19||b==20)) )
  
                   {a==a-1; move(a,b); printw(LUDEK);}
                   else break;
                    

Czy ktoś potrafi powiedzieć dlaczego to nie działa?

0

Nikt nie potrafi:

  1. za mało kodu
  2. kod nieczytelny
  3. za mało informacji na temat działania funkcji

Dopisz printfy/couty, żeby sprawdzić, czy te instrukcje w ogóle się wykonują, bo ten warunek jest tragiczny i łatwo w nim się pogubić.

0

A ja potrafię :-D

to:
a==a-1;
zamień na:
--a;

0

nie widać czym jest u ciebie KEY_UP, a pewnie ma złą wartość.

użyj tego programu żeby zobaczyć co zwracają poszczególne klawisze. wyjście Escape'em.

#include <conio.h>
#include <stdio.h>

int main()
{
  int klawisz = 0;
  while(klawisz != 27)
  {
      klawisz = getch();
      printf("%d ",klawisz);
  }
}

niespodzianka: klawisze specjalne działają jak dwa naciśnięcia.

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