Ruby 一副牌,可将多张牌发给多个玩家
我制作了一副纸牌:Ruby 一副牌,可将多张牌发给多个玩家,ruby,oop,Ruby,Oop,我制作了一副纸牌: class Card attr_accessor :rank, :suit def initialize(rank, suit) @rank = rank @suit = suit end def output_card puts "#{self.rank} of #{self.suit}" end end class Deck def initialize @cards = [] @ranks =
class Card
attr_accessor :rank, :suit
def initialize(rank, suit)
@rank = rank
@suit = suit
end
def output_card
puts "#{self.rank} of #{self.suit}"
end
end
class Deck
def initialize
@cards = []
@ranks = ["Ace", 2, 3, 4, 5, 6, 7, 8, 9, 10, "Jack", "Queen", "King"]
@suits = [:hearts, :spades, :diamonds, :clubs]
@suits.each do |suit|
@ranks.each do |rank|
@cards << Card.new(rank, suit)
end
end
end
def shuffle
@cards.shuffle!
end
def deal
@cards.shift
end
def output_deck
@cards.each do |card|
card.output_card
end
end
end
deck = Deck.new
deck.shuffle
deck.deal
deck.output_deck
puts "Show top card:"
deck.deal.output_card
类卡
属性访问器:等级:套装
def初始化(等级、套装)
@秩=秩
@西装
结束
def输出卡
在{self.suit}中放入“{self.rank}”
结束
结束
甲板
def初始化
@卡片=[]
@排名=[“王牌”、2、3、4、5、6、7、8、9、10、“杰克”、“女王”、“国王”]
@套装=[:红桃、黑桃、钻石、梅花]
@各就各位|
@排名。每个人都做排名|
@这个问题似乎有点像家庭作业。。。。尽管如此,如果你详细说明你在理解上有困难的地方,这会有所帮助。要求解释OOP以及它如何适用于此实例太广泛了。把问题的范围缩小,我们可以试着给你一个更有用的答案。如果你是OOP新手,只是不知道如何使用这个术语来提问,那么就使用你更熟悉的其他编程风格中的术语。再说一次,我对一般的编码非常陌生,虽然这本身就是家庭作业,但不是为了分数或类似的东西。这仅仅是我的导师(做一个在线训练营)分配给我的额外任务,我直到周五才有机会再次见到他,所以我希望在此期间有人能帮助我,这样我就可以继续学习实际的课程。我和他们在一起的时间非常有限,所以我认为这是一个寻求帮助的好地方。对不起,如果我不是这样的话。
class Player
attr_accessor :name, :cards
def initialize(name)
@name = name
@cards = []
end
end
class HoldEmPoker
def cards_per_player
2
end
end
class Dealer
def initialize(deck, game)
@deck = deck
@game = game
end
def deal_to(player)
@game.cards_per_player.times do
player.cards << @deck.deal
end
end
end
p1 = Player.new("Negreanu")
p2 = Player.new("Ivey")
p3 = Player.new("Hellmuth")
players = [p1, p2, p3]
deck = Deck.new
deck.shuffle
game = HoldEmPoker.new
dealer = Dealer.new(deck, game)
players.each { |p| dealer.deal_to(p) }
p1.cards #=> an array with two Card objects
def deal(players)
players.each do |player|
@game.cards_per_player.times do
player.cards << @deck.deal
end
end
end
players = [...]
dealer.deal(players)