/
GameRunner.h
39 lines (30 loc) · 1.17 KB
/
GameRunner.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef __GAME_RUNNER_H
#define __GAME_RUNNER_H
#include <iosfwd>
#include "Game.h"
#include "CardinalStrategy.h"
template <class StrategyType, class IteratorType>
void GameRunner(int rows, int columns, std::string inStrategy, std::ostream& out)
{
std::stringstream ssStrategy;
ssStrategy << inStrategy;
CardinalStrategy cardinalStrategy(rows, columns,
std::istream_iterator<double>(ssStrategy),
std::istream_iterator<double>());
StrategyType strategy(cardinalStrategy);
Game<StrategyType, IteratorType> game(strategy);
TBBTimer timer;
TIME_OPERATION(timer, game.IterateStrategies());
game.DisplayResults(out);
out << "Run took " << timer.ElapsedSeconds() << " seconds." << std::endl;
}
template<class IteratorType>
void GameDoubleRunner(int rows, int columns, std::ostream& out)
{
GameDouble<IteratorType> game(rows, columns);
TBBTimer timer;
TIME_OPERATION(timer, game.IterateStrategies());
game.DisplayResults(out);
out << "Run took " << timer.ElapsedSeconds() << " seconds." << std::endl;
}
#endif //__GAME_RUNNER_H