比较Ruby上的字符串

时间:2014-04-20 05:11:47

标签: ruby string compare

我刚接触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

感谢您的回答,对不起,如果我写错了一些句子,我不会说英语

1 个答案:

答案 0 :(得分:1)

当你做"得到"时,lectura最后会包含换行符。尝试做一个" chomp"在lectura: -     lectura = lectura.chomp 然后再试一次。这样就删除了所有换行符。你也可以使用" bytes"查看字符串中的确切字符以进行调试。     put lectura.bytes

参考: - http://ruby-doc.org/core-2.0/String.html#method-i-chomp