有关Python,统计信息,可视化和童年记忆的故事
Photo by Raivis Razgals on Unsplash
大富翁游戏是世界上最受欢迎的棋盘游戏之一。 它具有许多不同的许可和本地化版本。 孩之宝(Hasbro)刚刚发布了具有三重属性的更长版本的《大富翁》(Monopoly),这将永远发挥作用。
这是一个棋盘游戏,可以给人们(美好的)童年记忆。 我曾经在假期与亲戚的孩子一起玩,但我通常会输。
我玩《大富翁》已有多年了。 但是我真的很想知道我是否可以玩得更好,以增加获胜的机会。 也许我可以胜利。 今天,我将分析如何最大程度地赢得大富翁游戏。
我们的分析涉及Python,统计数据和可视化。
就像现实世界一样,游戏中的属性是不相等的。 它们带有不同的价值和奖励。 许多人认为," Go"磁贴(梅菲尔/木板路或蓝色2号)之前最昂贵的房产可以为他们带来一笔财富,而其他人则更喜欢收集整套铁路或公用事业。
约定- 命名:我们将通过面板上的颜色来命名属性,因为它们在全球范围内的不同版本中具有不同的名称。 事实证明,还有多种配色方案,但是我们将按价格升序使用以下版本-棕色,天蓝,粉红色,橙色,红色,黄色,绿色和蓝色。 也有铁路和公用事业。
- 标记:我们使用0到39之间的整数标记"转到蓝色2"(即Mayfair / Boardwalk)中的每个图块。
- 成本:投资房地产的玩家支付a)一次性土地价格,b)如果他们决定建造一些房屋价格。
- 收入:当一名对手登陆其拥有的物业时,其获得租金收入。
- 双打:两个骰子的号码相同。 掷双打的玩家可以再次掷骰子。
您想在游戏中实现什么? 你想赢。 成为唯一的幸存者。 赚钱。 您想明智地投资可以为您带来利润的房地产。 我们到了那里。
Photo by Annie Spratt on Unsplash
为了投资某些物业,收支平衡需要多长时间? 我可以在游戏中赚多少钱? 我们需要建立一些指标来衡量您的效果。
- 收支平衡点:要收回您投资的资金需要多少对手转弯? 棕色的套装非常便宜,但是要花很多时间才能收回您的钱吗? 蓝色的很贵,但也许我会很快就把钱还回来?
- 预期利润:游戏中每组资产的预期利润是多少? 如果一场比赛中有无限多回合,我们非常有信心Blue套组可以为您带来最大的利润。 但是,当其他所有人的钱都用尽时,游戏结束。 蓝军可能不值得在短游戏中进行投资。
一组属性的性能取决于a)收入,b)成本以及c)对手降落在其上的可能性。 如果您的对手以某种方式有可能是房地产A的2倍,那么即使B的租金更高,也可能值得投资。 薄利多销。
我们知道物业的成本和租金。 他们写在他们的地契上。 但是我们不知道它们的着陆概率。 让我们找出答案。
b) 方法论—蒙特卡洛我们将着陆概率定义为玩家在回合结束时或在下一局掷骰之前(如果获得双倍奖励)在图块上结束的概率。
游戏中有许多因素会影响着陆概率。 所有玩家都从0(开始为0)开始。 他们按自己的顺序掷出一对骰子,并相应地在棋盘上移动。 由于滚动7的可能性比获得2或12的可能性大得多,因此某些图块可能比其他图块更常被访问。
Photo by Geoff Brooks on Unsplash
当玩家落在不是属性的"临时"图块上时,他们会遵循该图块的规则,并最终可能会在另一个图块中结束。
- 到达"进入监狱"(第30层)的玩家显然被送往监狱(第10层)。
- 到达公益金(CC)(2、17和33组)的玩家从CC牌组中抽牌并据此移动。 他们可能会停留在当前位置,但可能会被发送到Go或Jail。
- 到达机会(第7、22和36号瓷砖)的玩家从"机会"牌中抽牌并据此移动。 他们可能会停留在当前的位置,但也可能会被发送到Go,Jail,位置5、11、24或39。他们可以向后移动3步。
- 连续滚动三双的玩家将被送进监狱。
您可以立即发现降落到"去监狱"的可能性为零。 玩家不能在没有被送进监狱的情况下最终停留在此砖块上。*请注意,"摆脱监狱免费"卡无需支付银行费用即可使玩家退出监狱,他们不能被用来避免首先进入监狱。
非常复杂。
我们可以使用马尔可夫链和一些巨大矩阵来分析找到着陆概率。 您可以从每个起始图块分析得出到达每个图块的条件概率。 而且我们不会那样做。
另外,我们可以通过蒙特卡洛模拟来估算着陆概率。 蒙特卡洛方法通过重复随机抽样来近似分布。 在这种情况下,我们可以模拟百万富翁游戏一百万次。 我们记录玩家在每个图块上出现的频率。 记录的频率是着陆概率的近似值。 我们模拟的游戏越多,我们就越有信心。
但是怎么做到呢?
c) 实现—面向对象的编程我们模拟板。 我们使用面向对象编程来模拟玩家掷骰子,在棋盘上移动以及其他所有内容。 我们正在Python中实现它,代码可在GitHub上获得。