我正在尝试学习如何使用 Ruby,作为我的第一个应用程序,我想构建一个基于控制台的 Blackjack 游戏。
我对 Ruby 结构不太熟悉,我学习并感到宾至如归的唯一方法就是构建东西并从错误中学习。
我正在考虑创建一个 Card 类,并且有一个 Stack 类,其中包含一个 Card 集合。
但是我不知道需要使用什么内置类型来保存这些 Card 对象。
这是我的卡片类别:
class Card
attr_accessor :number, :suit
def initialize(number, suit)
@number = number
@suit = suit
end
def to_s
"#{@number} of #{@suit}"
end
end
由于我来自 C#,所以我想到使用类似 List Cards {get;set;} 的东西 - Ruby 中是否存在类似的东西,或者也许有更好的更 ruby 式的方法来做到这一点。
最佳答案
Ruby是一种动态语言,因此它通常不依赖于严格的编译时类型检查,从而进行构造,例如模板化List<Card>
相当无用。 Ruby 通常具有一种通用的有序集合数据类型 - Array
,它非常模仿 ArrayList
Java/C# 的概念。
所以,除非你想要Stack
想要变得特别,你可以使用 Array
原样:
@stack = []
@stack << Card.new(6, :spades)
@stack << Card.new(10, :hearts)
或扩展Array
以某种方式:
class Stack < Array
# some ultra-cool new methods
end
@stack = Stack.new
@stack << Card.new(...)
关于ruby - 二十一点游戏的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5059931/