J'ai push le code que nous avons produit avec Damien hier sur Gist, je
l'ai aussi debug et ajouté quelques tests, mais l'était dans lequel il
était hier en fin de session est dispo à l'origine de l'historique.
Je lui avais dit à Damien que clone sur un Array multi dimensionnel ça
ne marchai pas :D
--
Yann Lugrin
yann....@sans-savoir.net
_______________________________________________
romandie.rb mailing list
roman...@zarb.org
https://www.zarb.org/mailman/listinfo/romandie.rb
class Life
attr_accessor :board, :size
def initialize(sequence = "0000000000011100000000000",
options = { :size => 5 })
@size = options[:size]
@board = []
sequence.split(//).each_with_index do | cell,i |
@board << [] if i%size == 0
@board[-1] << (cell == "1")
end
end
def live
new_board = []#board.clone
board.each_index do |row|
new_board[row] = []
board[row].each_index do |col|
new_board[row][col] = new_cell(row, col)
end
end
@board = new_board
end
def new_cell(row, col)
case count_living_neighbours(row,col)
when 2
board[row][col]
when 3
true
else
false
end
end
def count_living_neighbours(row, col)
count = 0
count += 1 if board[row-1][col-1]
count += 1 if board[row-1][col]
count += 1 if board[row-1][(col+1)%size]
count += 1 if board[row][col-1]
count += 1 if board[row][(col+1)%size]
count += 1 if board[(row+1)%size ][col-1]
count += 1 if board[(row+1)%size ][col]
count += 1 if board[(row+1)%size ][(col+1)%size]
count
end
def display
system('cls')
board.each do |line|
line.each do |cell|
print cell ? 'X' : 0
end
print "\n"
end
sleep 1
end
def play
loop do
display
live
end
end
end
life = Life.new
life.play
Ah le coup du clone ;-)
J'en connais qui sont tombés dans le panneau.
En fouillant un peu, l'idiome pour une "deep copy" d'un array est
Marshal.load(Marshal.dump(a)).
cf http://gist.github.com/584027
J'ai trouvé très intéressant de voir les différentes approches hier
soir.
à retenir : mieux préciser le pb au départ, et faire attention au
temps nécessaire
à découvrir un environnement (emacs, windaube, ...)
A+
On Sep 17, 10:42 am, Yann Lugrin <yann.lug...@gmail.com> wrote:
> Bonjour à tous,
>
> J'ai push le code que nous avons produit avec Damien hier sur Gist, je
> l'ai aussi debug et ajouté quelques tests, mais l'était dans lequel il
> était hier en fin de session est dispo à l'origine de l'historique.
>
> http://gist.github.com/583865
>
> Je lui avais dit à Damien que clone sur un Array multi dimensionnel ça
> ne marchai pas :D
>
> --
> Yann Lugrin
> yann.lug...@sans-savoir.net
> _______________________________________________
> romandie.rb mailing list
> romandie...@zarb.orghttps://www.zarb.org/mailman/listinfo/romandie.rb