第二部分 项目2:玩扑克牌
这个项目(包括接下来的四章)将介绍如何存储、检索和修改计算机内存中的数据。这些技巧将有助于避免在存储和管理数据时错误百出。在这个项目中,你将设计一个扑克牌模拟系统,该系统的基本要求是能够自动洗牌和发牌。尤其是,该系统可以记住发牌的结果,就如真的发牌机一样。可以用这个系统玩扑克牌游戏、占卜或者测试某个算牌策略的效果。
通过这个项目,你将学到以下内容。
· 存储新的数据类型,比如字符串和逻辑值
· 将数据集存储为向量、矩阵、数组、列表或者数据框类型
· 用R加载和存储自己手中的数据
· 从一个数据集中抽取个别数据值
· 在一个数据集中改变个别数据的取值
· 编写逻辑测试程序
· 使用R的缺失值符号NA
为了保证这个项目的简洁性,我将它分成了四个子任务。每个任务都会介绍一个有关用R操作数据的新技巧。
· 任务1:创建一副牌
在第3章中,你将学习如何设计和创建一副虚拟的扑克牌。这副牌其实相当于一个完整的数据集,与数据科学家所使用的数据集并无二致。你将学会如何使用R的数据类型和数据结构完成此项任务。
· 任务2:编写用来发牌和洗牌的函数
在第4章中,你将编写两个配合刚才那副扑克牌使用的函数。一个函数负责发牌,而另一个函数负责洗牌。要想完成这两个函数,你需要知道如何用R从一个数据集中抽取想要的数值。
· 任务3:改变点数系统以适应不同的扑克游戏
在第5章中,你将利用R的记号体系,根据扑克牌游戏规则的不同改变相应的点数系统。例如,War、Hearts和Blackjack等玩法的点数系统并不一样。你将学会如何在一个已有的数据集内部改变数据的取值。
· 任务4:管理扑克牌桌的状态
最后在第6章中,你将让系统记住已经发过的牌。这是一个高阶任务,将会涉及R的环境系统和作用域规则。要想成功完成这个任务,需要仔细掌握R如何搜索和使用存储在计算机中的数据。