• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pierwsza gra / ocena

VPS Starter Arubacloud
0 głosów
371 wizyt
pytanie zadane 12 maja 2017 w Nasze projekty przez Chlebojad Nowicjusz (190 p.)
edycja 12 maja 2017 przez Chlebojad
Witam, stworzyłem swoją pierwszą grę. Jest tekstowa i zawiera mało contentu co nie zmienia faktu że pisałem ją 4 godziny xD Chciałbym poznać opinie dot. rozwiązań zawartych w grze, czy ma to przyszłość? Mam zamiar trochę ją rozwinąć i zrobić z niej coś w rodzaju Sword And Sandals tylko w formie tekstowej. Mam zamiar zacząć od tej tekstówki, a potem czas zobaczy, może przerzucę się na jakiś silnik i tam coś zrobię :) Dodatkowo tak dla testu dodałem licencje freeware.

http://www.mediafire.com/file/4e823do47z7wzjw/Pierwsza_giera.rar

GIT: https://github.com/Chlebojad/Wojownicy-z-Polani
komentarz 12 maja 2017 przez niezalogowany
Wrzuć źródła na jakieś repo, np https://github.com/
komentarz 12 maja 2017 przez Chlebojad Nowicjusz (190 p.)
dodałem

2 odpowiedzi

+1 głos
odpowiedź 12 maja 2017 przez Mateusz Patalan Bywalec (2,140 p.)
Coś jest nie tak z druga opcją: nie mogę drugi raz walczyć o złoto na arenie i wywala mnie do miasta.

Tak poza tym jest potencjał: Po przejściu na tryb graficzny, miałoby to szanse.
komentarz 12 maja 2017 przez Chlebojad Nowicjusz (190 p.)
Hah dzięki zapomniałem przywrócić przeciwnikowi 100 życia i z automatu wygrywasz xD, na tryb graficzny to mógłbym zrobić 2 część bo nie za bardzo wiem jak bym miał to przerzucić do jakiegoś silnika.
+1 głos
odpowiedź 12 maja 2017 przez niezalogowany

Co do kodu to mam parę uwag:

  • [nr linii] <komentarz> http://stackoverflow.com/a/6474774
  • [7] globalny using namespace to zła praktyka
  • [10] zmienne globalne w takim kodzie są "złem" https://forum.pasja-informatyki.pl/75694/zmienne-globalne-za-i-przeciw?show=75782#a75782
  • [10] hoisting zmiennych to zaszłość sprzed standardu ANSI C89. w C++ przyjęło się deklarować zmienne leniwie (a więc dopiero przed momentem gdy trzeba użyć danej zmiennej)
  • [16] nieskończona pętla jest bardzo nieelegancka, powinieneś raczej zastosować konstrukcję korzystającą z flagi mówiącej o zakończeniu działania kodu (przykład Listing 1)
  • [32] system("cls"); kompatybilność tylko z Windows, bardzo nieładne czyszczenie konsoli (potencjalnie bez zgody użytkownika)
  • [49] goto jest ok, ale tylko dla kernelowców Linuxa: https://stackoverflow.com/questions/3517726/what-is-wrong-with-using-goto
  • [114-119] (przykładowa linia) mało estetycznie wyglądający kod
  • [159] Sleep na głównym wątku = nieresponsywny program => zła praktyka (zaniedbany User-Experience)

Listing 1

/* zamiast tego:
for(;;) //Nieskonczona petla
{
   ...
   if(...) break;)
}


użyj: */
bool isExit = true;
while (!isExit) {
  if (...) {
    is_exit = true;
  }
}

W swoich uwagach pominąłem (ze względu na niski poziom zaawansowania):

  • niejednolity styl nazewnictwa
  • polskie nazwy zmiennych
  • zasada "1 instrukcja = 1 linia kodu"
  • sporo redundantnego kodu, ale skoro piszesz wszytko w main to pewnie jeszcze nie doszedłeś do funkcji, więc można to jeszcze wybaczyć
komentarz 12 maja 2017 przez Dexterim Dyskutant (8,370 p.)
Tak przy okazji wiesz może jak elegancko wyczyścić konsole?

system("cls")  nie zawsze działa nawet na Windows

Gdzieś kiedyś widziałem jak ktoś podmieniał jakoś to co jest w konsoli ale niestety nie pamiętam gdzie to było
komentarz 12 maja 2017 przez niezalogowany
Użyj liba ncursers (odpowiednik to pdcurses dla Win)
komentarz 12 maja 2017 przez Chlebojad Nowicjusz (190 p.)
Dzięki za uwagi dot. mojego kodu, tak naprawdę to jest mój pierwszy większy program, następnym razem postaram się to bardziej uporządkować bo sam się gubię. Gre zacząłem pisać gdy skończyłem 7 odc. poradnika c++ bo zacząłem się gubić i postanowiłem poćwiczyć, tak powstała ta gra.

Z tego co rozumiem masz na myśli pisanie "using namespace std;" i zmiennych mam pisać wewnątrz int main()? Nie za bardzo wiem o co chodzi dopiero zaczynam.

Głowiłem się czy da się odnieść do innego pliku niż głównego cpp, bo np. wolałbym napisać sklep w osobnym pliku niż wszystko w jednym :/
komentarz 12 maja 2017 przez niezalogowany

Z tego co rozumiem masz na myśli pisanie "using namespace std;" i zmiennych mam pisać wewnątrz int main()? Nie za bardzo wiem o co chodzi dopiero zaczynam

Tak

Głowiłem się czy da się odnieść do innego pliku niż głównego cpp, bo np. wolałbym napisać sklep w osobnym pliku niż wszystko w jednym :/

Da się, przy użyciu #include

Polecam nie skupiać się na tylko jednym źródle tutów, a korzystać z wielu (szczególnie że te od MZ nie są wybitne), np: http://cpp0x.pl/kursy/Kurs-C++/1

 

komentarz 12 maja 2017 przez TheGoldenJet Nowicjusz (130 p.)
Fajnie wszystko działa, próbowałem wpisać jakąs literę ale od razu błąd wychwycił. Jednej tylko rzeczy nie dopracowałeś, gdy wpisałem liczbę np. 32 gdzie nie ma takiej instrukcji to muszę czekać te 3 sekundy jak przy tym gdy walczę ale tak to nic :)

Podobne pytania

+4 głosów
2 odpowiedzi 398 wizyt
+3 głosów
7 odpowiedzi 1,203 wizyt
pytanie zadane 5 czerwca 2017 w Rozwój zawodowy, nauka, praca przez mix923 Początkujący (450 p.)
+2 głosów
0 odpowiedzi 191 wizyt

92,416 zapytań

141,222 odpowiedzi

318,985 komentarzy

61,831 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...