Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 一副牌,可将多张牌发给多个玩家_Ruby_Oop - Fatal编程技术网

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)