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

[C++][Konsola] Podczepienie kodu z menu pod kod z grą

Object Storage Arubacloud
0 głosów
783 wizyt
pytanie zadane 20 października 2016 w C i C++ przez perrymoon Nowicjusz (190 p.)
Witam chciałbym się dowiedzieć w jaki sposób mogę podczepić kod tego menu wyborowego pod wstępny kod z grą, abym później mógł wybierać opcję "Rozpocznij grę", "Wczytaj grę" oraz "Wyjście". OpcjaA to będzie Rozpocznij grę, OpcjaB to będzie Wczytaj grę tylko później to zmienię. Wiem, że do kodu z grą muszę też dodać funkcję zapisu oraz wczytywania gry, ale to wiem jak zrobić, ale nie wiem zbytnio jak podczepić to wszystko. Wiem, że menu najlepiej pod funkcję główną programu a grę pod coś innego, ale nie mam pomysłu. http://pastebin.com/jrf2vB6B Macie jakieś pomysły? Podam na przykładzie losowej gry z internetu abym wiedział na przyszłość jak te menu podczepić pod jakąś grę bądź program. http://pastebin.com/fQputq06. Z góry dziękuję za pomoc.

1 odpowiedź

0 głosów
odpowiedź 20 października 2016 przez Ditrix Mądrala (5,650 p.)
Nie możesz menu dać w jedną funkcję i ulokować ją na początku programu ?
komentarz 20 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
komentarz 20 października 2016 przez perrymoon Nowicjusz (190 p.)
Czyli wystarczy abym to podzielił na inny plik oraz w funkcji z grą ustawić aby on się włączał wraz z włączeniem programu?

No dobra, ale jak podczepić to, że jak przykładowo kliknę Rozpocznij Grę to mnie przekieruje do gry a jak Wczytaj Gre to mi wczyta grę. Chodzi mi już w sytuacji jak będzie to podzielone.
komentarz 20 października 2016 przez Ditrix Mądrala (5,650 p.)
Najprostszym sposobem jest podanie warunków. Np jeśli grasz kliknie 1 to rozpocznie grę, a jak 2 to wczyta grę. Oczywiście grasz może być wredny, wiec należy uwzględnić też 3 opcję, jeśli poda coś innego, dlatego musisz to umieścić w pętli.
komentarz 20 października 2016 przez perrymoon Nowicjusz (190 p.)
No dobra dzięki coś pokombinuję.
komentarz 21 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
W pliku z wyborem stwrz zmienna w srodku funkcji void, podaj jaa jak zwykle i työe, ale nie uzywajbif, uzyj moze case i charow, a w default, podajesz nazwe funkcji ktora sie wykonac gdy gracz wcianie cos innego, czyli tonjuz samo z siebie bedzie petla bez jej tworzenia
komentarz 24 października 2016 przez perrymoon Nowicjusz (190 p.)
Możecie mniej więcej mnie nakierować jakoś gdzie jest błąd lub czego zapomniałem zrobić? Spodziewam się wielu błędów, ale dopiero się uczę i chcę to zrobić na jakimś przykładzie.

Tutaj macie main.cpp:

http://pastebin.com/k0z3cFSL

Tutaj menu.hpp:

http://pastebin.com/p0pSbVDu

Tutaj menu.cpp:

http://pastebin.com/J37SdRQ8

Przeczytałem ten kurs co tam podaliście i robiłem według wytycznych, ale mam obecnie problem przy kompilowaniu.
komentarz 24 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Te dyrektywy? jezeli dobrze pamietam

#ifndef Menu_hpp

#indedef MENU_H_INCLUDED

#define MENU_H_INCLUDED
komentarz 24 października 2016 przez perrymoon Nowicjusz (190 p.)
Niezbyt rozumiem :) Mam coś podmienić czy jak? Mógłbyś to skompilować i sprawdzić jak ten błąd naprawić?
komentarz 25 października 2016 przez DragonCoder Nałogowiec (36,500 p.)

Tak zmien te dyrektywy, sorki ale wczoraj nie mialem czasu ogrom do nauki, przepisze zaraz kod,

