Как реализовать тузы в игре 5-Card-Draw? - PullRequest
0 голосов
/ 30 марта 2019

Я прохожу онлайн-курс по программированию на Ruby, и мне нужно сделать игру 5-Card Draw одним из проектов. Все шло хорошо, пока я не понял, что у Ace могут быть два значения.

До сих пор я сделал 3 класса: карта, колода и рука. В настоящее время я работаю над классом 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. Я не уверен, как поступить с тузом, потому что он может иметь значение 1 или 15. Любая помощь / предложение приветствуются.

1 Ответ

1 голос
/ 30 марта 2019

«Туз может иметь два значения» - неправильный способ думать об этом. Просто сделайте тузов высокими, всегда. Затем, в коде, который проверяет прямые, вы должны в особом случае колесо. То есть стрит определяется как «5 карт в последовательности рангов, или A-2-3-4-5».

...