Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Erro na execucao do codigo

Aparece o erro abaixo na execucao:

Comecaremos o jogo para voce, Alexandre XXXXX X H X X X X X X X X X X XXX X X F X XXXXX Para onde deseja ir? D Traceback (most recent call last): 3: from main.rb:3:in <main>' 2: from C:/Users/Games/Desktop/fogefoge/fogefoge.rb:44:ininicia_fogefoge' 1: from C:/Users/Games/Desktop/fogefoge/fogefoge.rb:27:in joga' C:/Users/Games/Desktop/fogefoge/fogefoge.rb:27:in[]=': no implicit conversion from nil to integer (TypeError)

C:\Users\Games\Desktop\fogefoge>

o codigo esta a baixo

require_relative 'ui'

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

    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
                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

Oi Alexandre, isso acontece quando você tenta fazer um movimento ou assim que o jogo inicia? Está acontecendo um erro de conversão, em algum lugar você precisa de um número mas está recebendo um valor nulo (vazio, sem valor). E por isso esse erro.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software