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

Ocena MiniGry C++

0 głosów
680 wizyt
pytanie zadane 8 lipca 2016 w Nasze projekty przez MultiGumis Początkujący (330 p.)
Witam! Stworzyłem MiniGrę w C++, polega ona na tym, że program pyta nas o wynik danego działania matematycznego (np. 3+12, 100-25, 3*20, 20/5 itd.), naszym zadaniem jest udzielenie poprawnej odpowiedzi, jeśli udzielimy poprawnej odpowiedzi to zdobywamy punkt, na koniec wyświetlana jest informacja o tym na ile pytań udzieliliśmy poprawnej odpowiedzi. Program ma 3 poziomy trudności, możemy utworzyć także swój poziom trudności. Program zabezpieczyłem też przed możliwością pisania czegoś innego niż liczb, więc jeśli wpiszemy np. literę to program się nie wysypie tylko każe nam wpisać liczbę. Proszę o ocenę tego programu oraz o ewentualne wskazówki, rady czy coś ulepszyć. Jest to mój pierwszy trochę większy projekt więc proszę o wyrozumiałość. Oto kod: http://wklej.org/id/2708781/
komentarz 8 lipca 2016 przez DragonCoder Nałogowiec (36,500 p.)
Rozbij to na pliki, będzie czytelniejsze
komentarz 8 lipca 2016 przez erx700 Gaduła (3,430 p.)
Dużo powtórzeń. Wyrównywanie breaków i endlów jest niepotrzebne. Zdecyduj się czy używasz PascalCase czy underscore bo mieszasz style nawet w obrębie jednej nazwy. Funkcje są za długie.
komentarz 8 lipca 2016 przez MultiGumis Początkujący (330 p.)

@ erx700 Dzięki za odpowiedź, gdy znajdę czas to postaram się od nowa napisać ten kod wzorując się na poprzednim, poprawię wtedy błędy itp. Czemu wyrównywanie breaków i endlów jest niepotrzebne? Przecież kod jest wtedy o wiele czytelniejszy

komentarz 8 lipca 2016 przez MultiGumis Początkujący (330 p.)

@ krrr123  Niestety jeszcze nie wiem jak się to robi (Choć podejrzewam, że to nic trudnego), ale gdy się nauczę to zrobię to.

2 odpowiedzi

+2 głosów
odpowiedź 8 lipca 2016 przez niezalogowany
wybrane 8 lipca 2016 przez MultiGumis
 
Najlepsza

Nie jest źle jak na osobę początkującą, ale da się to napisać lepiej.

Przede wszystkim: można podać tekst w miejscu gdzie program spodziewa się liczby (testowane na Linuxie, kompilowane pod g++), podobnie program się sypie gdy poda się liczbę zmiennoprzecinkową,

(uwaga: kod był typowy pod Windowsa więc przeszedł parę modyfikacji: [link])

Jeżeli chodzi o sam kod, to rzeczy które można się przyczepić (wypisuje jedynie pierwsze wystąpienie danego błędu):

  • skoro to kod C++ więc nie stosuj nagłówków '*.h', lecz zaczynające się od 'c*', np nie stosuj <time.h>, lecz <ctime>
  • linia 38 (względem oryginalnego kodu) nieskończona pętla, którą spokojnie można było zastąpić ładnym warunkiem
  • linia 65 - wiele instrukcji w jednej linii
  • linia 69 - zastosowanie exit(0), [1]
  • linia 79 - system("cls")
  • linia 98 - brak konsekwencji we wcięciach, np linia 97 należąca do tego samego bloku co l98 ma wcięcie składające się z 4 spacji, podczas gdy 98 ma 1 dodatkowe wcięcie, czyli 8 spacji
  • linia 103 - nie ma to sensu, "punkty" to zmienna lokalna więc i tak jest niszczona
  • linia 269 - brak konsekwencji w stylu pisania funkcji, np poprzednia funkcja jest nazwana przy użyciu snake_case, podczas gdy w tej linii mamy nagle CamelCase
  • linia 271 - potencjalny błąd, tutaj używasz AND jako operację na bitach, powinno być && w warunkach zamiast &, wtedy nawiasy przestaną być potrzebne

Te rzeczy jakoś mocno rzuciły się w oczy

komentarz 8 lipca 2016 przez MultiGumis Początkujący (330 p.)
Dziękuję bardzo za tak szczegółową odpowiedź, gdy znajdę czas to poprawię.

Dziwne, że można podać tekst w miejscu gdzie program spodziewa się liczby i program się sypie, u mnie gdy tak zrobię to wyświetla się komunikakt , żeby podać liczbę. No ale jak mówisz testujesz na Linuxie, więc może być trochę inaczej.
komentarz 8 lipca 2016 przez MultiGumis Początkujący (330 p.)
A czemu nie mogę używać system("cls")? Jak mam inaczej wyczyścić ekran?
komentarz 8 lipca 2016 przez niezalogowany
komentarz 8 lipca 2016 przez MultiGumis Początkujący (330 p.)
Ok, dzięki
0 głosów
odpowiedź 8 lipca 2016 przez mrdropex Początkujący (430 p.)
ciekawe, ciekawe..

Podobne pytania

0 głosów
2 odpowiedzi 519 wizyt
pytanie zadane 13 grudnia 2017 w Nasze projekty przez DungeonCrawler Początkujący (260 p.)
+7 głosów
2 odpowiedzi 376 wizyt
pytanie zadane 26 kwietnia 2017 w Nasze projekty przez JojololomenPL Bywalec (2,580 p.)
+1 głos
2 odpowiedzi 518 wizyt
pytanie zadane 20 marca 2017 w Nasze projekty przez QizmoPL Stary wyjadacz (11,440 p.)

93,428 zapytań

142,423 odpowiedzi

322,652 komentarzy

62,789 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...