Class: MonkeyMusic::Game
- Inherits:
-
Object
- Object
- MonkeyMusic::Game
- Defined in:
- lib/monkey_music/game.rb
Instance Method Summary collapse
-
#initialize(level, players, ui) ⇒ Game
constructor
A new instance of Game.
- #start ⇒ Object
Constructor Details
#initialize(level, players, ui) ⇒ Game
Returns a new instance of Game.
7 8 9 10 11 |
# File 'lib/monkey_music/game.rb', line 7 def initialize(level, players, ui) @level = level @players = players @ui = ui end |
Instance Method Details
#start ⇒ Object
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 |
# File 'lib/monkey_music/game.rb', line 13 def start # Send initial state to players init_threads = [] @players.each do |p| init_threads << Thread.new { p.init! } end init_threads.each(&:join) # Start the game @level.turn_limit.times do |turn| turn += 1 break if @level.complete? # Query players for moves query_threads = [] turn_time = Benchmark.realtime do @players.each do |p| query_threads << Thread.new { p.query! turn } end query_threads.each(&:join) end # Move players in random order @players.shuffle.each { |p| p.move! } ## Update ui @ui.update(turn, turn_time) end end |