Class: Mastermind::Console::Controller

Inherits:
Object
  • Object
show all
Defined in:
lib/mastermind/console/controller.rb

Instance Method Summary collapse

Instance Method Details

#play(game) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/mastermind/console/controller.rb', line 28

def play(game)
  width = game.secret_length
  puts "#{game.codebreaker.name} must guess the code."
  puts View.grading_scheme
  puts View.top_border(width: width)
  make_guess(game) until game.over?
  puts View.bottom_border(width: width)
  puts "#{game.winner.name} wins! (#{game.attempts} guesses)"
end

#setupObject



4
5
6
7
8
9
10
11
12
13
# File 'lib/mastermind/console/controller.rb', line 4

def setup
  puts View.introduction
  print "How many human players will there be? "
  number_of_players = Player::Human.get_input.to_i

  @player1 = get_player(1) if number_of_players > 0
  @player1 ||= Player::Computer.new(name: "Computer (1)")
  @player2 = get_player(2) if number_of_players > 1
  @player2 ||= Player::Computer.new(name: "Computer")
end

#start_gameObject



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/mastermind/console/controller.rb', line 15

def start_game
  codebreaker = get_codebreaker
  codemaker = (codebreaker == @player1) ? @player2 : @player1

  play Game.new(
    secret: get_secret_from(codemaker),
    codemaker: codemaker,
    codebreaker: codebreaker
  )

  puts "\n\n"
end