2014-09-19 2 views
0

Я пытаюсь добавить целое число получило от метода к строке, я попробовал несколько разных вещей: << и .concat (хотя тот же) += а я выбрал сделать метод из-за функции я работаю, который будет добавлен позже проблема с этим кодом является то, что вместо того, чтобы вернуться my string + firstrandomnumber + secondrandomnumber так далее, так далее он возвращает только my string + latestrandomnumberдобавления случайного числа в строку, используя .concat

def machineSlot() 
    tal1= rand(0..10) 
    return tal1 
end 
#makes the a random number 

if startBool == true 
    #game startof 

    gameRunner=true 
    puts 'pull the lever with x' 
    leverPullTry =gets.chomp 

    while gameRunner 
    #keeps game running 

    i=1 
    slotThread='Your numbers are:' 
    #initialise game rollcount i and string that keeps the numbers 

    if leverPullTry=='x' 
     slotThread.concat(machineSlot.to_s) 
     #if x was entered the slotThread appends a random number 

     puts slotThread 
     #slotThreads current process 

     puts 'pull the lever with x again' 
     i+=1 
     #number of rolls increased 

     leverPullTry =gets.chomp 
    else 
     puts 'try again use type x to pull' 
     leverPullTry =gets.chomp 
     #user didnt manage to input anything correct 

    end 
    end 
end 
+1

Возможно, вам следует переместить 'slotThread = 'Ваши номера:' 'вне цикла while? – August

+0

ну это это смущает .. спасибо, что комментарий tho – user2010884

+0

привет @ user2010884 был моим ответом полезным? – Anthony

ответ

0

Изменить эти две строки :

slotThread.concat(machineSlot.to_s) 
    #if x was entered the slotThread appends a random number 

    puts slotThread 
    #slotThreads current process 

в

puts "#{slotThread}#{machineSlot}" 

Это называется строка интерполяции, что-то используется много в рубин.

Кстати, вы используете CamelCase для обозначения своих переменных и методов, которые не являются соглашением. Не срочно, но я проверил бы this, когда у вас будет время.

Смежные вопросы