[c++] Snake w konsoli

0

Witam. Jak na razie programuje tylko w konsoli. Napisalem starego dobrego snake'a, jednak jest problem przy czyszczeniu ekranu i wszystko miga. Czytalem cos o podwojnym buforowaniu ale to w aplikacjach okienkowych i tu moje pytanie jakie biblioteki graficzne pod dosa albo sposb na to miganie polecacie?? W ogole jest zawracanie sobie tym glowy, czy moze lepiej nauczyc sie jakis bibliotek pod windows? Czytalem ze allegro jest dosyc proste i chyba od niego zaczne.

Snake w fazie testow. Prosze o wszelkie uwagi. Finalnie zamierzam zrobic menu i liste najlepszych wynikow.

0

Może nie czyść ekranu tylko od razu nadpisuj zawartość.

0

Chłopie, czasy DOS'a to juz przeżytek. Po co Ci biblioteki graficzne pod DOS'a? Konsola to jest fajna, ale nie w cmd.exe pod Win. Skoro jesteś Windowsiarzem, to powinieneś tworzyć aplikacje niekorzystające z konsoli - chyba, że do debugowania:D
Zadaj sobie pytanie, kto bedzie gral w Twojego konsolowego snake'a, skoro istnieje tyle ladnych graficznych snake'ów?

Skoro już piszesz amatorską grę, to powinieneś ją pisać tak, aby można ją było łatwo przeportować na Linuksa - co zapewni Ci więcej użytkowników. Allegro jest co prawda, przenośną biblioteką, ale ja bym wybrał SDL.

0

Nie używaj system("cls"), to przez to ekran Ci miga. Tak jak pisał lukasz1235 spróbuj nadpisywania, użyj powrotu karetki, ustaw na (0,0). Jeśli to nie pomoże przyjrzyj się NCURSES

0

Ałć faktycznie fatalnie się w to gra gdy wszystko miga. Powiedz trochę więcej o tym jak to napisałeś to łatwiej będzie podać najprostsze rozwiązanie. Umieszczanie samego pliku .exe nie mówi wiele.

Istotnym ułatwieniem jest tu fakt, że nie musisz wyświetlać za każdym razem całej planszy od nowa, a jedynie nanosić zmianę. Zrób wątek, który będzie sprawdzał (co jakiś czas - np. 250 ms) czy nastąpiła zmiana na planszy i nadpisywał tylko zmienione pola. Drugi wątek natomiast może odpowiadać za odbieranie akcji gracza.

0

Uzylem funkcji gotoxy(). Troche kod poprawilem bo mialem bajzel w nim, dodalem kolory uzywajac console.h tak dla symbolicznego szpanu ;p To jest moja pierwsza gra wiec wiem ze pewnie kod jest nieoptymalny, ale moze komus sie przyda na przyszlosc, dlatego tez wrzucam. Projekt napisany w code::blocks.

0

Ściągnąłem kod i zobaczyłem... kilka uwag jeśli można:

  • niepotrzebne komentarze w oczywistych miejscach
  • zacznij robić porządne wcięcia i formatuj kod jednolicie
  • nie zwalniasz dynamicznie przydzielonej pamięci (waz.cpp), co więcej "cieknie" ci przy każdym zwiększaniu węża (śmiesznie to brzmi ;p)
    Ogólnie twój kod nie jest za ładny i robisz dużo błędów (w tym niebezpieczny wyciek) jednak widać, że dopiero się uczysz dlatego też masz takie prawo, przemyśl swój kod i spróbuj go poprawić. Czekam na poprawioną wersję :)
0

Heh, no racja zawsze destruktory na koniec zostawialem bo ich nie lubie i zapomnialem. A wiec dodane (mam nadzieje ze nie dobrze je napisalem), kod bardziej przejrzysty. Teraz moze sprobuje napisac jakiegos tetrisa. pozdro

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