如何在5张牌抽奖游戏中实现Aces?

问题描述 投票:0回答:1

我正在参加Ruby编程的在线课程,我需要将5-Card Draw游戏作为其中一个项目。一切顺利,直到我意识到Ace可以有两个值。

到目前为止,我已经完成了3个课程:Card,Deck和Hand。我目前正在上手工课。其他两个类如下:

class Card

    attr_reader :number, :sign, :color

    def initialize(number, sign, color)
        @number = number
        @sign = sign
        @color = color
    end

end
require_relative 'card.rb'

class Deck

    def initialize
        @deck = make_deck
    end

    def make_deck
        deck = []
        signs = {'Club' => 'black', 'Spade' => 'black', 'Heart' => 'red', 'Diamond' => 'red'}
        n = 1
        while n < 15
            if n == 11
                n += 1
                next
            end
            i = 0
            4.times do
                sign = signs.keys[i]
                color = signs[sign]
                deck << Card.new(n, sign, color)
                i += 1
            end
            n += 1
        end
        deck
    end

end

所以,当我开始编写Poker Hands in Hand课程时,问题出现了。我不知道如何处理Ace,因为它的值可以是1或15.任何帮助/建议都是受欢迎的。

ruby poker
1个回答
1
投票

“Ace可以有两个值”并不是思考它的正确方法。总是让A更高。然后,在检查直道的代码中,你需要特殊情况下的轮子。也就是说,直线被定义为“等级序列中的5张牌,或者A-2-3-4-5”。

© www.soinside.com 2019 - 2024. All rights reserved.