maciejo Temat założony przez niniejszego użytkownika  | 
» 2010-07-05 18:08:23 ale jak mam to wstawic do funkcji ? Nic nie przychodzi mi do glowy  | 
 | 
ison  | 
» 2010-07-05 18:20:10 podstawy C++ masz źle działającą funkcję: int random( int nMin, int nMax ) { return rand() % nMax + nMin; }
  i działający kawałek kodu pana Piotra odpowiedzialny za losowanie liczby z danego przedziału int wylosowano = rand() %( losujMax - losujMin + 1 ) + losujMin;
  tuż po słowie return w twojej funkcji wklejasz to co jest po znaku '=' w drugim kodzie. Zamieniasz nazwy zmiennych aby się zgadzały i otrzymujesz magiczną funkcję: int random( int nMin, int nMax ) { return rand() %( nMax - nMin + 1 ) + nMin; }
   | 
 | 
maciejo Temat założony przez niniejszego użytkownika  | 
» 2010-07-05 19:20:52 Jeszcze jeden problem: kawalek kodu z odejmowaniem wyglada tak : cout << "Wybrales atak mieczem" << endl; opnowhp = ophp; opnowhp = opnowhp - random( 0, herofizatk ); zabrales = ophp - opnowhp; cout << "Zabrales przeciwnikowi " << zabrales << "HP." << endl; kiedy to uruchamiam , to jest czarny ekran (getch , jakby bylo system("pause") to by czekalo na klawisz z komunikatem) a jak dalem na koniec main jeszcze kilka razy funkcje odpowiadajaca za walke to pisalo , ze liczba ujemna  kod: #include <cstdlib> #include <iostream> #include <ctime> #include <conio.h> #include <stdlib.h> #include <windows.h> #include <string>
  using namespace std;
  int wybor; string imie; int zrobic; int klasa; int heromaxhp = 70; int heronowhp = 70; int herohp; int heromaxmp = 70; int heronowmp = 70; int herofizatk; int heromagatk; int opmaxhp = 70; int opnowhp = 70; int ophp; int opmaxmp = 70; int opnowmp = 70; int opfizatk; int opmagatk; int lokacja; string op; int atak; int dostales; int zabrales;
  int random( int nMin, int nMax ) { return rand() %( nMax - nMin + 1 ) + nMin; }
  int walka() {     do     {         srand( static_cast < unsigned int >( time( NULL ) ) );         cout << imie << "\t\t\t\t" << op << endl;         cout << "HP\t\t\t\tHP" << endl;         cout << heronowhp << "/" << heromaxhp << "\t\t\t\t" << opnowhp << "/" << opmaxhp << endl;         cout << "MP\t\t\t\tMP" << endl;         cout << heronowmp << "/" << heromaxmp << "\t\t\t\t" << opnowmp << "/" << opmaxmp << endl;         cout << "Max. obrazenia fizyczne\t\tMax. obrazenia fizyczne" << endl;         cout << herofizatk << "\t\t\t\t" << opfizatk << endl;         cout << "Max. obrazenia magiczne\t\tMax. obrazenia magiczne" << endl;         cout << heromagatk << "\t\t\t\t" << opmagatk << endl << endl << endl;         cout << "Twoj ruch" << endl;         cout << "Co robic?" << endl;         cout << "1.Atak mieczem" << endl;         cout << "2.Atak magiczny" << endl;         cin >> atak;         switch( atak )         {         case 1: cout << "Wybrales atak mieczem" << endl;             opnowhp = ophp;             opnowhp = opnowhp - random( 0, herofizatk );             zabrales = ophp - opnowhp;             cout << "Zabrales przeciwnikowi " << zabrales << "HP." << endl;             break;         case 2: cout << "Wybrales atak magiczny" << endl;             opnowhp = ophp;             opnowhp = opnowhp - random( 0, heromagatk );             zabrales = ophp - opnowhp;             cout << "Zabrales przeciwnikowi " << zabrales << "HP." << endl;             break;             default: cout << "Nieznana opcja" << endl;             break;         }         cout << "Ruch komputera" << endl;         int akcja = rand() % 2 + 1;         if( akcja == 1 )         {             cout << "Komputer wybral atak mieczem" << endl;             heronowhp = herohp;             heronowhp = heronowhp - random( 0, opfizatk );             dostales = herohp - heronowhp;             cout << "Komputer zabral ci " << dostales << "HP." << endl;         }         else         {             cout << "Komputer wybral atak magiczny" << endl;             heronowhp = herohp;             heronowhp = heronowhp - random( 0, opmagatk );             dostales = herohp - heronowhp;             cout << "Komputer zabral ci " << dostales << "HP." << endl;         }         cout << "Nacisnij cos zeby kontynuowac" << endl;         getch();         system( "cls" );     } while( heronowhp > 0 || opnowhp > 0 );      }
  int powyborze() {     cout << "Wybierz miejsce walki :" << endl;     cout << "1.Las" << endl;     cout << "2.Miasto" << endl;     cin >> lokacja;     switch( lokacja )     {     case 1: system( "cls" );         cout << "Wybrales las" << endl;         cout << "Twoim przeciwnikiem bedzie bandyta" << endl;         op = "Bandyta";         opfizatk = 30;          opmagatk = 6;          walka();         break;     case 2: system( "cls" );         cout << "Wybrales miasto" << endl;         cout << "Twoim przeciwnikiem bedzie czarodziej" << endl;         op = "Czarodziej";         opfizatk = 6;          opmagatk = 30;          walka();         break;         default: cout << "Nieznana opcja" << endl;     } }
  int main( int argc, char * argv[] ) {     SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 11 );     cout << "\n\n\n\t\t\tFight 0.01 by maciejo54" << endl;      cout << "\n\n\t\tNacisnij dowolny klawisz aby kontynuowac";     getch();     system( "cls" );     SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 15 );     cout << "-----Menu-----" << endl;      cout << "1.Nowa gra" << endl;     cout << "2.Wyjscie" << endl;     cin >> wybor;     switch( wybor )     {     case 1: system( "cls" );          cout << "Wpisz swoje imie" << endl;         cin >> imie;         system( "cls" );         cout << "Witaj " << imie << "!" << endl;         cout << "Co chcesz teraz zrobic?" << endl;         cout << "1.Wybrac klase\n2.Wyjsc" << endl;         cin >> zrobic;         switch( zrobic )         {         case 1: cout << "Wolisz maga(1) , czy rycerza(2)?" << endl;              cin >> klasa;             switch( klasa )             {             case 1: herofizatk = 6;                  heromagatk = 30;                  system( "cls" );                 cout << "Jestes magiem" << endl;                  break;             case 2: herofizatk = 30;                  heromagatk = 6;                  system( "cls" );                 cout << "Jestes rycerzem" << endl;                  break;                 default: cout << "Nieznana opcja" << endl; break;             }             powyborze();             break;         case 2: EXIT_SUCCESS; break;         default: cout << "Nieznana opcja" << endl; break;         }         break;     case 2: EXIT_SUCCESS; break;     default: cout << "Nieznana opcja" << endl;     }     getch(); }
   | 
 | 
