class Sudoku::Sn

Sudoku générique

Attributes

base[R]
length[R]
size[R]

Public Class Methods

new(base=3) click to toggle source
# File lib/sudoku.rb, line 54
def initialize base=3
  @base   = base.to_i
  @size   = @base*@base
  @length = @size*@size
  @grid = Array.new(@size) do |i|
    Array.new(@size){|j| 0}
  end
end

Public Instance Methods

each() { |x, y, grid[y]| ... } click to toggle source

Parcourt tout le sudoku

@yield [x, y, val] la position et la valeur courante
@return (self)
# File lib/sudoku.rb, line 84
def each
  @size.times do |y|
    @size.times do |x|
      yield x, y, @grid[x][y]
    end
  end
  self
end
get(x, y) click to toggle source

Renvoie la valeur en x,y

@return (Fixnum)
# File lib/sudoku.rb, line 74
def get x, y
  if x<0 || x>=size || y<0 || y>=size
    raise ArgumentError, "Is there a #{x},#{y} cell in a #{size}x#{size} sudoku ?"
  end
  @grid[x][y]
end
set(x, y, val) click to toggle source

Renvoie le coté du Sudoku

@return (Fixnum)
# File lib/sudoku.rb, line 65
def set x, y, val
  if x<0 || x>=size || y<0 || y>=size || val<0 || val > size
    raise ArgumentError, "#{x},#{y} => #{val} is impossible in a #{size}x#{size} sudoku"
  end
  @grid[x][y] = val
end