J
Jen
Hello,
Apologies but i've run in to another problem while attempting to make a
sudoku solver that uses basic genetic programming.
This time I'm trying to count how many times each number occures in each
board (boards stored in @offspring) then store the results in a hash.
I think each hash is being overwritten because the keys are the same, so
I'm attempting to store an array of hashes.
I think I'm close, but my logic is still a bit off, as the length of my
array of hashes is 1 but I expect it to be 4, with each element
containing a hash. 4 is the size of the test population I am using, so
there are 4 boards in @offspring.
I could have probably done the same thing with an array, but I confused
myself thinking about it
My code so far:
def fitness_check
hashes = Array.new
count = Hash.new 0
#Adds another loop to ensure all elements of offspring are checked
separetly.
i = 0
#loop through every row of offspring (first to fourth element)
@offspring[i.to_i].each do |r|
#loop through every column of every row
r.each do |c|
#Count the numbers in each column
count[c] += 1
hashes = count
end
end
#Need to stop the values in count getting overwritten by the next
element in @offspring
puts hashes.inspect
puts hashes.length
end
Thanks in advance for any suggestions.
Jen.
Apologies but i've run in to another problem while attempting to make a
sudoku solver that uses basic genetic programming.
This time I'm trying to count how many times each number occures in each
board (boards stored in @offspring) then store the results in a hash.
I think each hash is being overwritten because the keys are the same, so
I'm attempting to store an array of hashes.
I think I'm close, but my logic is still a bit off, as the length of my
array of hashes is 1 but I expect it to be 4, with each element
containing a hash. 4 is the size of the test population I am using, so
there are 4 boards in @offspring.
I could have probably done the same thing with an array, but I confused
myself thinking about it
My code so far:
def fitness_check
hashes = Array.new
count = Hash.new 0
#Adds another loop to ensure all elements of offspring are checked
separetly.
i = 0
#loop through every row of offspring (first to fourth element)
@offspring[i.to_i].each do |r|
#loop through every column of every row
r.each do |c|
#Count the numbers in each column
count[c] += 1
hashes = count
end
end
#Need to stop the values in count getting overwritten by the next
element in @offspring
puts hashes.inspect
puts hashes.length
end
Thanks in advance for any suggestions.
Jen.