Class: Rochambeau::Cli
- Inherits:
-
Thor
- Object
- Thor
- Rochambeau::Cli
- Extended by:
- T::Sig
- Defined in:
- lib/rochambeau/cli.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.get_players(count) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/rochambeau/cli.rb', line 60 def self.get_players(count) case count when 1 return [Player::UnnamedHuman.new, Player::Robot.new] when 2 return [ Player::NamedHuman.new('Player 1'), Player::NamedHuman.new('Player 2'), ] end raise ArgumentError, "Unexpected player count: #{count}" end |
Instance Method Details
#play ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/rochambeau/cli.rb', line 30 def play system 'clear' game_mode = .advanced ? GameMode::ADVANCED : GameMode::BASIC p1, p2 = Cli.get_players(.players) puts game_mode..map(&:label).join(' ยท ') p1_choice = p1.choose_option(game_mode.) p2_choice = p2.choose_option(game_mode.) puts <<~CHOICES ------ #{p1.name}: #{p1_choice} #{p2.name}: #{p2_choice} ------ CHOICES puts Option.explain(p1_choice, p2_choice) unless p1_choice == p2_choice case p1_choice <=> p2_choice when 1 then puts p1. when -1 then puts p2. else puts 'Match draw.' end end |
#version ⇒ Object
10 11 12 13 14 15 |
# File 'lib/rochambeau/cli.rb', line 10 def version puts <<~VERSION Rochambeau #{Rochambeau::VERSION} GitHub: https://github.com/jigarius/rochambeau VERSION end |