the changes look like they ensure you don't add elements, which i'm
guessing is the desired behaviour

the loop at line 42-44 looks like its setting all elements of mapa
to @fumaca, but i would guess you rather intend to copy the contents of
expansao?
In which case line 2 should be:
 mapa[x][y] =3D expansao[x][y]

however that can be shortened to:
mapa =3D expansao

Since your are returning the array, do you really need to copy it to mapa??


On Sun, Nov 24, 2013 at 6:34 AM, Rafael Moraes <
rafaelmoraesdefreitas / gmail.com> wrote:

> @Chris Hulan,
> I thought I could improve that code, so I made this
>
> https://bitbucket.org/rafaelmoraesdefreitas/nuvem-de-cinzas/src/303ae3987=
a83a0772ad886b7c2bbbc4e4283d751/desafio.rb?at=3Dmaster
>
> Could you look at it and come with some critics and/or advices?
>
>
> On 23 November 2013 14:55, Chris Hulan <chris.hulan / gmail.com> wrote:
>
>> Note that Ruby arrays re-size as needed
>>
>> so when j =3D 7 (the last index of a 8 element array)
>> and you assign a value to j+1, then the array is expanded to 9 elements
>> and the value stored
>>
>>
>>
>>
>> On Fri, Nov 22, 2013 at 9:26 PM, Rafael Moraes <
>> rafaelmoraesdefreitas / gmail.com> wrote:
>>
>>> Only correcting myself
>>> none of the ifs with minus operations
>>>
>>>
>>> On 23 November 2013 00:23, Rafael Moraes <
>>> rafaelmoraesdefreitas / gmail.com> wrote:
>>>
>>>>
>>>>
>>>> I know nothing about tests, I am not able to help you in this matter
>>>>
>>>>
>>>>
>>>> but I can tell you the following:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>  if !esperado[i-1][j].nil?              esperado[i - 1][j] =3D "X"    =
        end            if !esperado[i+1][j].nil?              esperado[i+1]=
[j] =3D "X"            end            if !esperado[i][j-1].nil?            =
  esperado[i][j-1] =3D "X"            end            if !esperado[i][j+1].n=
il?              esperado[i][j+1] =3D "X"          end
>>>>
>>>>
>>>>
>>>>
>>>> None of these if will evaluate to false, lets say you are at position =
[0, 0] and apply the [i - 1][j]
>>>>
>>>>
>>>> it will become [-1, 0]
>>>>
>>>>
>>>> and index -1 is the last index of an array
>>>>
>>>>
>>>> example:
>>>>
>>>> irb(main):001:0> array =3D ['first', 'second', 'third']
>>>> =3D> ["first", "second", "third"]
>>>> irb(main):002:0> array[0]
>>>> =3D> "first"
>>>> irb(main):003:0> array[-1]
>>>> =3D> "third"
>>>>
>>>>
>>>>
>>>> On 21 November 2013 17:52, Chris Hulan <chris.hulan / gmail.com> wrote:
>>>>
>>>>> looking at the code, you are adding 'X" to the adjacent cells when an
>>>>> 'X' is found in a given cell,
>>>>> but what is the expected behaviour when a 'X' is found on an edge?
>>>>>
>>>>>
>>>>> On Thu, Nov 21, 2013 at 2:30 PM, Ronny Amarante <lists / ruby-forum.com=
>wrote:
>>>>>
>>>>>> Hi guys, i don't understand why this happen. Exist another way to us=
e
>>>>>> math expression in arrays?
>>>>>>
>>>>>> expected: [[" ", "X", "X", "X", " ", "X", "X", "X"], ["X", "X", "X",
>>>>>> "X", " ", " ", "X", "X"], ["X", "X", "X", "X", "A", " ", " ", "A"],
>>>>>> ["X", "X", "X", " ", " ", " ", " ", " "], ["X", "X", "X", " ", " ", =
"
>>>>>> ",
>>>>>> "A", " "], [" ", "X", " ", "A", " ", " ", " ", " "], [" ", " ", " ",=
 "
>>>>>> ", " ", " ", " ", " "]]
>>>>>>      got: [[" ", "X", "X", "X", " ", "X", "X", "X", "X"], ["X", "X",
>>>>>> "X", "X", " ", " ", "X", "X"], ["X", "X", "X", "X", "A", " ", " ",
>>>>>> "A"],
>>>>>> ["X", "X", "X", " ", " ", " ", " ", " "], ["X", "X", "X", " ", " ", =
"
>>>>>> ",
>>>>>> "A", " "], [" ", "X", " ", "A", " ", " ", " ", " "], [" ", " ", "X",=
 "
>>>>>> ", " ", " ", "X", "X"]] (using =3D=3D)
>>>>>> ./testes_spec.rb:104:in `block (2 levels) in <top (required)>'
>>>>>>
>>>>>>
>>>>>> The code is here:
>>>>>>
>>>>>> (def Expande)
>>>>>>
>>>>>>
>>>>>> https://bitbucket.org/ronnyamarante/nuvem-de-cinzas/src/dea63a21e63b=
544899c9279e7abea45cadaaacdb/desafio.rb?at=3Dmaster
>>>>>>
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>> --
>>>>>> Posted via http://www.ruby-forum.com/.
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>