Quando movimento o personagem ele não apaga a posição anterior e não passa da coluna número 3 do meu mapa . Alguem sabe como resolver ?
Main.rb
require_relative 'Logica'
main()
Logica.rb
require_relative 'UI.rb'
def leMapa(numero)
arquivo = "Mapa_#{numero}.txt"
texto = File.read (arquivo)
mapa = texto.split ("\n")
return mapa
end
def encontraJogador(mapa)
caractereDoHeroi = "H"
mapa.each_with_index do | linhaAtual , linha |
linhaAtual = mapa[linha]
colunaDoHeroi = linhaAtual.index (caractereDoHeroi)
if (colunaDoHeroi != nil)
return [linha , colunaDoHeroi]
end
end
#NÃO ACHEI
end
def calculaNovaPosicao(heroi , direcao)
case direcao
when "W"
heroi[0] -= 1
when "S"
heroi[0] += 1
when "A"
heroi[1] -=1
when "D"
heroi[1] += 1
end
return heroi
end
def joga(nomeUsuario)
mapa = leMapa(1)
while true
desenhaMapa(mapa)
direcao = pedeMovimento()
heroi = encontraJogador (mapa)
novaPosicao = calculaNovaPosicao(heroi , direcao)
if (novaPosicao[0] < 0)
next
end
if (novaPosicao[1] < 0)
next
end
if (novaPosicao[0] >= mapa.size)
next
end
if (novaPosicao[1] >= mapa[0].size)
next
end
if (mapa [novaPosicao[0]] [novaPosicao[1]] == "X")
next
end
mapa [heroi[0]] [heroi[1]] = " "
mapa[novaPosicao[0]] [novaPosicao[1]] = "H"
end
end
def main()
nomeUsuario = daBoasVindas()
joga(nomeUsuario)
end
UI.rb
def daBoasVindas()
puts ("\n\n")
puts ("=====================================================================")
puts ("BEM VINDO AO FOGE-FOGE ")
puts ("=====================================================================")
puts ("\n\n\n")
puts ("=====================================================================")
puts ("QUAL É O SEU NOME : ")
puts ("=====================================================================")
nome = gets.strip
puts ("\n\n")
puts ("=====================================================================")
puts ("COMEÇAREMOS O JOGO PARA VOCÊ , #{nome.upcase}")
puts ("=====================================================================")
return nome
end
def desenhaMapa(mapa)
puts (mapa)
end
def pedeMovimento()
puts ("\n\n")
puts ("=====================================================================")
puts ("PARA ONDE VOCÊ DESEJA IR : ")
puts ("=====================================================================")
puts ("W = PARA CIMA ")
puts ("S = PARA BAIXO ")
puts ("D = PARA DIREITA ")
puts ("A = PARA ESQUERDA")
puts ("=====================================================================")
direcao = gets.strip.upcase
return direcao
end
Mapa_1.txt
XXXXX
X H X
X X X
X X X
X X
X
XXX
X
X F X
XXXXX