[C#] Snake - Wasze opinie i uwagi

Własne projekty oraz implementacje.

Moderator: xxSlayeRxx

[C#] Snake - Wasze opinie i uwagi

Sponsor

Sponsor
 

[C#] Snake - Wasze opinie i uwagi

Postprzez XardasLord » Wt gru 03, 2013 1:47 pm

Witam,

Jest to moja druga gierka napisana w c# w konsoli (poprzednia to kółko i krzyżyk, również wstawiałem ją tutaj na forum i udzielaliście mi WIELU przydatnych informacji, także postanowiłem pokazać Wam i ten projekcik).

Gra na razie nie ma żadnego menu, tylko od razu się uruchamia i poruszamy się klawiszami WSAD. Ale uważam, że jest grywalna, ponieważ wszystkie możliwe kolizje zostały sprawdzone (jeśli o czymś zapomniałem to proszę dajcie mi znać). Oczywiście pisząc ją starałem się pisać ją w pełni obiektowo. Miałem całkiem spory problem, by jakoś inaczej wybrnąć z kwestii wydłużania się węża przy zjedzeniu jabłuszka. Wiem, że rozwiązałem to w sposób bardzo prymitywny i niezgodny z zasadą programowania obiektowego, ale inaczej po prostu nie potrafiłem tego zrobić. W kodzie jest dość obszerny komentarz w tym miejscu z dokładniejszym wyjaśnieniem.

Chciałbym bardzo, abyście wytknęli mi wszelkie błędy i dali pomocne wskazówki, jeśli to tylko możliwe.

PS. i jeszcze jedno. Jak można obejść inaczej te czyszczenie ekrany, żeby tak wszystko nie migało?

W załączeniu przesyłam swój projekt (kod źródłowy + exe).

Pozdrawiam
Załączniki
Snake ver. 1.0.zip
(95.43 KiB) Pobrane 327 razy
XardasLord
Member
 
Posty: 14
Dołączył(a): Pt lis 01, 2013 1:48 pm

Re: [C#] Snake - Wasze opinie i uwagi

Postprzez XardasLord » Wt gru 03, 2013 10:47 pm

SNAKE ver. 1.1
- ulepszone rysowanie mapy (brak odświeżania konsoli)
- dodany dźwięk przy zjedzeniu jabłuszka oraz przy zginięciu
- dodane menu gry

Jeszcze brakuje zabezpieczenia przed naciśnięciem innego klawisza podczas gry. Więc jeśli coś, grajcie WSAD :)
Załączniki
Snake ver. 1.1.zip
(94 KiB) Pobrane 322 razy
XardasLord
Member
 
Posty: 14
Dołączył(a): Pt lis 01, 2013 1:48 pm

Re: [C#] Snake - Wasze opinie i uwagi

Postprzez DariuszR » Śr gru 04, 2013 6:13 pm

Można by pomyśleć o zabezpieczeniu przed wciśnięciem niewłaściwego klawisza, testowałem na Thread.Sleep = 20 ms w kodzie, dla mnie wąż porusza się za szybko, przy 200 ms jest OK. Można by wprowadzić opcje ustawiania szybkości poruszania się węża i może jego długości.

Gdzieś tam coś się wywala taki komunikat: Indeks wykraczał poza granice tablicy w przypadku gdy np. wąż doleci do lewej ściany i zakończy się gra, kiedy zechcę zagrać ponownie to wywala się ten błąd.

Jak przejdziesz na aplikacje okienkowe i będziesz obsługiwał kod jakichś zdarzeń lepiej zamiast Exception e w catch napisać: Exception ex, e może oznaczać EventArgs więc mogą być problemy. I potem używasz ex.Message w komunikatach. Warto zastanowić się nad logowaniem błędów do jakiegoś pliku tekstowego.

Najprościej:

Kod: Zaznacz cały
using System.IO;
//----------------------
try
{
    //jakieś tam operacje
}
catch (Exception ex)
{
    Console.WriteLine(String.Format("Wystąpił błąd w programie: {0}", ex.Message));
    File.AppendAllText("error.log", String.Format("Zdarzenie: nowa gra. Wystąpił błąd w programie: {0}\r\n", ex.Message));
}


Warto zastanowić się nad zgłaszaniem wyjątków jeżeli np. przekazujesz w jakiejś metodzie jakiś obiekt jako argument, ewentualnie zmienną, np. jeśli mniejsza od zera to zgłaszasz throw new ArgumentException("Zmienna a mniejsza od zera"). Chodzi o to żeby było dość prosto wykryć co konkretnie może powodować błędy. Np. jak jakaś klasa Map map jest NULL to też należałoby pomyśleć o jakimś zgłaszaniu wyjątków.
DariuszR
Member
 
Posty: 43
Dołączył(a): So paź 05, 2013 3:38 pm

Re: [C#] Snake - Wasze opinie i uwagi

Sponsors

Sponsor
 


Powrót do Projekty i kody źródłowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości