NerfUS game coordinator for the Nerf gun firing range
Dependencies: HardwareInterface mbed-rtos mbed
Fork of NerfUS by
source/GameCoordinator.cpp@19:33e8cd56630f, 2017-03-30 (annotated)
- Committer:
- Ismael Balafrej
- Date:
- Thu Mar 30 13:40:36 2017 -0400
- Branch:
- PlayableGame
- Revision:
- 19:33e8cd56630f
- Parent:
- 18:469c8b2a9af9
W/e
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Maxime Dupuis |
16:5e6c695468b6 | 1 | #include "GameCoordinator.hpp" |
Maxime Dupuis |
16:5e6c695468b6 | 2 | |
Ismael Balafrej |
18:469c8b2a9af9 | 3 | GameCoordinator::GameCoordinator(RandomNumberGenerator &random_number_generator) : random_number_generator(random_number_generator) |
Maxime Dupuis |
16:5e6c695468b6 | 4 | { |
Ismael Balafrej |
19:33e8cd56630f | 5 | PrecisionMode precisionMode(&(this->targets), random_number_generator); |
Ismael Balafrej |
19:33e8cd56630f | 6 | this->gameModes[0] = &precisionMode; |
Maxime Dupuis |
16:5e6c695468b6 | 7 | } |
Maxime Dupuis |
16:5e6c695468b6 | 8 | |
Maxime Dupuis |
16:5e6c695468b6 | 9 | std::vector<TargetInfo> GameCoordinator::generate_random_target_course(const int number_of_targets, const int timeout_ms) |
Maxime Dupuis |
16:5e6c695468b6 | 10 | { |
Maxime Dupuis |
16:5e6c695468b6 | 11 | std::vector<TargetInfo> target_course; |
Maxime Dupuis |
16:5e6c695468b6 | 12 | |
Ismael Balafrej |
18:469c8b2a9af9 | 13 | for (int i = 0; i < number_of_targets; ++i) |
Maxime Dupuis |
16:5e6c695468b6 | 14 | { |
Maxime Dupuis |
16:5e6c695468b6 | 15 | TargetInfo new_target; |
Maxime Dupuis |
16:5e6c695468b6 | 16 | |
Maxime Dupuis |
16:5e6c695468b6 | 17 | new_target.id = random_number_generator.get(0, number_of_targets - 1); |
Maxime Dupuis |
16:5e6c695468b6 | 18 | new_target.type = random_number_generator.get(0, 1) == 0 ? TARGET_TYPE_ALLY : TARGET_TYPE_ENEMY; |
Maxime Dupuis |
16:5e6c695468b6 | 19 | new_target.timeout_ms = timeout_ms; |
Maxime Dupuis |
16:5e6c695468b6 | 20 | |
Maxime Dupuis |
16:5e6c695468b6 | 21 | target_course.push_back(new_target); |
Maxime Dupuis |
16:5e6c695468b6 | 22 | } |
Maxime Dupuis |
16:5e6c695468b6 | 23 | |
Maxime Dupuis |
16:5e6c695468b6 | 24 | return target_course; |
Maxime Dupuis |
16:5e6c695468b6 | 25 | } |