如何在Ruby中逐行读取数据?
我是Ruby新手,正在创建一个扑克游戏应用程序。我试图从一个文本文件中读入每个玩家的卡片。文本文件中的数据如下所示:如何在Ruby中逐行读取数据?,ruby,file-io,io,Ruby,File Io,Io,我是Ruby新手,正在创建一个扑克游戏应用程序。我试图从一个文本文件中读入每个玩家的卡片。文本文件中的数据如下所示: 8C TS KC 9H 4S 7D 2S 5D 3S AC 5C AD 5D AC 9C 7C 5H 8D TD KS 3H 7H 6S KC JS QH TD JC 2D 8S 等等。每行的前5张是一个人的牌,另外5张是另一个人的牌。我将如何阅读这些数据?我已经编写了一个Card类,它可以根据文件中的表示方式创建卡片 IO.foreach('cards.txt') do |l
8C TS KC 9H 4S 7D 2S 5D 3S AC
5C AD 5D AC 9C 7C 5H 8D TD KS
3H 7H 6S KC JS QH TD JC 2D 8S
等等。每行的前5张是一个人的牌,另外5张是另一个人的牌。我将如何阅读这些数据?我已经编写了一个Card类,它可以根据文件中的表示方式创建卡片
IO.foreach('cards.txt') do |line|
cards = line.chomp.split.map { |c| Card.new(c) }
hand1 = cards[0, 5]
hand2 = cards[5, 5]
#...
end
或者
我已经回答了一部分,但你基本上答对了。我唯一的不同点是,你可以做
line.chomp.split.map(&Card.method(:new))。每个片段(5)
。@Kimball:不是Python,TIMTOWTDI:)
handpairs = File.open('cards.txt') do |f|
f.each_line.map { |line|
line.chomp.split.each_slice(5).map { |cs|
cs.map { |c| Card.new(c) }
}
}
end