--0016e6dab13fa14547049eb4c5df
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
So a board is an array of arrays and offspring holds three boards.
So @offspring[i] = [[row1],...,[row9]]. Waht you wanna check then is
@offspring[i][j][k] == 0
i is the board copy (from 0 to 3 in your code)
j is the row index (from 0 to 8)
k is the column index ( from 0 .. 8)
What you probably wanna do is
@offspring.each do |board_copy|
board_copy.each |row|
(0..8).each { |column| if row[column] == 0 then row[column] == 9 }
end
end
2011/3/17 Jen <jen.bottom / gmail.com>
> Hello,
>
> When I run
> puts @offspring.inspect
>
> After populating it with copies of @board, but before attempting to replace
> the elements containing "_" the result is:
>
> [[[0, 4, 5, 9, 8, 7, 6, 2, 1], [1, 9, 2, 6, 5, 4, 3, 8, 7], [8, 7, 6, 3, 2,
> 1, 5, 4, 9], [5, 2, 9, 8, 1, 6, 4, 7, 3], [4, 3, 1, 7, 9, 2, 8, 5, 6], [6,
> 8, 7, 5, 4, 3, 1, 9, 2], [2, 5, 3, 4, 6, 9, 7, 1, 8], [7, 1, 8, 2, 3, 5, 9,
> 6, 4], [9, 6, 4, 1, 7, 8, 2, 3, 5]], [[0, 4, 5, 9, 8, 7, 6, 2, 1], [1, 9,,
> 6, 5, 4, 3, 8, 7], [8, 7, 6, 3, 2, 1, 5, 4, 9], [5, 2, 9, 8, 1, 6, 4, 7, 3],
> [4, 3, 1, 7, 9, 2, 8, 5, 6], [6, 8, 7, 5, 4, 3, 1, 9, 2], [2, 5, 3, 4, 6,,
> 7, 1, 8], [7, 1, 8, 2, 3, 5, 9, 6, 4], [9, 6, 4, 1, 7, 8, 2, 3, 5]], [[0,,
> 5, 9, 8, 7, 6, 2, 1], [1, 9, 2, 6, 5, 4, 3, 8, 7], [8, 7, 6, 3, 2, 1, 5, 4,
> 9], [5, 2, 9, 8, 1, 6, 4, 7, 3], [4, 3, 1, 7, 9, 2, 8, 5, 6], [6, 8, 7, 5,
> 4, 3, 1, 9, 2], [2, 5, 3, 4, 6, 9, 7, 1, 8], [7, 1, 8, 2, 3, 5, 9, 6, 4],
> [9, 6, 4, 1, 7, 8, 2, 3, 5]], [[0, 4, 5, 9, 8, 7, 6, 2, 1], [1, 9, 2, 6, 5,
> 4, 3, 8, 7], [8, 7, 6, 3, 2, 1, 5, 4, 9], [5, 2, 9, 8, 1, 6, 4, 7, 3], [4,
> 3, 1, 7, 9, 2, 8, 5, 6], [6, 8, 7, 5, 4, 3, 1, 9, 2], [2, 5, 3, 4, 6, 9, 7,
> 1, 8], [7, 1, 8, 2, 3, 5, 9, 6, 4], [9, 6, 4, 1, 7, 8, 2, 3, 5]]]
>
> Let me know if you want me to send the rest of my code.
>
> Jen.
>
>
> On 17/03/11 17:03, Jesù¸ Gabriel y GaláÏ wrote:
>
>> On Thu, Mar 17, 2011 at 5:56 PM, Jen<jen.bottom / gmail.com> wrote:
>>
>>> Hello,
>>>
>>> This question is following on from my post 'making an array of arrays?',
>>> but
>>> as it is about replacing elements I have started a new thread.
>>>
>>> The reply to my last arrays related post did solve one problem, so thanks
>>> very much for that!
>>>
>>> So, I now have an @offspring array that takes copies of @board (a sudoku
>>> board) according to a population specified by the user.
>>>
>>> The aim is to populate all empty cells in @offspring with random numbers,
>>> but for now I am just populating them with '9'.
>>> Empty cells were represented by '")', but are now represented by '0'
>>> Currently the population is fixed at 4, and my current code is:
>>>
>>> def find_empty!
>>> #Loop through @offspring and where ever there is "_" put a random
>>> number.
>>> 4.times do |i|
>>> if @offspring[i] == 0
>>> then @offspring[i] = 9
>>> end
>>> #For debugging with the test puzzle
>>> puts @offspring.inspect
>>> end
>>>
>>> When I print out offspring I expect the first element to be changed to 9,
>>> as
>>> it was originally set to 0, this is however not the case. I'm sure I'm
>>> being
>>> very dumb, but if someone could please point me in the right direction
>>> that
>>> would be great.
>>>
>>> Note I have tried the same thing but using a for loop instead of the
>>> .times
>>> method. This gave me the same results.
>>>
>> Your method works, so maybe @offspring doesn't contain what you think.
>>
>> ruby-1.8.7-p334 :001> def find_empty!
>> ruby-1.8.7-p334 :002?> #Loop through @offspring and where ever
>> there is "_" put a random number.
>> ruby-1.8.7-p334 :003> 4.times do |i|
>> ruby-1.8.7-p334 :004> if @offspring[i] == 0
>> ruby-1.8.7-p334 :005?> then @offspring[i] = 9
>> ruby-1.8.7-p334 :006?> end
>> ruby-1.8.7-p334 :007?> #For debugging with the test puzzle
>> ruby-1.8.7-p334 :008> puts @offspring.inspect
>> ruby-1.8.7-p334 :009?> end
>> ruby-1.8.7-p334 :010?> end
>> => nil
>> ruby-1.8.7-p334 :011> @offspring = [0,0,0,0]
>> => [0, 0, 0, 0]
>> ruby-1.8.7-p334 :012> find_empty!
>> [9, 0, 0, 0]
>> [9, 9, 0, 0]
>> [9, 9, 9, 0]
>> [9, 9, 9, 9]
>> => 4
>> ruby-1.8.7-p334 :013> @offspring
>> => [9, 9, 9, 9]
>>
>> Can you add the inspecting puts at the beginning of the method and
>> show us the result?
>>
>> Jesus.
>>
>>
>
>
>
--0016e6dab13fa14547049eb4c5df--