我是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类,可以根据它们在文件中的表示方式创建卡片。
答案 0 :(得分:2)
IO.foreach('cards.txt') do |line|
cards = line.chomp.split.map { |c| Card.new(c) }
hand1 = cards[0, 5]
hand2 = cards[5, 5]
#...
end
...或
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