Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Conceito de each_with_index

def encontra_jogador (mapa)
    caractere_do_heroi = "H"
    mapa.each_with_index do |linha_atual, linha|
        coluna_do_heroi = linha_atual.index caractere_do_heroi
        if coluna_do_heroi
        end
end

Não entendi muito bem o conceito e a utilização dessa função. Alguém poderia me explicar melhor?

1 resposta
solução!

Olá Priscila.

Basicamente o each_with_index permite percorrer o Enumerable (array, map, etc) e execute um bloco de código para cada item percorrido.

No código do exemplo, a cada iteração a variável linha_atual receberá o item atual do mapa na iteração, e linha receberá o índice (0, 1, 2, ...).

Segue um outro exemplo:

hash = Hash.new
%w(cat dog wombat).each_with_index { |item, index|
  hash[item] = index
}
hash   #=> {"cat"=>0, "dog"=>1, "wombat"=>2}

Neste exemplo são realizados os seguintes passos:

  1. Cria um novo Hash
  2. Para cada elemento do array (cat, dog wombat), a variavel item receberá o elemento atual do array, e a variável index iniciará em zero e será incrementado em cada iteração. Então esse código poderia ser "traduzido" da seguinte forma:
hash["cat"] = 0
hash["dog"] = 1
hash["wombat"] = 2

Espero que ajude.

Att.