Yewhral Napisano Lipiec 30, 2008 Zgłoś Share Napisano Lipiec 30, 2008 Zacznijmy od tego że z programowaniem dopiero zaczynam i w niektorych miejscach mogłem gdzieniegdzie przynoobić. NArazie to konsolowa wersja aplikacji, ale jak sie poducze to przeniose to do okienka. Otóż jest to oddzielny plik calosci (no powiedzmy ze robie gre) i tu jest plik w ktorym na such chcialbym zrobic system obrazen i teraz tak kod wyglada na razie tak, ale w pewym miejscu po prostu sie zatrzymuje bo nijak nie moge zrobić (opis w czym chciałbym żebyście pomogli jest w komentarzu) #include <cstdlib> #include <stdlib.h> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int hp, dmg, hpmob, dmgmob, maxrandhp, maxranddmgmob, maxranddmg, decyzja, weapon; start: { cout << "Dzisiaj walczysz z:"<<endl; // dobor przeciwnika cout << "1 : Diablik (hp=15 dmg=7)"<<endl; cout << "2 : Kolczasty szczur (hp=25 dmg=10)"<<endl; cout << "3 : Szkielet (hp=40 dmg=15)"<<endl; cout << "4 : Monstrualna bestia (hp=65 dmg=25)"<<endl; cout << "kazdy inny klawisz konczy program"<<endl; cin >> decyzja; switch (decyzja) { case 1: maxrandhp = 15; maxranddmgmob = 7; break; case 2: maxrandhp = 25; maxranddmgmob = 10; break; case 3: maxrandhp = 40; maxranddmgmob = 15; break; case 4: maxrandhp = 65; maxranddmgmob = 25; break; default: system("PAUSE"); return EXIT_SUCCESS; ; } hp = 50; // hp gracza srand( (unsigned)time( NULL ) ); // zapowiedz funkcji rand hpmob = rand() % maxrandhp; // hp moba przyjmuje losowa wartosc miedzy 0 a maxrandhp dmgmob = rand() % maxranddmgmob; // dmg moba przyjmuje losowa wartosc miedzy 0 a maxranddmgmob bron: cout<<"Wybierz bron by zaatakowac przeciwnika:"<<endl; cout<<"1- Krotki miecz"<<endl<<"2- Kij"<<endl<<"3- Fireball"<<endl; cin >> weapon; switch (weapon) { case 1: maxranddmg=4 ; dmg= rand() % maxranddmg +3; // dmg gracza przyjmuje losowa wartosc miedzy X a maxranddmg break; case 2: maxranddmg=5 ; dmg= rand() % maxranddmg +1; break; case 3: maxranddmg=5 ; dmg= rand() % maxranddmg +7; break; } cout<<"Zadales obrazen: "<< dmg<<endl; cout<<"Hp pozostale przeciwnikowi:"<<hpmob-dmg<<endl; cout<<"Wrog zadaje obrazen:"<<dmgmob<<endl; cout<<"HP pozostalo:"<<hp-dmgmob<<endl; goto bron; /* OK NIE KAUPJE A) czy dopuszczalne i sensowne jest w tym wypadku goto? B) JAK ZROBIC ZEBY TO CIAGLE ODEJMOWALO HP A NIE ZE PO KAZDEJ TURZE JEST RESTART(ciagle zaczyna sie od miejsca w ktorym wszyscy maja max hp), mimo ze niemile widziane goto przenosi do miejsca gdzie hp juz dawno jest ustalone i nic sie z nim nie powinno dziac oprocz obnizania C) JAK ZALATWIC BY W SYTUACJI GDZIE MOB ALBO GRACZ TRACI WSZYSTKIE HP BYL KONIEC, probowalem z warunkami, ale przy tworzeniu petli sam sie zapetlilem i mimo kilku prob nie doszedlem jak to zrobic*/ } system("PAUSE"); return EXIT_SUCCESS; } Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Lipiec 30, 2008 Zgłoś Share Napisano Lipiec 30, 2008 1) Goto nie jest sensowne poniewaz wynika z niego ze jestes bez obrazy noobem. Czyli chwytasz sie najprostrzego sposobu (o czym piszesz posrednio dalej) ktory w tym przypadku jest zly. Uzyj jakiejs petli np for(; albo while. 2) nigdzie nie pomniejszasz wartosci zmiennej HP. wyswietlasz tylko roznice hp-dmgmob co wcale nie zmienia hp. 3) narysuj na kartce po kolei co ma program robic, porysuj jak ma skakac itd. dopiero wez sie za pisanie. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Yewhral Napisano Lipiec 31, 2008 Autor Zgłoś Share Napisano Lipiec 31, 2008 Dzięki wielkie za rady. Samemu to ze dwa dni bym pkt 2) dochodził goto zastąpiłem do... while'em teraz wszystko śmiga nawet uniki zrobiłem ale za pisanie to się chyba jednak wezme jak klasy zrozumiem bo troche za dużo tych zmiennych sie zrobiło i wplata sie chaos powoli... Ten projekt z zasady miał mnie czegoś nauczyć i nauczył Kiedy czytam inne tematy, te bardziej zaawansowane i mało rozumiem na pocieszenie zostaje mi fakt, że dopiero do liceum ide od września, z programowaniem zaczynam dopiero i mam czas na nauke tego co mnie interesuje, a nie jak niektórzy z przymusu na szybko chcą coś mieć napisane i naumiane.. Nie wiem po co powyższy akapit napisałem ==' Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.