当前课程知识点:Python 交互式程序设计导论 > 第6周 > B 课程视频(平铺图片) > “华容道”游戏
返回《Python 交互式程序设计导论》慕课在线视频课程列表
实际上 华容道游戏是三国故事里面非常经典的一个章节
中国老百姓都家喻户晓
也有很多厂家根据这个故事做成游戏 玩具店里都可以买到这个游戏
现在看到的就是我们的道具 我们摆起来看看
这是最典型的华容道横刀立马的布局
据说是八十七步可以把曹操从这个位置移出去
下面看看 我们来把它移出去 你来数步骤
一 二 三 四 五 六 七 八 九 十
十一 十二 十三 十四 十五 十六 十七 十八 十九 二一
二二 二三 二四 二五 二六 二七 二八 二九 三十 三一
三二 三三 三四 三五 三六 三七 三八 三九 四十 四一
四二 四三 四四 四五 四六 四七 四八 四九 五十 五一
五二 五三 五四 五五 五六 五七 五八 五九 六十
六一 六二 六三 六四 六五 六六 六七 六八 六九 七十
七一 七二 七三 七四 七五 七六 七七 七八 七九 八十
八一 八二 八三 八十三步才能走出来
挺好玩的游戏 下面我们来看一下我们开发好的华容道游戏 运行效果
同样 把我们给打提供的模版代码拷贝到pycharm以后呢
这个游戏需要的一些全局变量
并且给出了旗子,这些图片资源
需要同学们完成的是以下一些函数
比如说,绘制所有的旗子这个函数,这个函数我们会在drow函数里面调用
还有检测旗子发生碰撞,这个碰撞指的是
旗子左右移动的时候要检测哪个方向可以移动
还有是不是碰到了边界,如果碰到边界它要停下来
还有如果我们已经把曹操释放出去了,要绘制通关成功的信息
class figure 这个旗子类呢我们在上一讲视频里头也讲过了
而,我们操作这个旗子呢是通过鼠标来操作的
首先鼠标点击这个事件里头要记录鼠标点击的位置
来判断鼠标点击的那个位置上有没有旗子,如果有旗子
我们记录它的位置,然后鼠标拖动
拖动的距离我们可以来判断在x周上面大还是在y周上面大
如果在x 周上大那就是水平方向移动
如果在y周上大就在垂直方向移动
当然也可能向上移动或者向下移动
这根据我们鼠标具体拖动的方向来决定
然后来设置旗子的mouse-drag这个属性
一旦mouse-drag属性从原来的none设置成了你确定的方向
它自己有个绘制函数能够向哪个方向继续移动
但它有个监测的方法,如果碰到边界或者碰到其它的旗子它会自动停下来
最后用这个drow函数把旗子整个绘制出来
当然start-game这个函数能够初始化的都是全局变量
同时我们游戏启动的时候也会调用一次
好,现在我们看看游戏运行的效果
注意看,运行一下
第一步,第二部,第三部,第四部,第五部,第六步,第七部,第八步
赵云朝下,兵朝下,关羽朝左,兵朝上,兵朝右
兵朝上,赵云朝右,兵朝右,兵朝下,关羽朝下
兵向左,兵向左,赵云朝上,黄忠朝上,兵向右,兵向右
关羽向下,兵向下,兵向左,赵云向左,黄忠朝左,张飞向下,曹操朝右
赵云向左,马超下来,曹操向右
张飞上去,黄忠向右
兵向上,兵向左,再向上
关羽向右,马超下来,赵云下来
兵到左边去,曹操下来,兵往右
兵向上,在往右,兵向上,赵云向上
马超向左,兵向左,再下来,曹操继续下
兵向下,再朝左,张飞朝左,黄忠向上
曹操朝右,兵向下,兵向下,兵向右
赵云向上,马超向上,兵向左
兵下来,兵上去,曹操向左,黄忠下来
张飞左,兵向左,兵向左,赵云向右
马超上去,曹操向左,兵下来,兵下来
张飞朝左,黄忠上去,兵上去,关羽上去
兵移开,兵也向右移,曹操下来,兵也往过移
兵往过移关羽往上移,兵向上,兵向右
曹操向右,OK,通关成功
好,谢谢大家观看,咱们下次再见
-课程简介
--课程简介
-A 课程视频(算数操作符及表达式)
--绪论
-B 课程视频(变量及赋值)
--变量
--项目提交
-C 辅助视频(计算机结构、Python开发环境安装)
-D 辅助视频(如何提交项目)
--项目提交
-第0周--小测验
-本周项目:"我喜欢Python"
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
--项目提交
-A 课程视频(函数)
--函数
--其它操作符
--随机函数
-B 课程视频(逻辑及表达式)
--逻辑值和比较
--条件
--编程技巧
-第1周--小测验
-本周项目:“老虎杠子鸡虫”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(Python交互式应用)
--事件驱动编程
--按钮
-B 课程视频(输入框、全局变量)
--输入框
--编程技巧
-第2周--小测验A
-第2周--小测验B
-本周项目:猫咪藏在哪个房间
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(画布绘图)
--画布和图形绘制
--字符串处理
--图片和音效
-B 课程视频(计时器)
--计时器
--交互式绘图
--“神奇时钟”游戏
--编程技巧
-第3周--小测验A
-第3周--小测验B
-本周项目:“神奇时钟”
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(列表)
--列表
--键盘输入
--碰撞和反射
-B 课程视频(键盘控制)
--速度控制
--运动
--编程技巧
--“桌上冰球”游戏
-第4周--小测验A
-第4周--小测验B
-本周项目:“桌上冰球”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(鼠标输入、列表进阶)
--鼠标输入
--Video
--Video
--Video
-B 课程视频(字典和图片)
--Video
--Video
--Video
--Video
-第5周--小测验A
-第5周--小测验B
-本周项目:“世界杯八强连连看”
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(类)
--华容道中的类
-B 课程视频(平铺图片)
--平铺图片
--理解对象
--编程技巧
--“华容道”游戏
-第6周--小测验A
-第6周--小测验B
-本周项目:“华容道”游戏
--游戏说明
--程序说明
--编码步骤
--评分标准
--项目模板
-A 课程视频(类进阶及文件操作)
--集合
--文件操作
--文字块类
--处理停止的文字块
-B 课程视频(游戏状态控制)
--游戏记分规则
--编程技巧
-第7周--小测验A
-第7周--小测验B
-本周项目:决战三字经
--游戏说明
--程序说明
--编程步骤
--评分标准
--项目模板
-A、课程视屏(精灵集合)
--Video
--精灵类
--战士类
--编程技巧
-B、课程视屏(动画)
--精灵碰撞
--精灵动画
--编程技巧
--保卫家园游戏
-第8周--小测验
-本周项目:守卫家园
--游戏说明
--程序说明
--编程步骤
--评分标准
--项目模板