理清思路

一个Python程序,实际上是由很多的模块、函数有机组合在一起而成的,我给大家画了张图(手动滑稽

那要开始写一个Python程序,首先我们应该确定这个程序大致的流程是如何的,其中需要实现那些功能;接着再逐一去开发需要实现的功能;最后再把它们整合在一起,做一些细节的调整。

本实战接下来的所有小节,都是我的个人思路,大家完全可以反驳并提出更好的方法。

我先根据上一节说的游戏规则,整理一下“Python21点简化版”应该有什么样的流程

  1. 首先,需要两个参与者————电脑和玩家、一副去掉大小王的牌,并将这副牌打乱(洗牌)
  2. 接着,从这副牌中拿出一张发给玩家、一张发给电脑,又一张发给玩家,又一张发给电脑,并在屏幕上公示玩家、电脑拿到的牌。
  3. 然后,询问玩家是再抽一张,还是停牌
    • 如果玩家再抽一张,则要判断此时玩家手上3张牌点数是否大于21
      • 如果大于21,玩家爆牌
      • 如果小于21,回到流程3
    • 如果玩家停牌,继续流程4
  4. 现在,判断电脑的点数和是否小于17
    • 电脑点数和小于17,则电脑必须再抽一张牌,并回到流程4
    • 电脑点数和大于等于17但小于等于21,电脑必须停牌,继续流程5
    • 电脑点数和大于21,电脑爆牌
  5. 比较玩家和电脑手中点数和哪个更接近21
    • 电脑更接近21,电脑胜
    • 玩家更接近21,玩家胜
    • 双方均为21,但电脑拿到黑杰克,电脑胜
    • 双方均为21,但玩家拿到黑杰克,玩家胜
    • 平局

 

这个流程要想走完,我觉得会需要以下功能

  1. 洗牌:上一章第五节的练习题中我们生成了一个有52张牌的列表,现在我需要写一个函数,先生成这个列表,再将其顺序打乱
  2. 发牌:玩家或电脑抽牌,实际上就是程序给他们发牌的过程。需要从洗好的牌中拿出一张,“发给“玩家或者电脑
  3. 计算点数和:我们需要一个函数来计算当前玩家或者电脑手上的牌点数和是多少
  4. 胜负判定:我们需要一个函数根据我们胜负规则来判断谁输谁赢

 

差不多了~ 下面,我就来逐一实现这些功能,并将它们整合在一起形成最终的程序。

 

如果还有什么问题或者发现了文章的错误,欢迎给我留言!邮箱可以随便乱写~

发表评论

邮箱地址不会被公开。 必填项已用*标注