Hazardzista - Moja 1 gra C++

3

Cześć, wczoraj skończyłem moją pierwszą grę C++. Nie jest może ona jakaś super, ale miałem taki pomysł i ciesze się, że udało mi się go zrealizować w 100%. Chciałem by moja pierwsza gra to było coś innego niż kółko i krzyżyk, czy snake. Chciałbym was prosić abyście ocenili dwie rzeczy:

  1. Samą grę (mając na uwadze, że to moja pierwsza :) ),
  2. Kod gry.
    Co do punktu drugiego liczę na jakieś wskazówki i podpowiedzi co muszę zmienić w swoim programowaniu natychmiast, a nad czym muszę ostro popracować. Mam nadzieję, że nie będzie to wszystko. ;)
    Załączam projekt w codeblock, hazardzista.exe, oraz 3 pliki txt z kodem źródłowym.

Pozdrawiam. :)

@Edit na prośbę użytkownika fasadin dodaję wersję zip. :)

0

Nie kapuję tej gry.
miałem 1000euro i wybrałem 10 liczb i żadnej nie trafiłem. :/

1
int stan; // 0 - nie wybrana; 1 - wybrana

bool!

bool PojedynczyGracz()

Caalutki kod znajduje się liniowo, w tej jednej funkcji. Fuj, podziel to na mniejsze funkcje.

3
#include <time.h>
#include <ctime>
#include <windows.h> // system (), sleep()
GraPlansza a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6,c1,c2,c3,c4,c5,c6,d1,d2,d3,d4,d5,d6,e1,e2,e3,e4,e5,e6;
  1. Inicjalizacja powinna byc w tablicy.

Sorry dalej zwatpilem, DRY! DRY! DRY! wkuj sobie to do glowki.

Podsumowujac 1500 linii kodu, ktore pewnie mozna by bylo zapisac w 100.

@edit2: Nastepnym razem powywalaj te wszystkie smieci z katalogow, daj same zrodla i makefile'a, albo readme z opisem kompilacji.

0

spartanPAGE - Co do zmiennej to prawda, powinienem bool zastosować również w innych przypadkach, dzięki za wytknięcie tak głupiego i oczywistego błędu. :) Co do dzielenia kodu to mam pytanie. Jak podzielę kod na mniejsze funkcje to te mniejsze funkcje muszą się znajdować w kodzie nad tą jedną, główną co mam teraz?

n0name_l - dzięki, nie rozumiem tylko, dlaczego include <windows.h> jest błędem?

Polecalibyście wziąć wasze uwagi do serca już przy tworzeniu nowego projektu czy może mam zedytować i poprawić ten? A może zacząć zupełnie od nowa?

0
  1. Gra nudna
  2. Łatwa
  3. Nie można postawić więcej na jedną cyfre a szkoda :D
  4. Co masz do snake? Właśnie robie ale za pomoca bilioteki a nie w terminalu :P
  5. Kodu nie oceniam gdyż nie ogarniam zbytnio c++, tyle co poczytać a rady to raczej nie ode mnie.
  6. ZA NUDNA
1

jedna funkcja nie powinna mieć więcej niż 20-30 linii, a twoja funkcja PojedynczyGracz() zajmuje 1300 linii i ma w sobie tyle logiki, że głowa boli.
Pojedziesz na wakacje, wrócisz i nie będziesz mógł cokolwiek z tego zrozumieć mimo, że jesteś autorem.
Gdy spróbujesz trochę zmienić zasady (np dodać ując liczbę), to urobisz się po łokcie i to zakładając, że niczego przy okazji nie zapasujesz.
Tak jak napisał n0name_l DRY (Don't Repeat Yourself) do tego KISS (Keep It Simle Stupid).
Poczytaj też o co chodzi z "Magic Numbers".

2

Przegrałem ;s

2

Dziel kod na mniejsze części! Na przykład:

  • Console - klasa do obsługi konsoli (ustaw kursor, ustaw kolor, wypisz, odczytaj...)
  • Input - klasa do obsługi sterowania
  • Player - klasa do obsługi gracza (ile ma kasy, zwieksz kase, zmniejsz kase...)
  • Screen - klasa wyświetlająca poszczególne ekrany (menu, ekran wprowadzania imienia, ekran gry itd.)
  • etc.
2

taka ruletka dla ubogich ;)

kod tej gry utworzyłeś jakimś generatorem kodu?
btw - snake mi się wydaje jendka kilka poziomów wyżej niż ta gra

1

Sorki, że dopiero teraz, ale robota mi się zwaliła na głowę. :P
Dzięki wszystkim za uwagi, biorę je do serca, uczę się i ruszam dalej. :)

0

Trzeba być nieźle zapartym aby aż tyle warunków napisać w jednej funkcji :)

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