class EatTheOcean::Evaluator

Attributes

guess_record[RW]
hits_record[R]
map[RW]
misses_record[R]
ship_array[RW]

Public Class Methods

new(opponent_ship_1 = nil, opponent_ship_2 = nil, opponent_ship_3 = nil, opponent_ship_4 = nil, map = nil) click to toggle source
# File lib/eat_the_ocean/evaluator.rb, line 6
def initialize(opponent_ship_1 = nil, opponent_ship_2 = nil, opponent_ship_3 = nil, opponent_ship_4 = nil, map = nil)
        @ship_array = [opponent_ship_1, opponent_ship_2, opponent_ship_3, opponent_ship_4]
        @hits_record = []
        @misses_record = []
        @guess_record = []
        @map = map
end

Public Instance Methods

hit(user_coordinate) click to toggle source
# File lib/eat_the_ocean/evaluator.rb, line 14
def hit(user_coordinate)
        hit_it = false
        @ship_array.each do |ship|
                if ship
                        @guess_record << user_coordinate
                        if ship.coordinates.include?(user_coordinate)
                                @map.grid_mark(user_coordinate,"🍣")
                                @hits_record << user_coordinate
                                ship.hits += 1
                                @guess_record.uniq!
                                hit_it = true
                                if ship.coordinates.length == ship.hits
                                        ship.sunk = 1
                                end
                                break
                        else
                                @misses_record << user_coordinate
                                @map.grid_mark(user_coordinate,"💦")
                                @misses_record.uniq!
                                hit_it = false
                        end
                end
        end
        @guess_record.uniq!
        hit_it
end