switch( getch() ); CO TO TAKIEG? w switch podajesz nazwe zmiennej ktora ma byc sprawdzana, W plikach naglowkowych nie deklarujesz zmiennych, chyba ze robisz zasieg globalny, ale wtedy uzywasz extern, nie rozbudowujesz funkcji typ nazwa ():

Jezeli zrobiles nazwe funkcji gotoxy, a pozniej polskie nazwy, to zdecyduj sie angielski albo polski, choc kazdy radzi angielski.

 

Twoj plik.h

#ifndef MENU_H_INCLUDED
#define MENU_H_INCLUDED

void gotoxy( const int x, const int y );

int OpcjaA();
int OpcjaB();

#endif
int OpcjaB()
{
    return 0;
}

Ta funkcja nie zwroci nic, wiec po co ja robic? Chyba ze by byla typu bool, to wtedy 0=true, inna =false

 

plik.cpp

#include "menu.h"

using namespace std;

void gotoxy( const int x, const int y )
{
    COORD coord = { x, y };
    SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );
}

int OpcjaA()
{
    return 0;
}

int OpcjaB()
{
    return 0;
}

 

komentarz 25 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Przerob jeszcze raz lekcje o rozdzoelaniu plikow, to co masz w main.cpp mozesz wywalic z niego do innych plikow.... Rycerz itd, wszystkie funkcje na gorze, po za tym tylko jedna funkcje deklaruje sie na gorze a reszte pod spodem, zeby bylo to czytelniejsze, zrobisz 200 funkcji przed funkcja glowna i tego nie da sie czytac, (nie bierz tego doslownie)
komentarz 25 października 2016 przez perrymoon Nowicjusz (190 p.)
Nie ma sprawy wielkie dzięki za pomoc krrr123, gdyż dałeś mi sporo do myślenia. Mniej więcej tak na razie to zrobiłem. Nie patrz na funkcję zapisu bo to jest w trakcie http://pastebin.com/74V0FRdi Teraz gdy mam dobrze Menu.hpp i Menu.cpp tam przy Menu.hpp wyskakuje błąd, ale to wiem, że tak ma działać i wiem, że osobno mam zrobić void rycerz itd w innym pliku, ale teraz jak ustawić funkcję, która sprawia, że wraz z włączeniem programu automatycznie włącza się najpierw te menu a później gdy na przykład kliknę Rozpocznij Grę to włącza mi się dalsza funkcja całej gry. Z wczytaj grę sobie sam poradzę, ale muszę mieć jakiś przykład aby to zrobić jakoś. Wywalić switch (nMenu) wraz z int nMenu i coś dalej zrobić czy jak? Przeciwników też zrobię w osobnych plikach tak jak menu sobie. ;) Jeszcze raz wielkie dzięki za poświęcony czas. ;)
komentarz 25 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
ZEby pokazac to menu to odpwiednio po kolei wczytujesz te funkcje ktore chcesz pokazac... Ja robie tak, ze w main.cpp jest tylko i wylacznie funkcja, w tej funkcji menu, w menu funkcji wybory itd... Czyli funkcja wywoluje kolejna i to takie kolo...
komentarz 25 października 2016 przez perrymoon Nowicjusz (190 p.)
No dobrze, ale jak to masz zrobione? :) Niezbyt zrozumiałem :)
komentarz 25 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
U mnie wszystko jest rozbite na male pliki, zalozmy mam 4 pliki:

main.cpp

menu_jezykow.cpp

wybor_bohatera.cpp

co_robi_bohater.cpp

I do main.cpp dodajesz je po kolei lub inna mozliwosc dajesz menu_jezykow do maina, wybor_bohatera do menu_jezykow, a co_robi_bohater do wybor_bohatera i to raczej tyle
komentarz 25 października 2016 przez perrymoon Nowicjusz (190 p.)
To rozumiem, ale co konkretnie mam użyć (jaką funkcję), jak ona ma wyglądać aby otworzyło się to co chce?
komentarz 25 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Piszesz zwykly kod... Tak jakbys to robic w mainie, tylko ze w funkcji void
komentarz 25 października 2016 przez perrymoon Nowicjusz (190 p.)
A możesz zademonstrować chociażby początek jak masz czas? Wiem, że piszę to tak jak normalnie, ale coś mi nie wychodzi nadal. :/

