Niedawno wpadłem na pomysł napisania jakiejś gry. Dawno niczego „twórczego” nie pisałem, a i pomysł akurat się przyplątał – napisać snake`a pod konsolę, dla treningu.
Żeby maksymalnie uprościć sobie pracę, wybrałem bibliotekę ncurses do obsługi klawiatury i ekranu. Wszystkie metody i pola wrzuciłem w klasę, dla czytelności i prostszych ewentualnych modyfikacji. Jakichś specjalnych rozwiązań brak, bo w końcu temat oklepany, jednak starałem się pisać i wymyślać wszystko od zera. Główna pętla chodzi na liczniku z użyciem clock(), wąż jest reprezentowany w pamięci jako lista jednokierunkowa. Kodziłem sobie we wdzięcznym IDE o nazwie Code::Blocks.
From Snake |
Obecna wersja to 0.5, lecz w zasadzie nie mam już pomysłów na jakieś nowe funkcje w tej grze. Różnice w stosunku do poprzednich wersji można śledzić w changelogu. Kod jest w miarę uporządkowany, można się przyczepić do mieszania języków w nazwach zmiennych, ale może to poprawię kiedyś.
Co do licencji, to nie myślałem nad tym dłużej, dlatego nie widzę problemu w wykorzystywaniu źródeł w różnych celach, jeżeli ktoś się będzie bawił w modyfikacje, to proszę tylko o umieszczenie informacji o autorze.
Oto link do pobrania źródeł (jest to paczka z projektem Code::Blocks, plik źródłowy to main.cpp):
Z góry dziękuję za wszelkie sugestie w komentarzach. 😉
Łiitam, mój snake miał kolorki!
Nie widziałem Twojego snake’a, poka! ;d
http://files.mgorny.alt.pl/tmp/snake.c
Tyż fajny, ale IMO ta zabawa z timerami nieptorzebna.
Lepsza zabawa z timerami niż pętelka która zjada 100% procka. use poll()
darkjames: Snake Michała jest na timerach, a mierniki zużycia procesora nie wykazują żadnej różnicy między jego snake’em a moim.
Pokazujecie sobie węże panowie? Też poszpanuję http://wklej.org/hash/c0ad756218/
To ja czekam na snake’a napisanego w bashu ;o~
A multiplayer po sieci jest? Może pomyślcie o MMO-Snake 🙂
Aleś ty zdolny 😉