当前课程知识点:Python 交互式程序设计导论 > 第6周 > 本周项目:“华容道”游戏 > 项目模板
返回《Python 交互式程序设计导论》慕课在线视频课程列表
# “华容道”游戏项目模板 import simpleguitk as gui # 全局变量 canvas_height = 500 # 画布高度,单位为像素 canvas_width = 400 # 画布宽度,单位为像素 game_over = False # 游戏是否结束 figure_moving = False # 是否有运动的人物 figures = {} # 所有人物 steps = 0 # 移动步数 current_figure = None # 鼠标点中的人物 current_center = [] # 鼠标点中人物的中心坐标 original_point = [] # 鼠标点击的初始位置坐标,用来计算鼠标拖动的方向 speed = 5 # 人物移动的速度 machao_image = gui.load_image('202.201.225.74/video/PythonResoure/ProjectResource/images/project6/machao.png') zhangfei_image = gui.load_image('http://202.201.225.74/video/PythonResoure/ProjectResource/images/project6/zhangfei.png') zhaoyun_image = gui.load_image('http://202.201.225.74/video/PythonResoure/ProjectResource/images/project6/zhaoyun.png') huangzhong_image = gui.load_image('http://202.201.225.74/video/PythonResoure/ProjectResource/images/project6/huangzhong.png') guanyu_image = gui.load_image('http://202.201.225.74/video/PythonResoure/ProjectResource/images/project6/guanyu.png') caocao_image = gui.load_image('http://202.201.225.74/video/PythonResoure/ProjectResource/images/project6/caocao.png') soldier_image = gui.load_image('http://202.201.225.74/video/PythonResoure/ProjectResource/images/project6/shibing.png') # Figure类(棋子类) class Figure: def __init__(self, image, src_center, src_size, des_center, des_size, name, move_direction = None): self.image = image # 棋子图像 self.src_center = src_center # 源图像中心坐标 self.src_size = src_size # 源图像大小 self.des_center = des_center # 画布显示图像中心坐标 self.des_size = des_size # 画布显示图像大小 self.name = name # 棋子名称,如“曹操” self.move_direction = move_direction # 移动方向 def get_des_center(self): pass def get_des_size(self): pass def get_name(self): pass def set_move_direction(self, direction): pass def draw(self, canvas): pass def update(self): pass def collide(self, other): global figure_moving, steps pass # # 检查移动与其它静止棋子及边界的碰撞 def check_collide(): pass # 绘制全部棋子 def draw_figures(figures, canvas): pass # 绘制游戏结束信息 def draw_game_over_msg(canvas, msg): pass # 鼠标点击事件的处理函数 def mouse_click(pos): pass # 鼠标拖动事件的处理函数 def mouse_drag(pos): pass # 屏幕刷新事件处理函数 def draw(canvas): pass # 为游戏开始或重新开始初始化全局变量,也是鼠标点击按钮的事件处理函数 def start_game(): pass # 创建窗口初始化画布 frame = gui.create_frame("华容道之横刀立马", canvas_width, canvas_height) label = frame.add_label("移动次数 = 0 步") # 注册事件处理函数 frame.set_draw_handler(draw) # 显示处理,每秒调用draw函数60次 button = frame.add_button('重新开始游戏', start_game, 50) # 鼠标每次点击“重新开始游戏”按钮,调用start_game函数1次 frame.set_mouseclick_handler(mouse_click) # frame.set_mousedrag_handler(mouse_drag) # 启动游戏 start_game() # 为游戏开始或重新开始初始化全局变量 frame.start() # 显示窗口
-课程简介
--课程简介
-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周--小测验
-本周项目:守卫家园
--游戏说明
--程序说明
--编程步骤
--评分标准
--项目模板