Muszę się nauczyć na jakimś konkretnym przykładzie i dalej próbować. Jak masz czas to mógłbyś to jakoś wyjaśnić na kodzie i zademonstrować początek abym wiedział jak dalej to robić z kolejnymi plikami?
komentarz 25 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Tak wklejeCi linki, to na nimiecki z lektury, wiec robie to byle jak bo mam malo czasu i duzo zadan:

main.cpp

http://pastebin.com/qVAQ44Le

title.cpp

http://pastebin.com/y5ZZMkgD

texts.cpp

http://pastebin.com/1A2TS7DE
komentarz 25 października 2016 przez perrymoon Nowicjusz (190 p.)
Dzięki wielkie :) W ten sposób. Wtedy w main.cpp ogółem nie muszę umieszczać tego wszystkiego tylko nawet całą grę mogę przerzucić do innego pliku?
komentarz 25 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Tak, w main (bynajmiej ja) umieszczam tylko funkcje, zakladajac ze robimyzaleznosc funkcji od innej funkcji, bo rownie dobrze moge wczytac w main jedna po drugiej, ale ja wole ten sposob...
komentarz 25 października 2016 przez perrymoon Nowicjusz (190 p.)
edycja 25 października 2016 przez perrymoon
Czyli przykładowo w moim przypadku Klasy w void, void profil, oraz cały int main mogę umieścić w osobnym pliku?
komentarz 25 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
No nie, rycerz itd mozesz zrobic jako klase, ale bys musial dojsc do obiektowki, a int main nie mozesz przerobic na funkcje, tak samo jak w funkcji nie masz maina. Chyba ze masz namysli to co masz w main wrzucic do funkcji, to tak, ale musisz to dobrze przmyslec, zeby wszystko dzialalo jak nalezy
komentarz 25 października 2016 przez perrymoon Nowicjusz (190 p.)
Dodatkowo jak próbuję to skompilować to wyskakuje taki błąd w menu.hpp. Czy to dobrze? http://imgur.com/a/u9DbZ
komentarz 25 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
No nie dobrze blad= brak kompilacji czyli cos nie tak, w twoim przypadku cos wystepuje przed int, pewnie zamiast srednika masz dwukropek
komentarz 25 października 2016 przez perrymoon Nowicjusz (190 p.)
Jak umieszczam średni na końcu tego wyrażenia: void gotoxy( const int x, const int y ) to wtedy mam taki błąd. http://imgur.com/a/otaqX Więc tak naprawdę znów jest ten błąd co pisałem wcześniej.
komentarz 26 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Najwidoczniej brakuje bibliotek, zobacz na bledy pisze przciez ze nie sa zadeklarowane nastepuujace obiekty...
komentarz 26 października 2016 przez perrymoon Nowicjusz (190 p.)
W menu.cpp brakowało tej biblioteki

#include <windows.h>

Występowały również błędy przy #include switch (getch) oraz przy cout, ale dodałem biblioteki i działa, ale jest kolejny błąd. I nie wiem czego to jest wina. Wyskakuje to w pliku main.cpp. Jest to związane z tym, że muszę wstawić grę do osobnego pliku czy jak? Wiesz jak to rozwiązać? Dzięki jeszcze raz krrr123 za pomoc i za poświęcony czas. ;)

http://imgur.com/a/6cRng
komentarz 26 października 2016 przez DragonCoder Nałogowiec (36,500 p.)

Masz chyba za duzo razy main zadeklarowane, musisz zrozumiec, ze funkcja glowna main jest tylko jedna, tylko w pliku main.pp, jedna rzecz wywal prosze to getch ze switcha, napisz 

zmienna=getch ();

Switch (zmienna)

 

