class BattleBoats::ConsoleUI
Attributes
board_formatter[R]
input[R]
output[R]
Public Class Methods
new(output: $stdout, input: $stdin, board_formatter: BattleBoats::BoardFormatter.new)
click to toggle source
# File lib/battle_boats/console_ui.rb, line 7 def initialize(output: $stdout, input: $stdin, board_formatter: BattleBoats::BoardFormatter.new) @output = output @input = input @board_formatter = board_formatter end
Public Instance Methods
display_ally_board(board)
click to toggle source
# File lib/battle_boats/console_ui.rb, line 24 def display_ally_board(board) output.puts board_formatter.format_board(board, hide_ships: false) end
display_board(board)
click to toggle source
# File lib/battle_boats/console_ui.rb, line 19 def display_board(board) hide_ships = !BattleBoats::DEVELOPMENT output.puts board_formatter.format_board(board, hide_ships: hide_ships) end
display_ship_data(ship:)
click to toggle source
# File lib/battle_boats/console_ui.rb, line 28 def display_ship_data(ship:) output.puts "SHIP: #{ship.name} ALIAS: #{ship.symbol}" output.puts "LENGTH: #{ship.length}" end
display_status_report(status_report)
click to toggle source
# File lib/battle_boats/console_ui.rb, line 53 def display_status_report(status_report) output.puts status_report end
get_coordinate()
click to toggle source
# File lib/battle_boats/console_ui.rb, line 33 def get_coordinate output.puts "Target coordinate: " user_input = input.gets.chomp until board_formatter.valid_coordinate_input?(user_input) output.puts "Coordinate invalid." user_input = input.gets.chomp end board_formatter.input_to_coordinate(user_input) end
get_orientation()
click to toggle source
# File lib/battle_boats/console_ui.rb, line 43 def get_orientation output.puts "Orientation [hV]:" user_input = input.gets.chomp until valid_orientation_input?(user_input) output.puts "Orientation invalid." user_input = input.gets.chomp end input_to_orientation(user_input) end
greet()
click to toggle source
# File lib/battle_boats/console_ui.rb, line 15 def greet output.puts "Welcome to Battle Boats!" end
lose()
click to toggle source
# File lib/battle_boats/console_ui.rb, line 61 def lose output.puts "You've lost the game!" end
win()
click to toggle source
# File lib/battle_boats/console_ui.rb, line 57 def win output.puts "You've won the game!" end
Private Instance Methods
input_to_orientation(input)
click to toggle source
# File lib/battle_boats/console_ui.rb, line 73 def input_to_orientation(input) if input =~ /^[h{1}]$/i :horizontal elsif input =~ /^[v{1}]$/i :vertical end end
valid_orientation_input?(orientation)
click to toggle source
# File lib/battle_boats/console_ui.rb, line 69 def valid_orientation_input?(orientation) orientation =~ /^[h{1}|v{1}]$/i end