if statement - C++ need assistance with if != to a random number -
i working on project , stuck. have 2 variables generate random numbers. want check checks make sure variables not same number, , if are, repeat process until not same. here have :
num_enemy = 3;  int f =  rand() % num_enemy; int m =  rand() % num_enemy;  if ( f != m ) { enemy_ptr[f] -> fire_weapon(); enemy_ptr[m] -> update_status(); }   the code above wont work plus how can make if false generate random numbers again?
i not looking answers, assistance on need do. thanks!
the problem when gets section...
if ( f != m ) {     enemy_ptr[f] -> fire_weapon();     enemy_ptr[m] -> update_status(); }   ... variables f , m have same value, due modulo, fire_weapon() , update_status() functions never called. need loop until both variables have different values. code below should sort out.
const int num_enemy = 3; int f = rand() % num_enemy; int m;  // do-while loop guaranteed called @ least once. {     m = rand() % num_enemy; } while ( f == m ); // repeat loop if values same  // @ point, f , m have different values. enemy_ptr[f] -> fire_weapon(); enemy_ptr[m] -> update_status();   because variables modulo low value, it's possible loop may have run many times before f != m.
also, if want sequence of pseudo-random numbers returned rand() different each time game run, seed psuedo-random number generator call srand( time() ) once. if want sequence constant each time run game leave is. can debugging, , required if game needs deterministic.
read more rand() , srand() here: http://www.cplusplus.com/reference/cstdlib/rand/
as mentioned in answer, c++11 has improved random number generation. find out more here: http://www.cplusplus.com/reference/random/
Comments
Post a Comment