komentarz 26 października 2016 przez perrymoon Nowicjusz (190 p.)
Dzięki. :) Mam jedno int main w main.cpp oraz jedno w menu.cpp. http://pastebin.com/CTM0wcZn Jak mam wtedy zrobić tak aby zamienić stąd int main i aby to działało cały czas tak samo? Na jakąś inną funkcję czy jak?
komentarz 26 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
nie.... zadnego int main w menu cpp. Te int main w pliku z.cpp masz usunac... tam ma by funkcja a nie int main, istnieje tylko jedno int main w pliku main.cpp
komentarz 26 października 2016 przez perrymoon Nowicjusz (190 p.)
A dobra dzięki ;) To w końcu jak ma wyglądać plik Menu.cpp aby wszystko i tak nadal tak samo działało? Tak obecnie wygląda: http://pastebin.com/xfDkbVGG i gdy odpalę to w nowym projekcie to wszystko działa i pokazuje się same menu i jaką funkcję zamiast int main tam wstawić aby nadal działało w identyczny sposób?
komentarz 26 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
kazda inna wlasna funkcje moze byc int moze byc string moze byc void, wazne zeby to nie bylo int main... Daj void menu i odniesc sie po prostu menu();
komentarz 26 października 2016 przez perrymoon Nowicjusz (190 p.)

Przy void menu wyskakuje błąd więc dałem string i działa normalnie. Teraz void Gra() oraz void profil() mogę zrobić osobny plik i potem się do tego odwołać w main.cpp?

Gdyż w int main() w main.cpp mam normalnie tekst, który się rozpoczyna wraz z włączeniem gry i pytanie czy też to mogę jakoś rozdzielić czy zostawić to w pliku main.cpp a void profil(), void Gra() oraz ewentualnie klasy dać do innego pliku, tak jak to zrobiłem z menu?

Przy poprzednim menu też mam takie coś i to wywalić i zamienić to nowym menu?

 

 switch(nMenu)
    {
    case 1:
        profil();
    case 2:
        break;
    }

 

komentarz 26 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Daj mi wszystkie te pliki, jak znajde czas to przerobie
komentarz 26 października 2016 przez perrymoon Nowicjusz (190 p.)
Dzięki wielkie :)

Main.cpp

http://pastebin.com/Fd1p64Kp

Menu.cpp

http://pastebin.com/RBUVcM0H

Menu.hpp

http://pastebin.com/HCyF8E7h

Tam w main.cpp jest jeszcze funkcja zapisu i wczytywania gry którą chcę dołączyć do tej drugiej opcji "Wczytaj grę".
komentarz 26 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Co ty za klasy robisz?? Obejrzales odcinki kursu?
komentarz 26 października 2016 przez perrymoon Nowicjusz (190 p.)
Tak obejrzałem. A robienie tego typu klas w tym przypadku jest niewskazane? Jeżeli chodzi o typ zapisu to tam na razie tak sobie umieściłem bo nie byłem pewny czy to zadziała, chociaż powinno. Jeżeli chodzi o Wartości to chcę tam dać później Levelowanie w class, ale nie wiem czy dobrze to zadziała. Ogółem na razie chcę aby to działało tak jak Ci wcześniej napisałem a później się zajmę dalszą fabułą.
komentarz 26 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Jak robisz klase, to na kij robic rycerza jako funkcje? robisz klase rycerza z atrybutami i funkcjami....
komentarz 26 października 2016 przez perrymoon Nowicjusz (190 p.)
No w sumie :) Dzięki za podpowiedź.
komentarz 26 października 2016 przez perrymoon Nowicjusz (190 p.)
Jak będziesz miał czas i dasz radę to byłbym bardzo wdzięczny jakbyś to tam przerobił i naprawił. Bym ogarnął mniej więcej na przykładzie jak już to tam kolejne funkcje powstawiać i się odnosić do tego.

Podobne pytania

0 głosów
3 odpowiedzi 2,574 wizyt
pytanie zadane 17 kwietnia 2016 w C i C++ przez Munvik Dyskutant (9,350 p.)
0 głosów
2 odpowiedzi 223 wizyt
pytanie zadane 17 października 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)
+1 głos
1 odpowiedź 370 wizyt
pytanie zadane 28 września 2020 w HTML i CSS przez Kubs Mądrala (5,190 p.)

92,579 zapytań

141,432 odpowiedzi

319,657 komentarzy

61,963 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...