Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

each_with_index

Bom dia! No exemplo abaixo não entendi muito bem como o segundo parâmetro(linha) é usado na método each_with_index.

Visto que "linha_atual" é o indice do caractere_do_heroi dentro da matriz, o que esse segundo parametro (linha) é?

def encontra_jogador(mapa) #mapa é uma matriz

    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
            #achei! linha e coluna
        end
    # não achei
end
2 respostas

Oi Gabriel, linha_atual é o valor da posição atual da matriz, enquanto que linha é o indice da linha.

solução!

Gabriel, considerando esta linha de código...

mapa.each_with_index do |linha_atual, linha|

... a variável que representa o índice é a variável linha, ficando a cargo da variável linha_atual armazenar os caracteres daquela linha no mapa. Neste pequeno trecho de código que você postou, salvo se ele estiver abreviado, a variável linha não é utilizada e poderia ser utilizado...

mapa.each do |linha_atual|

O que o código está fazendo é procurando em cada linha do mapa (linha_atual) qual a coluna (linha_atual.index) que o caractere_do_heroi se encontra.