Class: GameSuggestor

Inherits:
Object
  • Object
show all
Defined in:
lib/were_wolf/game_suggestor.rb

Instance Method Summary collapse

Constructor Details

#initialize(num_of_players, no_of_runs) ⇒ GameSuggestor

Returns a new instance of GameSuggestor.



5
6
7
8
# File 'lib/were_wolf/game_suggestor.rb', line 5

def initialize(num_of_players, no_of_runs)
  @players_count = num_of_players
  @no_of_runs = no_of_runs
end

Instance Method Details

#runObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/were_wolf/game_suggestor.rb', line 10

def run
  # Preferred Wolves Win Percentage
  pref_wolves_prob = 70
  wolves_count = 1
  absolute_diff = 1000
  best_wins = {}

  while true
    wins = GameSimulator.new(wolves_count, @players_count - wolves_count, @no_of_runs).simulate
    percent_wolves_win = (100.0*wins[Game::WOLF]/@no_of_runs)
    new_diff = (pref_wolves_prob - percent_wolves_win).abs
    if new_diff < absolute_diff
      absolute_diff = new_diff
      best_wins = wins
      wolves_count += 1
    else
      return result(wolves_count - 1, best_wins)
    end
  end
end