中小学教育资源及组卷应用平台 教学单元 学习领域二:程序设计入门 教学主题 项目2-3 开发弹球游戏 教学目标 能够定义和调用类和对象。 能够创设窗口对象并修改窗口属性。 能够综合分析任务并对小任务进行流程图、算法分析。 通过对大任务的拆解,能够有模块化思维,具有面向对象的初步想法,提升问题解决能力。 通过大任务拆解为小任务让学生学会面向对象算法思维,同时提升利用程序设计解决问题的意识。 核心素养培养 通过大任务拆解为小任务让学生学会面向对象算法思维,同时提升利用程序设计解决问题的意识。 教学内容 类和对象;创建画布;弹球游戏 教学媒体 电子白板、PPT 教学过程 教学环节 教师活动 学生活动 设计意图 情境导入 播放弹球游戏视频。 并为学生呈现所使用的全部代码。 由学生执行代码。 from tkinter import * import random import time class Ball: def __init__(self, huabu, color): self.huabu = huabu self.id = huabu.create_oval(10, 10, 50, 50, fill=color) self.huabu.move(self.id, 295, 100) starts = [-3, -2, -1, 1, 2, 3] random.shuffle(starts) self.x = starts[0] self.y = -1 self.huabukuan = self.huabu.winfo_width() self.huabugao = self.huabu.winfo_height() def draw(self): self.huabu.move(self.id, self.x, self.y) p = self.huabu.coords(self.id) if p[1] <= 0: # 如果小球碰到画布顶部 self.y = 1 if p[3] >= self.huabugao: # 如果小球碰到画布底部 self.y = -1 if p[0] <= 0: self.x = 1 if p[2] >= self.huabukuan: self.x = -1 win = Tk() win.title("Ball Game") win.resizable(0, 0) #win.wm_attributes("-topmost", 1) huabu = Canvas(win, width=600, height=400) huabu.pack() win.update() ball = Ball(huabu, 'blue') while 1: ball.draw() win.update_idletasks() win.update() time.sleep(0.01) 观看视频并执行代码素材。 模仿左侧代码并执行结果,思考每句代码内涵。 弹球游戏学生能够通过自主分析和设计代码来实现的简易任务,因此先给学生呈现结果,让学生了解完成的目标,激发学生动机。 其次提供完整代码,让学生自主运行,为学生种下基本代码程序任务的种子和轮廓。 任务探究 【任务一、tkinter和time库】 经过任务分析,将开发弹球游戏的任务分解为三个小任务: Python 标准库Tkinter 提供了强大的跨平台图形用户界面(GUI)编程的功能。Tkinter 提供了大量用于 GUI编程的组件,如 button、label、menu、message、canvas等。 GUI-窗体 模仿任务 from tkinter import * root = Tk() #创建一个窗口 root.title("trivial") #设置窗口标题#设置窗口大小 root.geometry('300x120') #禁止调整窗口大小 root.resizable(0,0) #在窗口上建一个“添加线路”按钮 Button(root,text="添加线路",relief="solid",width=10,height=2). pack() #下面的代码实现在窗口上添加一个"查询线路"按钮的功能 root.mainloop() 模仿代码并实现上述图形结果 。 根据教师的引导,学习如何分解任务。 面向对象思维就是对任务进行拆解。 认真学习并记录笔记。 通过探究大探究任务为三个小任务,让学生掌握面向对象的思维模式,同时通过代码的实践模仿,提升代码运行能力,学习基本概念。 from tkinter import * import time win = Tk() win.title("Ball Game") win.resizable(0, 0) huabu = Canvas(win, width=600, height=400) huabu.pack() win.update() 运行代码 根据代码让学生实践代码。 【任务二、类和对象】 播放类和对象的视频,学习和了解如何类的含义,创建和调用类的方法。 Python提供了一个构造方法,其固定名称为"_init_"(两个下画线开头和两个下画线结尾),当创 ... ...
~~ 您好,已阅读到文档的结尾了 ~~