这些天在思考中小学阶段学习python,要这么教,要这么样培养核心能力,需要提供什么样的“金手指”给学生。暂时有些初步的想法,通过memorypuzzle这个游戏,把我的一些感悟记下来。
“在Memory Puzzle游戏中,白色的方块盖住了几个图标,如图3-1所示。每种图标都有两个。玩家可以在两个方块上点击,看看方块背后的图标是什么。如果图标是一致的,那么这些方块将保持打开的状态。当游戏板上的所有的方块都打开的时候,玩家就赢了。为了给玩家一个提示,在游戏每次开始的时候,所有方块都快速地打开一次。”
摘录来自: [美] Al Sweigart 斯维加特. “Python和Pygame游戏开发指南。”
-
按任务流程,把草图或者初步的流程框架画出来。这一步不需要具体这么实现,具体这么写程序,只要大致的操作走向即可。
image.png - 核心问题转化,找到这个任务的核心内容,并把它转化成数据结构的问题。
核心问题是两个数据:
a. 把每个位置上的图标信息(shape,color)存储在一个列表里。
b. 每个位置上是否被覆盖的信息,也要存储在一个列表里。
因为整个游戏都是围绕这每个位置是什么,以及是否被覆盖展开的 -
按照流程草图,逐步的寻找和解答关键问题。这里关键问题也就是对应的步骤的一个细化。这一步其实也是在分解问题,因为第一步的每个步骤都比较宽泛,需要进一步分解。分解后的子问题,也基本可以作为后面程序的各个子函数。
image.png
image.png -
按照细化后的步骤,重新整理一份流程图,梳理出主函数的结构。
image.png
其实3,4步并不是一蹴而就的,而是反复细化而成的。
- 完成每一个子函数。
- 调试修改。
网友评论