Powiekszanie ogona w "snake-u"
Ostatnio zmodyfikowano 2018-06-14 00:34
qwertyui Temat założony przez niniejszego użytkownika |
Powiekszanie ogona w "snake-u" » 2018-06-13 22:49:57 Witam. Mam problem z okodowaniem snake'a w taki sposob, aby przy kazdym zjedzonym owocu, jego ogon rosl o jedno pole i jednoczesnie byl interaktywna czescia gry (nie tylko graficzna reprezentacja) tzn. ze kiedy glowa znajdzie sie w miejscu ogona to gra powinna odpowiednio zareagowac. Drugim i rownie waznym problemem jest to, aby ogon sie nie bugowal przy scianie (pozostawia 'x', a nie powinno tak byc). Prosilbym o jakas porade jak sie do tego zabrac, bo na ta chwile jestem w stanie rozudowac ogon tylko do 2 jednostek. Z gory dziekuje. int main() { int x = 9, y = 6, jablkox[ 50 ], jablkoy[ 50 ], punkty = 1; char znak; cout << "Nacisnij dowolny klawisz, aby rozpoczac!" << endl; getch(); while( true ) { int kierunek = 4, i = 0; x = 9; y = 6; generuj_pole(); generuj_owoce( jablkox, jablkoy, 50 ); gotoxy( jablkox[ 0 ], jablkoy[ 0 ] ); cout << "X"; for(;; ) { switch( kierunek ) { case 1: gotoxy( x, y + punkty ); break; case 2: gotoxy( x, y - punkty ); break; case 3: gotoxy( x + punkty, y ); break; case 4: gotoxy( x - punkty, y ); break; } cout << " "; gotoxy( x, y ); cout << "x"; if(( x == jablkox[ i ] && y == jablkoy[ i ] ) ) { gotoxy( jablkox[ i + 1 ], jablkoy[ i + 1 ] ); cout << "X"; punkty++; i++; gotoxy( x, y ); } if( kbhit() ) { znak = getch(); switch( znak ) { case 'w': kierunek = 1; break; case 's': kierunek = 2; break; case 'a': kierunek = 3; break; case 'd': kierunek = 4; break; case 'W': kierunek = 1; break; case 'S': kierunek = 2; break; case 'A': kierunek = 3; break; case 'D': kierunek = 4; break; } } switch( kierunek ) { case 1: y--; break; case 2: y++; break; case 3: x--; break; case 4: x++; break; } gotoxy( x, y ); cout << "x"; if( !sprawdz( x, y ) ) break; Sleep( 300 ); } } return 0; }
|
|
pekfos |
» 2018-06-14 00:34:32 Gdzieś musisz przechowywać informacje, na których polach znajduje się ogon węża. |
|
« 1 » |