![4.4综合问题的解决【新教材】2021-2022学年教科版(2019)高中信息技术必修一课件01](http://img-preview.51jiaoxi.com/3/14/13866663/0/0.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![4.4综合问题的解决【新教材】2021-2022学年教科版(2019)高中信息技术必修一课件02](http://img-preview.51jiaoxi.com/3/14/13866663/0/1.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![4.4综合问题的解决【新教材】2021-2022学年教科版(2019)高中信息技术必修一课件03](http://img-preview.51jiaoxi.com/3/14/13866663/0/2.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![4.4综合问题的解决【新教材】2021-2022学年教科版(2019)高中信息技术必修一课件04](http://img-preview.51jiaoxi.com/3/14/13866663/0/3.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![4.4综合问题的解决【新教材】2021-2022学年教科版(2019)高中信息技术必修一课件05](http://img-preview.51jiaoxi.com/3/14/13866663/0/4.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![4.4综合问题的解决【新教材】2021-2022学年教科版(2019)高中信息技术必修一课件06](http://img-preview.51jiaoxi.com/3/14/13866663/0/5.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![4.4综合问题的解决【新教材】2021-2022学年教科版(2019)高中信息技术必修一课件07](http://img-preview.51jiaoxi.com/3/14/13866663/0/6.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![4.4综合问题的解决【新教材】2021-2022学年教科版(2019)高中信息技术必修一课件08](http://img-preview.51jiaoxi.com/3/14/13866663/0/7.jpg?x-oss-process=image/resize,w_794/sharpen,100)
高中信息技术4.4 综合问题的解决评课ppt课件
展开4.4 综合问题的解决
★ 学会分析任务,描述需求分析,知道需要解决的关键问题。 ★ 体验软件开发的基本流程。
春节是我国一个古老的节日,也是全年最重要的节日。“迎福”“纳福” 是迎新春必不可少的传统项目。有道是:“ 大福小福全家福, 有福享福处处福。知福来福有祝福,清福洪福添幸福。接福纳福年年福,守福祈福岁岁福!” 本节我们将围绕“ ‘接福’游戏”项目, 创设游戏情境,实现通过单击鼠标,去接屏幕上不断出现的福字, 并根据成功接到福字的次数记录分值。
任务一 基于需求,分解任务
打开教科书配套资源中的“接福.Py”程序并运行,单击屏幕上不断出现的福字,观察屏幕变化。 在下框中写出这款游戏的功能。
“接福”游戏描述 打开接福程序,单击鼠标,去接屏幕上不断出现的福字,并根据成功接到福字的次数记录分值。
※ 活动1 了解需求,分析问题
需求分析是软件工程中的一个关键过程。需求分析阶段的任务是确定软件系统的功能。通俗地说,就是确定需要计算机“做什么”,想达到什么样的效果。只有在确定了这些需求后,才能够分析和寻求系统的解决方法。
综合考虑游戏功能,需要导入的模块有pygame、randm、sys。其中,pygame模块提供了图像、声音等函数;randm模块用于产生随机数;sys模块包含了跟Pythn环境相关的函数。
pygame是一个专门用来开发游戏的模块,可以包含图像、声音等。它的相关内容主要有:
活动2 分解任务, 设计流程
本项目中设计的重点和难点是人机交互,即如何实时获得鼠标的 状态并对鼠标单击做出正确的响应。也就是不断地进行监听、更新游戏状态、重绘屏幕三个步骤的操作。
更新游戏状态可以理解为程序中的变量值。随着鼠标单击,游戏中的分数需要更新,还有诸如游戏中人物的生命值、怪物数量等,这些状态经常随着鼠标单击或键盘输入等事件的发生而改变。
游戏状态通常随事件的发生而改变,如鼠标单击、键盘输入或者时间的流逝,游戏循环不停地检查是否有新事件产生,并且会根据事件来更新游戏状态,这通常叫作事件处理。
随着游戏状态更新或游戏场景变化, 屏幕上显示的内容也会相应地发生改变。本游戏中福字在窗口随机出现,实际上就是显示不同位置的福字。要达到这个效果,需要完成两个步骤:(1)在新的位置上画出图像; (2)把原来的图像擦掉。 计算机图像可不是铅笔画, 用橡皮擦就能擦掉。 要 “擦掉”某个图像,可以选择“覆盖”它, 通常采用重绘背景或者用其他对象来覆盖的方式。在该游戏中,我们通过重绘背景来覆盖前一个福字。 如何实现监听?
pygame是专为游戏设计的, 自带了一个监听类循环, 不断检查用户的操作, 比如用户按键、移动鼠标或者关闭窗口等。这个循环会在程序运行期间持续工作。其代码框架如下:
while True:#监听所有事件, 获取事件列表fr event in (): if event.type==pygame.QUIT:#Quit事件 sys.exit() #退出程序 #鼠标单击事件 if event.type==pygame.MOUSEBUTTONDOWN:……
在pythn 中,True (真)、False(假)的第一个字符要大写。
以下是本游戏中要用到的程序功能块,包括游戏环境设置、绘制图像、设置初始值等。请将主程序的各功能语句放到合适的位置,完善程序流程图。
1.监听事件获取鼠标单击位置
3.重新绘制背景及图像
4.设置初始值并绘制图像
以下是本游戏中要用到的程序功能块,包括游戏环境设置、绘制图像、设置初始值等。请将主程序的各功能语句放到合适的位置,完善程序流程图。
任务二 组装程序,测试运行
1.创建程序窗口, 设置背景。调用()函数,将返回一个窗口。如果想在窗口上绘制或是放置对象,需要指定这个对象在窗口的具体位置,即坐标。pygame中的坐标系原点在左上角,水平方向为x轴,垂直方向为y轴。
需求分析之后、程序设计之前,需要对系统进行总体设计和详细设 计。总体设计就是在需求分析的基础上对模型细化、分解任务,明确程 序由哪些模块组成。概括地说,就是系统应该如何实现。详细设计主要 指界面设计、过程设计等。
※ 活动1 界面设计
在pygame中,使用图像的最简单方法是调用image函数。通过(filename)来载入图片,filename表示图像文件的路径和名称。图像文件必须和程序在同一文件夹下才可以使用相对路径的引用方式。
以下是一个样例程序。imprt pygame #导入模块pygame.init() #pygame模块初始化#创建一个窗口screen,大小为800*600screen=([800,600]) ('实例') #设置屏幕标题screen. fill((144,238,144)) #窗口填充淡绿色img=('ball.png') #载入ball.png图像到内存#将图像绘制在screen中,图像的左上角在[200, 200] screen.blit(img, [200, 200]) () #窗口刷新
#创建一个窗口screen, 大小为800*600screen=___________________—————————————#设置窗口标题为“接福”back=______________('bj.jpg’) #加载背景图screen.blit(____________,[0,0]) #将背景图画在窗口[0, 0]位置_________________________#刷新画面
根据以上分析完成“接福”游戏的界面设计
([800,600])
2.绘制福字。 在屏幕上出现福宇同祥可以使用以上在屏幕上绘制图像的方法。为了便于游戏循环中反复调用,可以定义成一个函数shwfu,在绘制福字时,需要设置图像显示的位置,因此shwfu中有两个参数,分别表示图像位置的横坐标和纵坐标。def shwfu(x,y): #定义函数,在坐标(x,y)上显示图像gift=('fu.png') #加载福字图像screen.blit(gift,[x,y]) #显示福字在实际使用中,只要提供一对坐标值,就可以调用shwfu了。
3.显示得分。 方法为:先定义显示字体,然后将scre显示出来。为了增加代码的复用性,以便游戏循环中状态更新时反复调用,可以定义成一个函数shwscre。def shwscre(scre): #定义函数,显示分数textfnt=('Arial',30) #字体为Arial,大小30#生成平滑的红色字符串t=textfnt.render('scre:'+str(scre),True, (255,0,0))screen.blit(t,[50,50]) #在窗口显示
4.游戏状态的更新和屏幕的重绘 在pygame的游戏循环中,我们通过调用以下语句来完成游戏状态的更新和屏幕的重绘,请在横线上注明各语句的功能。screen.blit(back,[0,0]) # _ shwscre(scre) # _x=randm. randint(50, 700) # _ y=randm.randint(50, 500) # _shwfu(x,y) # () # (800) #设置两次显示福字之间的延时
随机生成福字水平方向坐标
随机生成福字垂直方向坐标
在(x,y)位置显示福字
活动2 人机交互及程序拼装
在本项目中,人机交互主要体现在鼠标单击上。 需要获取按键的情况,就要在监听事件中增加相应的判断语句。
打开教科书配套资源中的“接福.py",找到相应的代码,仔细阅读并理解各语句的含义,在下面横线上用自然语言描述其对应的功能。
if event.type==pygame.MOUSEBUTTONDOWN: # __________________#获取鼠标按下的坐标并记录在musex,musey中musex,musey=()#判断鼠标是否击中福字,本例中福字宽为60,高为70if musex in range(x,x+60) and musey in range(y,y+70): scre=scre+5#___________________
高中信息技术4.4 综合问题的解决优秀ppt课件: 这是一份高中信息技术4.4 综合问题的解决优秀ppt课件,共18页。PPT课件主要包含了学习目标,“接福”游戏描述,pygame模块,更新游戏状态,pygame,巩固提升,课堂小结等内容,欢迎下载使用。
教科版 (2019)必修1 数据与计算4.4 综合问题的解决公开课课件ppt: 这是一份教科版 (2019)必修1 数据与计算4.4 综合问题的解决公开课课件ppt,共16页。PPT课件主要包含了学习目标,pygam键盘事件,拓展练习,巩固提升等内容,欢迎下载使用。
信息技术教科版 (2019)2.1 计算机解决问题的过程教课ppt课件: 这是一份信息技术教科版 (2019)2.1 计算机解决问题的过程教课ppt课件,共26页。PPT课件主要包含了学习目标,什么是算法,算法有哪些特征呢,算法的特征,算法的描述方法,课堂练习等内容,欢迎下载使用。