4.4 综合问题的解决 课件(共22张PPT)-2022—2023学年高中信息技术教科版(2019)必修1

资源下载
  1. 二一教育资源

4.4 综合问题的解决 课件(共22张PPT)-2022—2023学年高中信息技术教科版(2019)必修1

资源简介

(共22张PPT)
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
4.4 综合问题的解决
四、计算与问题解决
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
学习目标
★学会分析任务, 描述需求分析, 知道需要解决的关键问题。 ★体验软件开发的基本流程。
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
“迎福”“纳福” 是迎新春必不可少的传统项目。有道是:“ 大福小福全家福, 有福享福处处福。知福来福有祝福,清福洪福添幸福。接福纳福年年福,守福祈福岁岁福!”
本节我们将围绕“ ‘接了个福’游戏”项目, 创设游戏情境,实现通过单击鼠标,去接屏幕上不断出现的福字, 并根据成功接到福字的次数记录分值。
“接了个福”游戏导入
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
打开教科书配套资源中的“接福.Py”程序并运行,单击屏幕上不断出现的福字,观察屏幕变化。 在下框中写出这款游戏的功能。
“接了个福”游戏描述
鼠标点击随机出现的“福”字,点击到“福”字则加五分,否则不得分。
需求分析是软件工程中的一个关键过程。需求分析阶段的任务是确定软件系统的功能。通俗地说,就是确定需要计算机“做什么”,想达到什么样的效果。只有在确定了这些需求后,才能够分析和寻求系统的解决方法
活动1 了解需求,分析问题
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
分析要用什么模块
pygame是一个专门用来开发游戏的模块,可以包含图像、声音等。
模块 功能
pygame.display 访问显示设备
pygame.event 管理事件
pygame.font 使用字体
pygame.image 加载和存储图片
综合考虑游戏功能,需要导入的模块有pygame、random、sys。
其中random模块用于产生随机数;sys模块包含了跟Python环境相关的函数。
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
活动二 分解任务,设计流程
本项目中设计的重点和难点是人机交互,即如何实时获取鼠标的状态并对鼠标单击做出正确的响应。也就是不断地进行监听、更新游戏状态、重绘屏幕三个步骤的操作。
游戏循环
监听事件
更新游戏状态
重绘屏幕
游戏状态可理解为程序中的变量值。通常随事件的发生而改变,例如鼠标单击、键盘输入或时间的流逝等。
1.在新的位置上画出 图像。
2.把原来的图像擦掉
(覆盖)
如何实现监听?
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
自带了一个监听类循环:不断检查用户的操作, 比如用户按键、移动鼠标或者关闭窗口等。这个循环会在程序运行期间持续工作。其代码框架如下:
while True: #循环会在程序运行期间持续
for event in pygame.event.get(): #监听所有事件, 获取事件列表
if event.type==pygame.QUIT: # Quit事件
sys.exit() #退出程序
if event.type==pygame.MOUSEBUTTONDOWN: #鼠标单击事件
……
在python 中,True (真)、False(假)的第一个字符要大写。
监听事件——Pygame
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
任务二:程序组装,测试运行
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
程序流程
程序运行
接到
福字








