我刚接触Ruby编程,我决定学习构建一个刽子手游戏,但是在比较两个字符串时遇到问题,一个来自一个获取(如果我为我做的代码工作正常)和一个被定义的。
这是我的代码:
这是我的'主要':
require_relative("Ahorcado")
juego = Ahorcado.new()
juego.decirPalabra
while juego.hayVidas?
juego.imprimir
lectura = gets
lectura = lectura.to_s;
juego.preguntar lectura
end
puts juego.resultado
和Ahorcado.rb
class Ahorcado
def loadVariables
@palabras = ["java","ruby","python","go"]
@adivinados = []
@gano = false
@vidas = 7
end
def initialize
loadVariables();
@palabra = @palabras[rand(@palabras.length)].split("")
puts "Se ha iniciado un juego"
@tamano = @palabra.length
puts "Existen #{@tamano} letras"
iniciar
end
def decirPalabra
puts @palabra
end
def preguntar letra
@vidas -= 1
letra = letra.to_s
temp = @palabra.join
puts temp.eql?(letra) # -> Allways false
if letra == @palabra.join then
@gano = true
puts "gano"
else
for i in 0...@tamano
if letra.eql?(@palabra[i]) then #Allways false
@adivinados[i] = true
@vidas += 1
else
puts "Incorrecto intente otra vez"
end
end
end
end
def comparar letra
@temp = letra;
puts @temp == @palabra[0]
end
def iniciar
for i in (0...@tamano)
@adivinados[i] = false;
end
end
def hayVidas?
return @vidas > 0
end
def resultado
@gano;
end
def imprimir
for i in (0...@tamano)
if @adivinados[i] then
print @palabra[i]+" "
else
print "_ "
end
end
puts
end
end
感谢您的回答,对不起,如果我写错了一些句子,我不会说英语
答案 0 :(得分:1)
当你做"得到"时,lectura最后会包含换行符。尝试做一个" chomp"在lectura: - lectura = lectura.chomp 然后再试一次。这样就删除了所有换行符。你也可以使用" bytes"查看字符串中的确切字符以进行调试。 put lectura.bytes
参考: - http://ruby-doc.org/core-2.0/String.html#method-i-chomp