|
StrongholdNet - forum graczy Stronghold Największe polskie forum o grach z serii Stronghold. |
|
Internet i komputery - Patapon 2 Surowców Zliczacz!
DarnokOk - 20 Luty 15, 11:57 Temat postu: Patapon 2 Surowców Zliczacz! Witam bardzo serdecznie!
Przed Państwem pierwsza taka okazja zobaczenia innowacyjnego programu od ZombieDzik's Software.
A jest to...
Patapon 2 Surowców Zliczacz! (Early access)
Pewnie nie jeden raz gdy grałeś/aś w Patapony 2 naszła Cię myśl, że bardzo potrzebny byłby Ci program, który zlicza ile jeszcze potrzebujesz surowców (i jakiej rzadkości) do dziesiątego poziomu twojego Rarepona. A jak nie to i tak program jest dla Ciebie bardzo przydatny. Już więcej nie musisz się zastanawiać, albo liczyć na piechotę!
v.0.1
-3 rodzaje Pataponów
-1 gatunek
Dlaczego wczesny dostęp?
Chciałbym jak najszybciej wyłapać błędy, a po za tym, program jest już gotowy do użycia dla osób stawiających pierwsze kroki w Patapon 2.
Jak często program będzie aktualizowany?
Planuję aktualizować go na bieżąco z przechodzeniem gry.
Co wniosą aktualizacje?
Kolejne 16 gatunków i 6 rodzai.
A kto za tym wszystkim stoi?
Ja
Ale dość nudy! Wymyśliłem slogan reklamowy!
Jeśli kiedyś miałeś problem ze zliczeniem surowców
to już go nie będziesz mieć.
(można nucić do dowolnej muzyczki)
A tak serio, to jeśli chcecie podpatrzcie czy nie wywala jakichś głupot. Program wyświetla się w cmd, jeśli to się tak zwie, więc w przypadku gdyby literki byłyby zbyt małe, to prawy klik na ramkę, właściwości i dalej już znajdziecie. Mam nadzieję, że exit (0); i return 0; zadziałają u was tak jak u mnie.
Obecna ilość linijek kodu: 522 (tak, słabo z optymalizacją kodu u mnie, ale wszystko jest do nauki )
Poświęcony czas: 4-5h
Rozmiar: 525.5 KB
Download:(v.0.1)
Siwy - 20 Luty 15, 15:51
Nie wiem, co to za dziwna gra, ale pokaż kod
Póki co błąd jest taki, że zaraz po "zliczeniu" tego, co ma być zliczone (czymkolwiek to jest), zamyka okienko. Zapewne rozwiązaniem problemu byłoby wywołanie funkcji getchar(); (bodajże z biblioteki cstdio) przed końcem programu.
+ za
- za jakąś dziwną składnię polskiego w samym programie
DarnokOk - 21 Luty 15, 12:54
Jak to nie znasz Pataponów. :O IMO najlepszy exclusive PSP.
Ani getchar();, ani exit (0); ani return 0; nie działają, kod wrzucam na speedyshare bo ma aż 500 linijek, więc forum odpada. Jak nie będziesz potrafił się w nim odnaleźć, bo jest bardzo zagmatwany, to mogę wrzucić kawałki które Cię interesują, bądź nie. xd
(Ale pamiętaj, że się dopiero uczę i ten program bardziej piszę jako przypomnienie podstawowych podstaw pisania programów (+ pomoc do gry) i nie będę do niego wrzucał jakichś tablic, macierzy, bo je chce dopiero na spokojnie przerobić i je zrozumieć. Stąd tyle if'ów i switch'ów.)
Tu kiedyś był kod źródłowy mojego programu. Nie patrz już tu czytelniku. XD
Która składnia jest dziwna? To jestem chyba w stanie poprawić, nawet ustawiłem, że jak wybiera się jednego Patapona, to program wypisuje "Wybrano jednego Pataponka", a nie "Wybrano jednego Pataponow", hardcore. XD
Edit: Jeszcze wpadłem na pomysł, że po policzeniu wszystkiego albo jak użytkownik oszuka program (też to założyłem, jak ktoś wpisze głupotę to mu dziękuję za korzystanie xd) mogę ustawić "Naciśnij dowolny klawisz:" i po tym program by się kończył. Problem jedynie taki, że w C++ nie znam komendy na naciśnięcie dowolnego klawisza, więc opierało by się to na wpisaniu czegokolwiek i enter.
Siwy - 21 Luty 15, 14:51
Cytat: | ([...], enjoy co juz jest!) A nie jakis wybredny badz. |
Tu jest trochę dziwna składnia .
No faktycznie ten getchar(); średnio działa ;d. Użyj zatem getch() z biblioteki conio.h, która oczekuje właśnie na wciśnięcie dowolnego klawisza (jeśli nie podano inaczej w argumencie, o ile pamiętam).
No kod jak to kod strukturalny . Dlaczego nie używasz nawiasów klamrowych dla else'a? Ponadto polecam robić czytelniejsze wcięcia w kodzie. No i tych zmiennych... za dużo chyba . Tablice na pewno Ci się przydadzą.
Zamiast
Kod: | 186. if(ile != 1 && ile != 2 && ile != 3 && ile != 4 && ile != 5 && ile != 6) |
lepiej napisać:
Kod: | if(ile < 1 || ile > 6) |
tutaj to samo:
Kod: | 407. if(lev != 1 && lev != 2 && lev != 3 && lev != 4 && lev != 5 && lev != 6 && lev != 7 && lev != 8 && lev != 9 && lev != 10) |
Kod: | 246. if(ile == 2 || ile == 3 || ile == 4 || ile == 5 || ile == 6) |
tutaj podobnie jak wyżej, a nawet można to elastycznie puścić w dal, bo dla siedmiu, ośmiu itd. aż do 20 będzie taka sama forma. Nawiasem mówiąc - dla dwóch będzie: wybrałeś dwa pataponki .
W pętli od 256 linijki lepiej wpakować jakąś tablicę dwuwymiarową .
DarnokOk - 21 Luty 15, 20:28
Siwy napisał/a: | Cytat: | ([...], enjoy co juz jest!) A nie jakis wybredny badz. |
Tu jest trochę dziwna składnia . |
Dobra, patrzyłem na tę linijkę...
...i nie mogę nic wymyślić co tu jest źle, nawias zamykający?
Siwy napisał/a: | Użyj zatem getch() z biblioteki conio.h, która oczekuje właśnie na wciśnięcie dowolnego klawisza (jeśli nie podano inaczej w argumencie, o ile pamiętam). |
getch(); działa, dzięki. Napotkałem tylko taki problem, że gdy ta funkcja była wywołana w połowie programu, to po wciśnięciu dowolnego klawisza wykonuje kolejne funkcje nadal. return(0); zaraz po tych getch(); w ifi'e zadziałał, problem rozwiązany.
Siwy napisał/a: | Dlaczego nie używasz nawiasów klamrowych dla else'a? |
Już powiem jak to z klamrami dla else'a. W sumie to używam ich, gdy chcę, by "w innym wypadku" było wykonane tylko w innym wypadku. A ten else wstawiłem po to, że mi program nie zrobi nic dalej gdy if będzie prawdą, bo przecież bez tego else'a mógłby coś dalej robić? (Zakładając, że nie mam tam tej funkcji kończącej zabawę.) I dla tego else'a, który występuje po if'ie "sprawdzającym", że tak to powiem, nie daję klamry, by było ich mniej w kodzie, nie lubię ich.
Siwy napisał/a: | Ponadto polecam robić czytelniejsze wcięcia w kodzie. |
W jaki sposób mają te wcięcia wyglądać :O Myślałem, że już się bardziej nie da.
Siwy napisał/a: | No i tych zmiennych... za dużo chyba . |
Wiem, że tych zmiennych za dużo, chciałem mieć wszystko opisane, nie myślę w stylu Linuksowym jak to powiedział mi gość od infy. XD Jak się nauczę korzystać z tablic itd. to będzie lepiej.
Siwy napisał/a: | Zamiast
Kod: | 186. if(ile != 1 && ile != 2 && ile != 3 && ile != 4 && ile != 5 && ile != 6) |
lepiej napisać:
Kod: | if(ile < 1 || ile > 6) |
|
Rzeczywiście, wypadło mi z głowy, że mogę zbiór liczb opisać w taki sposób, a nie wypisywać tyle razy "różne od". Ale jest jedna ciekawa rzecz, gdy wpisze się liczbę niecałkowitą, np. 2.5 to program się trochę wykrzacza, bo kilka nast. komend ma miejsce, ale jednak wychodzi komunikat o oszukaniu, więc oszukiwacz ma nauczkę. Tylko, że właśnie mam teraz dylemat, jak zaznaczyć, że w tym cin ma być tylko liczba całkowita, pewnie też jest na to jakaś magiczna funkcja i oszczędza później wpisywanie warunków, nie będę się tym jednak jeszcze zajmował w sumie.
Siwy napisał/a: | [...]a nawet można to elastycznie puścić w dal, bo dla siedmiu, ośmiu itd. aż do 20 będzie taka sama forma. |
Dlaczego do 20 będzie ta sama forma, dalej nie? :O
(I tak tu zostaje tylko do 6, bo tyle to maksymalna ilość Pataponow, w sześciu pozostałych rodzajach max. to 3, poradzę sobie z tym, ale jestem ciekaw czemu do 20)
Siwy napisał/a: | Nawiasem mówiąc - dla dwóch będzie: wybrałeś dwa pataponki .
|
Ale przecież może być dwóch Pataponków, wszystkie kolejne liczby są w taki sposób wypisane, tak przynajmniej mi się wydaje, w sensie trzech, czterech, pięciu, sześciu.
Siwy napisał/a: | W pętli od 256 linijki lepiej wpakować jakąś tablicę dwuwymiarową . |
DarnokOk napisał/a: | Jak się nauczę korzystać z tablic itd. to będzie lepiej. |
P.S.Usuwam link do mojego kodu źródłowego w drugim poście, buahaha.
Siwy - 21 Luty 15, 22:11
Cytat: | Dobra, patrzyłem na tę linijkę...
...i nie mogę nic wymyślić co tu jest źle, nawias zamykający? |
Raczej powinno być enjoy tym, co już jest a nie bądź jakiś wybredny jeśli już trzymać się Twego słownictwa .
Cytat: | getch(); działa, dzięki. Napotkałem tylko taki problem, że gdy ta funkcja była wywołana w połowie programu, to po wciśnięciu dowolnego klawisza wykonuje kolejne funkcje nadal. return(0); zaraz po tych getch(); w ifi'e zadziałał, problem rozwiązany. |
Może napisz sobie funkcję kończącą program, żeby nie powtarzać tego tyle razy, bo może kiedyś zrobisz to w elegantszy sposób.
Cytat: | Już powiem jak to z klamrami dla else'a. W sumie to używam ich, gdy chcę, by "w innym wypadku" było wykonane tylko w innym wypadku. A ten else wstawiłem po to, że mi program nie zrobi nic dalej gdy if będzie prawdą, bo przecież bez tego else'a mógłby coś dalej robić? (Zakładając, że nie mam tam tej funkcji kończącej zabawę.) I dla tego else'a, który występuje po if'ie "sprawdzającym", że tak to powiem, nie daję klamry, by było ich mniej w kodzie, nie lubię ich. |
Hm, w sumie nie do końca wiem, o co Ci chodzi, ale stosuj klamry zawsze :]. Nie wiem, czemu nie lubisz, bo ja przeciwnie - nie lubię jak ich nie ma, bo zmniejsza to czytelność kodu. A poza tym, bez klamr można pisać tylko jeśli po elsie występuje tylko jedna linijka kodu .
Cytat: | W jaki sposób mają te wcięcia wyglądać :O Myślałem, że już się bardziej nie da. |
Każde następne zagłębienie się w jakiś blok kodu (czyli ograniczony nawiasami klamrowymi) powinien mieć kolejne wcięcie. Bardzo poprawia to czytelność kodu.
Cytat: | Rzeczywiście, wypadło mi z głowy, że mogę zbiór liczb opisać w taki sposób, a nie wypisywać tyle razy "różne od". Ale jest jedna ciekawa rzecz, gdy wpisze się liczbę niecałkowitą, np. 2.5 to program się trochę wykrzacza, bo kilka nast. komend ma miejsce, ale jednak wychodzi komunikat o oszukaniu, więc oszukiwacz ma nauczkę. Tylko, że właśnie mam teraz dylemat, jak zaznaczyć, że w tym cin ma być tylko liczba całkowita, pewnie też jest na to jakaś magiczna funkcja i oszczędza później wpisywanie warunków, nie będę się tym jednak jeszcze zajmował w sumie. |
Zasadniczo i tak oczekujesz inta, więc dobrze byłoby sprawdzić, czy opego dostajesz. Albo możesz być bardziej liberalny i np. użyć funkcji sufitu, albo podłogi (odpowiednio ceil() i floor).
Cytat: | Dlaczego do 20 będzie ta sama forma, dalej nie? :O
(I tak tu zostaje tylko do 6, bo tyle to maksymalna ilość Pataponow, w sześciu pozostałych rodzajach max. to 3, poradzę sobie z tym, ale jestem ciekaw czemu do 20) |
Dobra, nie wziąłem pod uwagę, że odmieniasz to jako rzeczownik ożywiony .
|
|