Loodwin Temat założony przez niniejszego użytkownika |
Funkcja jest, lecz nic nie zwraca » 2012-07-10 12:04:10 Mam taki problem. Zacząłem pisać dzisiaj jedną grę i już mam problem z pierwszą funkcją (jestem początkujący). Napisałem taki kodzik: #include <iostream> #include <conio.h> #include <stdio.h>
using namespace std;
bool bitwa( int hp, int damagea, int damageb, int damagec, int morale, int hp2, int damagea2, int damageb2, int damagec2 ) { int damages = damagea + damageb + damagec; int damages2 = damagea2 + damageb2 + damagec2; int losowanie; hp2 =- damages; hp =- damages2; if( morale / 1.8 + hp < hp2 ) { return false; }; if( morale / 1.8 + hp > hp2 ) { return true; }; if( morale / 1.8 + hp == hp2 ) if( morale >= 80 ) { return true; } else { losowanie = rand() % 1 + 0; } if( losowanie == 1 ) { return true; } else { return false; } }
int main() { srand( time( 0 ) ); bool wynik_walki; wynik_walki == bitwa( 150, 30, 25, 40, 56, 125, 25, 20, 35 ); if( wynik_walki == true ) { cout << "Wygrales" << endl; } if( wynik_walki == false ) { cout << "Przegrales" << endl; } getch(); return 0; }
I po prawidłowym skompilowaniu włącza się aplikacja i nie dzieje się nic tzn. tak jakby nic nie zwracała, bo nie pisze ani "Wygrales", ani "Przegrales". Nie wiem jak to rozwiązać. Proszę o pomoc. |
|
wojownik266 |
» 2012-07-10 12:13:51 Przy próbie kompilacji programu który zamiesciłeś wyskoczyło mi kilka błędów spowodowanych brakiem paru plików nagłowkowych (dyrektyw). Po dodaniu tych plików program działa poprawnie:
#include <iostream> #include <conio.h> #include <cstdio> #include <cstdlib> #include <ctime> using namespace std;
bool bitwa( int hp, int damagea, int damageb, int damagec, int morale, int hp2, int damagea2, int damageb2, int damagec2 ) { int damages = damagea + damageb + damagec; int damages2 = damagea2 + damageb2 + damagec2; int losowanie; hp2 =- damages; hp =- damages2; if( morale / 1.8 + hp < hp2 ) { return false; }; if( morale / 1.8 + hp > hp2 ) { return true; }; if( morale / 1.8 + hp == hp2 ) if( morale >= 80 ) { return true; } else { losowanie = rand() % 1 + 0; } if( losowanie == 1 ) { return true; } else { return false; } }
int main() { srand( time( 0 ) ); bool wynik_walki; wynik_walki == bitwa( 150, 30, 25, 40, 56, 125, 25, 20, 35 ); if( wynik_walki == true ) { cout << "Wygrales" << endl; } if( wynik_walki == false ) { cout << "Przegrales" << endl; } getch(); return 0; }
|
|
OSA_PL |
» 2012-07-10 12:15:26 Pierwsze co widzę to zły operator wynik_walki == bitwa( 150, 30, 25, 40, 56, 125, 25, 20, 35 ); i te średniki przy pętlach if. |
|
Loodwin Temat założony przez niniejszego użytkownika |
Nadal nie działa. » 2012-07-10 12:17:13 Mi nadal nie działa dobrze. Jest to co poprzednio.
EDIT:
@OSA_PL: Dzięki. Teraz działa. Zamykam temat. |
|
« 1 » |