leon_w Temat założony przez niniejszego użytkownika |
[C++] konsola, Wąż - przyrastanie "ogona" » 2013-12-30 14:46:20 Nie wiem, w jaki sposób zrobić, by wąż po zjedzeniu "pokarmu" wydłużał się o jedną pozycję. Kawałek kodu: plansza( x, y, dlugosc ); pole[ kon_x ][ kon_y ] = ' '; kon_x = x, kon_y = y; pole[ kon_x ][ kon_y ] = ogon; kierunek = przycisk( x, y );
Wszystko działa, ale tylko z jedno elementowym ogonkiem. Nie mam pojęcia, jak zrobić, żeby ogon przyrastał po zjedzeniu pokarmu i jednocześnie przy obiegu pętli usuwany był jego koniec. Może ktoś doradzi jakieś ciekawe rozwiązanie. Na forum już było kilka takich węży, ale wszystkie linki do kodu wygasły. |
|
pekfos |
» 2013-12-30 16:48:27 Na forum już było kilka takich węży, ale wszystkie linki do kodu wygasły. |
Smutne, nie ma skąd skopiować.. A co z resztą tematów o wężach? (z tym samym pytaniem..) Allegro 5 snake-jak zrobić aby wąż się powiększał?Pierwszy wynik. Jakby poszukać, to by się znalazło kilkanaście identycznych (jak ten) tematów (tylko na tym forum).. |
|
leon_w Temat założony przez niniejszego użytkownika |
» 2013-12-30 17:05:37 Jak zwykle czarujący i pomocny. Ale mimo wszystko takie uwagi: Smutne, nie ma skąd skopiować.. |
zachowaj dla siebie. Na Vectorach się raczej nie znam, na zwykłych tablicach to wyjdzie? Z tego co zrozumiałem to trzeba by było zapisywać współrzędne każdej części węża i przy każdym obiegu je przesuwać. Pokombinuje, może coś wyjdzie. |
|
pekfos |
» 2013-12-30 17:14:05 Podobnie, jak pisanie, że linki do kodów wygasły. W większości tematów, odpowiedni (i wystarczający) kod jest w treści postu. Pozostałe tematy, w których kod mógłby być schowany za linkiem, to "Nasze prace" i "bezużyteczne tematy". Na Vectorach się raczej nie znam, na zwykłych tablicach to wyjdzie? | std::vector<> to, w gruncie rzeczy, jest tablica, więc na zwykłych też wyjdzie. |
|
leon_w Temat założony przez niniejszego użytkownika |
» 2013-12-30 19:55:32 Jakoś udało mi się to rozwiązać. Tablica i pętlą przesuwam każdy element o jedno pole w tablicy. Wygląda to mniej więcej tak: for( i = ile; i >= 0; i-- ) { temp = pozycja_x[ i ]; if( i > 0 ) pozycja_x[ i ] = pozycja_x[( i - 1 ) ]; else pozycja_x[ i ] = x; pozycja_x[( i - 1 ) ] = temp; temp = pozycja_y[ i ]; if( i > 0 ) pozycja_y[ i ] = pozycja_y[( i - 1 ) ]; else pozycja_y[ i ] = y; pozycja_y[( i - 1 ) ] = temp; }
Nie wiem czy o to chodziło, ale działa, chociaż po czasie program się wysypuje ale myślę, że sobie poradzę. Dzięki pekfos. Mimo że jesteś strasznie uszczypliwy, to w jakiś (niezrozumiały dla mnie)sposób pomagasz. |
|
« 1 » |