ison  | 
» 2010-07-05 19:29:51 teraz dopiero skompilowałem twój kod. To jest ta 'gra' którą widziałem na gamedev :D nie wrzucaj tam projektu póki nie skończysz swojej gry chociażby w małym stopniu bo zaśmiecasz serwis po pierwsze to zrób porządek w swoim kodzie, poczytaj o czymś takim jak programowanie obiektowe po drugie nie każdemu się chce analizować długi mało wyraziście napisany kod  kiedy to uruchamiam , to jest czarny ekran (getch , jakby bylo system("pause") to by czekalo na klawisz z komunikatem) a jak dalem na koniec main jeszcze kilka razy funkcje odpowiadajaca za walke to pisalo , ze liczba ujemna
 
 jaki czarny ekran? konsola z reguły jest czarna :p o jaką liczbę ujemną ci chodzi? jedyne co mi przychodzi na myśl to może to że funkcja getch(); nie zawsze działa na niektórych systemach. Jeśli zrozumiałem o co ci chodzi to zamiast  getch();  daj  _getch(); P.S. do maciejo - mówi się 'jest napisane' a nie 'pisze'  | 
 | 
maciejo Temat założony przez niniejszego użytkownika  | 
» 2010-07-05 19:34:35 Co do tej liczby ujemnej daj przed getch taki napis: walka();  | 
 | 
ison  | 
» 2010-07-05 19:40:13 nie wiem o który getch() ci chodzi ale to jest nie istotne, najpierw sam pomyśl nad kodem a potem dopiero zgłaszaj się tu z konkretnym problemem. To jest uciążliwe analizować tak długi kod zwłaszcza że nie opisałeś dokładnie problemu.  | 
 | 
maciejo Temat założony przez niniejszego użytkownika  | 
» 2010-07-05 19:46:14 Chodzi mi o to ze kiedy chce wykonac dzialanie :  heronowhp = heronowhp - random(0, opmagatk); kompilator jakims cudem zyskuje z tego liczbe ujemna , a przeciez startowa wartosc zmiennych z hero wynosi 70 , a opmagatk moze wynosic max 30   | 
 | 
DejaVu  | 
» 2010-07-05 19:48:15 1) udowodnij, że opmagatk: max = 30. 2) udowodnij, że funkcja random(0,30) zwraca zawsze liczbę w tym przedziale. Jeżeli udowodnisz powyższe dwa punkty problem będziesz miał rozwiązany. Tak jak pisał poprzednik: posiedź, podłub i pomyśl :) /edit: Szczerze mówiąc nie dziwię się, że masz kwas: int herohp;
  heronowhp = herohp;
   | 
 | 
| 1 « 2 »  3 |