Jak zrobić snake'a? - użycie pętli
Ostatnio zmodyfikowano 2009-01-03 00:33
lynx |
» 2009-01-02 23:23:47 Mam do Ciebie pytanie. Dlaczego nie sprawdziłeś mojego fragmentu kodu a prosisz o pomoc?? Mój fragment kodu działa dobrze a oto przykładowy program z użyciem jego fragmentu: #include <iostream> #include<conio.h> using namespace std; int main() { while( 1 == 1 ) { if( kbhit() == true ) { char x = getch(); cout << "Wcisnieto klawisz: " << x << "\n"; } } }
|
|
Patzick |
» 2009-01-02 23:26:06 to wada edytowania postów ;) jak już jest nowy post nie ma sensu edytować starego, chyba, że jest wybitna potrzeba :)
//EDIT chyba, że to wyszczególnisz ;)
//EDIT2 ja ze swojej strony zauważyłem błąd zamiast kbhit == 1 powinno być kbhit == true tak jak podał Pietrzuch :) zapomniałem o tym :P |
|
zori Temat założony przez niniejszego użytkownika |
» 2009-01-02 23:30:52 Chodzi o to że ten kod sie nie nadaje do tego co chce zrobic. Teraz dopiero go sprawdziłem ale i tak jest jak myślałem nie przyda sie ale dzięki za chęci. Mi chodzi o to że petla ma nie patrzec czy ty coś wcisnołes czy nie jesli nic nowego nei wcisnołeś to bedzie jak przy poprzednim wykonaniu petli. Czyli jak wąż szedł w prawo to dalej pujdzie w prawo. A jak np wcisne strzalke w góre to wąż zmieni kierunek i bedzie teraz cały czas szedł w góry. Cos mi sie wydaje jak bys nigdy nie grał w Snejka ale chyba w to każyd grał bo fajna i prosta gierka :P |
|
lynx |
» 2009-01-02 23:33:01 Troche zbaczamy od tematu, ale to wszystko jedno czy zapiszesz tak: if( kbhit() == 1 ) czy if( kbhit() == true ) lub nawet if( kbhit() ) /edit1:Przecież masz główną nieskończoną pętelę, która nie patrzy czy jest wciśnięty klawisz czy nie. ;) /edit2:dopuki nic nie wcisniemy to pokazuje 0 jak cos nacisne to pokazuje 1 juz w nieskończoność. |
Co do tego to jest to spowodowane tym, że jak raz bufor zostanie nadpisany to sam się nie czyści. :) W if-ie z kbhit-em dopisz: |
|
zori Temat założony przez niniejszego użytkownika |
» 2009-01-02 23:40:47 Ten mój przykład to był przykładowy i wiem ze tej pętli nie było sposobu zakończyc oprucz wciścnięcia zamknij. Ale wracając do tematu wie ktoś jak by zrobic takiego snake-a??
/edit co do tego fflush(stdin) nie działa mi to :( |
|
Patzick |
» 2009-01-02 23:41:49 rozwiązanie podajemy Ci dobre ale jak trzeba char z;
while( snake == chodzi ) { if( kbhit() == true ) { z = getch(); return z; }; if( z == a ) { lewo; }; if( z == w ) { gora; }; if( z == 0 ) { }; z = 0; };
To tylko pomysł, nie gotowy kod więc musisz sobie wszystko podostawiać sam. //EDIT Pietrzuch zgłupiałem na moment i pokićkało mi się że źle podałem ;) zori temat był inny "kbhit()" a nie "jak zrobić snake'a" podaliśmy Ci i tak jak wykorzystać tą funkcję, musiałbyś sam pomyśleć nad rozwiązaniem- ja i tak dałem Ci przykładowe, mam nadzieję że już jasne |
|
zori Temat założony przez niniejszego użytkownika |
» 2009-01-02 23:45:30 Jasne wszystko sam zrobie tylko tej jednej rzeczy nie wiedzaiałem zaraz sprawdze twój kod i zobaczymy. :)
/edit Sorki troszke wam namieszałem. |
|
lynx |
» 2009-01-02 23:50:59 Fflush(stdin) działa dobrze bo sprawdzałem. Po za tym co by się działo jakby każda osoba zmieniała po chwili nazwę swojego tematu na nowy mówiący z czym ma aktualnie problem, co by się działo z poprzednimi postami?? Sorry ja się poddaje. ;) |
|
1 « 2 » 3 |