MoravenTolo Temat założony przez niniejszego użytkownika |
Losowanie i typ wyliczeniowy. » 2017-03-14 16:42:26 Mam taki problem, otóż musze stworzyć metodę, która będzie generowała losowe potwory. Przykładowo z wylosowaniem poziomu nie ma problemu, ale jak mam wylosować typ potwora, który jest w typie wyliczeniowym enum, a rand() losuje liczby. I jeszcze dodatkowe pytanie jaka jest różnica między "enum", a "enum class"? #include "stdafx.h" #include<string> #include<iostream> #include<cstdlib> #include<ctime>
using namespace std;
enum Potwory { P1, P2, P3 };
struct TPotwor { string nazwa; Potwory typ; int poziom; };
string pobierzTyp( const Potwory & typ ) { switch( typ ) { case Potwory::P1: return "p1"; case Potwory::P2: return "p2"; case Potwory::P3: return "p3"; default: return "nieznany"; } }
void wyswietl( const TPotwor & potwor ) { cout << "Potwor: " << potwor.nazwa << endl; cout << "Typ: " << pobierzTyp( potwor.typ ) << endl; cout << "Atak: " << potwor.poziom << endl; }
TPotwor * stworzPotwora( string nazwa ) { srand( time( NULL ) ); TPotwor * p = new TPotwor(); ( * p ).nazwa = nazwa; ( * p ).poziom =( rand() % 50 ); return p; }
int main() { wyswietl( * stworzPotwora( "nazwa" ) ); }
|
|
maly7 |
» 2017-03-14 18:58:38 Metody to są funkcje w jakiejś klasie, ty nie masz klasy więc będzie to po prostu funkcja. Typ wyliczeniowy to po prostu liczby numerowane kolejno: enum Potwory { P1 = 0, P2, P3 }; P1 = 0, P2 = 1, P3 = 2; |
|
MoravenTolo Temat założony przez niniejszego użytkownika |
» 2017-03-14 20:58:03 to jak mam wylosować, któryś z tych typów skoro Potwory to mój zdefiniowany typ a rand() działa na zmiennych int i pojawia się błąd: cannot convert from 'int' to 'Potwory'? |
|
czaffik |
» 2017-03-14 21:26:17 ( * p ).typ = static_cast < Potwory >( rand() % 2 );
|
|
MoravenTolo Temat założony przez niniejszego użytkownika |
» 2017-03-14 23:04:47 O to chodziło. Dzięki wielki:) |
|
MoravenTolo Temat założony przez niniejszego użytkownika |
» 2017-03-17 12:42:26 Mam jeszcze jedno pytanie. Jak zrobić, aby funkcja stwórz potwora za każdym razem, gdy jest wywoływana, generowała innego potwora? |
|
carlosmay |
» 2017-03-17 18:29:50 |
|
MoravenTolo Temat założony przez niniejszego użytkownika |
» 2017-03-19 11:53:39 Mam ostatni problem co do tego zadania. Mam jeszcze stworzyć tablicę o rozmiarze zadawanym przez użytkownika, która zawieta wygenerowane potwory i wypisać informację na temat każdego potwora. Wydaje mi się, że dobrze zrobiłem tą tablicę, ale nie wiem jak mam teraz wypisać te potwory? int main() { int rozmiar; cout << "podaj ile potworow stworzyc: "; cin >> rozmiar; TPotwor * tab = new TPotwor[ rozmiar ](); for( int i = 0; i < rozmiar; i++ ) { tab[ i ] = * stworzPotwora( "jacek" ); } }
|
|
« 1 » |