主程序开始
主程序结束
①监听事件获取鼠标单击位置
②游戏环境设置
③重新绘制背景及图像
④设置初始值并绘制图像
⑤加分
请将主程序的各功能语句放到合适的位置,完善程序流程图。
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
任务二 组装程序,测试运行
1.创建程序窗口, 设置背景。
调用pygame.display.set_mode()函数,将返回一个窗口。
pygame中的坐标系原点在左上角,水平方向为x轴,垂直方向为y轴。
x
y
0
※ 活动1 界面设计
通过pygame.image.load(filename)来载入图片,filename表示图像文件的路径和名称。图像文件必须和程序在同一文件夹下才可以使用相对路径的引用方式。
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
import pygame #导入模块
pygame.init() #pygame模块初始化
screen=pygame.display.set_mode([800,600]) #创建一个窗口screen,大小为800*600
pygame.display.set_caption('实例’) #设置屏幕标题
screen.fill((144,238,144)) #窗口填充淡绿色
img=pygame.image.load('ball.png’) #载入ball.png图像到内存
screen.blit(img,[200,200]) #将图像绘制在screen中,图像的左上角在[200,200]
pygame.display.update() #窗口刷新
※ 创建足球游戏窗口实例
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
1、创建窗口
screen=___________________
————————————— #设置窗口标题为“接了个福”
back=__ ____________('bj.jpg’) #加载背景图
screen.blit(____________,[0,0]) #将背景图画在窗口[0, 0]位置
_________________________ #刷新画面
※分析完成“接了个福”游戏的界面设计
pygame.display.set_mode([800,600])
pygame.display.set_caption('接了个福')
pygame.image.load
back
pygame.display.update()
2、绘制福字
为了便于游戏循环中反复调用,可以定义成一个函数showfu,在绘制福字时,需要设置图像显示的位置,因此showfu中有两个参数,分别表示图像位置的横坐标和纵坐标。
def showfu(x,y): #定义函数,在坐标(x,y)上显示图像
gift=pygame.image.load('fu.png') #加载福字图像
screen.blit(gift,[x,y]) #显示福字
在实际使用中,只要提供一对坐标值,就可以调用showfu了。
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
3、显示得分。
方法为:先定义显示字体,然后将score显示出来。为了增加代码的复用性,以便游戏循环中状态更新时反复调用,可以定义成一个函数showscore。
def showscore(score): #定义函数,显示分数
textfont=pygame.font.SysFont('Arial',30) #字体为Arial,大小30
t=textfont.render('score:'+str(score),True, (255,0,0)) #生成平滑的红色字符串
screen.blit(t,[50,50]) #在窗口显示
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
在本项目中,人机交互主要体现在鼠标单击上。 需要获取按键的情况,就要在监听事件中增加相应的判断语句。
if event.type==pygame.MOUSEBUTTONDOWN: # __________________
#获取鼠标按下的坐标并记录在mousex,mousey中
mousex,mousey=pygame.mouse.get_pos()
#判断鼠标是否击中福字,本例中福字宽为60,高为70
if mousex in range(x,x+60) and mousey in range(y,y+70):
score=score+5 #___________________
侦听到鼠标点击事件
加分
4、判断鼠标是否接到福字
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
5、游戏状态的更新和屏幕的重绘
在pygame的游戏循环中,我们通过调用以下语句来完成游戏状态的更新和屏幕的重绘,请在横线上注明各语句的功能。
screen.blit(back,[0,0]) # _
showscore(score) # _
x=random. randint(50, 700) # _
y=random.randint(50, 500) # _
showfu(x,y) # _
pygame.display.update() # _
pygame.time.delay(800) #设置两次显示福字之间的延时
将背景图显示在窗口
显示分数
随机生成福字水平方向坐标
随机生成福字垂直方向坐标
在(x,y)位置显示福字
刷新窗口
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
课堂小结
综合问题的解决
pygame是一个专门用来开发游戏的模块,可以包含图像、声音等。
解决问题的方法与步骤
pygame.display访问显示设备
pygame.event 管理事件
pygame.font 使用字体
pyg ame.miage 加栽和存储图片
分析问题
设计算法(流程图)
编写代码
调试运行
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276
惊艳你的
世界
The future is coming and The future is coming
THANKS
THANKS
e7d195523061f1c0c2b73831c94a3edc981f60e396d3e182073EE1468018468A7F192AE5E5CD515B6C3125F8AF6E4EE646174E8CF0B46FD19828DCE8CDA3B3A044A74F0E769C5FA8CB87AB6FC303C8BA3785FAC64AF5424764E128FECAE4CC72BD54E486F2F2A60F51B8A1D54097D49F626B96969F5CCE921267A92A2F22AC8A839D5EE3DCAA21587D0441DCE9CD8276

展开更多......

收起↑

资源预览