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

`[]=': no implicit conversion from nil to integer (TypeError)

Estou recebendo esse erro e não consigo solucionar:

/Users/wellingtonsousa/Desktop/Programação/Ruby/Ruby III/logic.rb:27:in []=': no implicit conversion from nil to integer (TypeError) from /Users/wellingtonsousa/Desktop/Programação/Ruby/Ruby III/logic.rb:27:injoga' from /Users/wellingtonsousa/Desktop/Programação/Ruby/Ruby III/logic.rb:44:in inicia_fogefoge' from main.rb:3:in' MacBook-Air-de-Wellington:Ruby III wellingtonsousa$ ruby main.rb

require_relative 'ui'

def le_mapa(numero)
    arquivo = "mapa#{numero}.txt"
    texto = File.read(arquivo)
    mapa = texto.split "\n"
end    

def encontra_jogador(mapa)
    caracter_do_heroi = "H"
    mapa.each_with_index do |linha_atual, linha|
        coluna_do_heroi = linha_atual.index caracter_do_heroi
        if coluna_do_heroi != -1
            return [linha, coluna_do_heroi]
        end
    end    
    #nao_achei
end            

def joga(nome)
    mapa = le_mapa(1)

    while true
        desenha(mapa)
        direcao = pede_movimento
        heroi = encontra_jogador(mapa)
        mapa[heroi[0]][heroi[1]] = " "
        case direcao
            when "W"
                heroi[0] -= 1
            when "S"
                heroi[0] += 1
            when "A"
                heroi[1] -= 1
            when "D"
                heroi[1] += 1
        end
        mapa[heroi[0]][heroi[1]] = "H"
    end
end

def inicia_fogefoge
    nome = da_boas_vindas
    joga(nome)
end
1 resposta
solução!

Já consegui!