我正在修改一个基本的塔内游戏,并试图获得用户输入两次,但打印两个提示在同一行(由第一个输入分开)。我找了一段时间,也许我用错了词。我假设新行应该是gets,或者将其设置为变量,但是如何去掉它呢?谢谢!

print "Move FROM which tower? (1 / 2 / 3) "
answer1 = gets.chomp.to_i
print "...TO which tower? (1 / 2 / 3) "
answer2 = gets.chomp.to_i

我想要这个:
从哪个塔出发?(1/2/3)1…去哪座塔?(1/2/3)2个
但我明白了:
*从哪个塔出发?(1/2/3)1个
…去哪座塔?(1/2/3)2个
(粗体输入)

最佳答案

即使在chomp之后也得到一个新行的原因是,在终端中,您已经输入了显示新行的回车键。
你想要的可以这样做:

require "io/console"
print "Move FROM which tower? (1 / 2 / 3) "
x = STDIN.getch.to_i
print x
print "...TO which tower? (1 / 2 / 3) "
y = STDIN.getch.to_i
print "#{y}\n"
print "Result: (#{x}, #{y})"

注意,这将给出以下输出:
$ ruby tower.rb
Move FROM which tower? (1 / 2 / 3) 1...TO which tower? (1 / 2 / 3) 2
Result: (1, 2)

注意,这只从STDIN中获取一个字符。

关于ruby - 在Ruby中,如何在用户输入后在同一行上打印下一个提示符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28704337/

10-12 05:46