Module: ConnectN::Winnable

Included in:
ComputerPlayer, Game
Defined in:
lib/connect_n/winnable/winnable.rb

Instance Method Summary collapse

Instance Method Details

#win?(board, row_num, col_num, disc) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/connect_n/winnable/winnable.rb', line 5

def win?(board, row_num, col_num, disc)
  return true if vertical_win?(board, row_num, col_num, disc)

  # k = -1 => backward diagonal \
  # k = 0 => horizontal --
  # k = 1 => forward diagonal /
  (-1..1).any? do |k|
    l = l_discs(board, row_num, col_num, disc, k)
    r = r_discs(board, row_num, col_num, disc, k)
    l + r + 1 >= min_to_win
  end
end