教科版(2019)4.4 综合问题的解决 课件+教案+素材

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

教科版(2019)4.4 综合问题的解决 课件+教案+素材

资源简介

教学单元 计算与问题解决 教学主题 综合问题的解决
教学目标
知识与技能 通过pygame库游戏的任务拆解,能够插入文本、图片。 能够根据需求简单代码,并自主dbug程序。 过程与方法 通过实现游戏的简单游戏,让学生能够感受程序的高阶运行过程,库运行原理,提升问题和代码的调试能力。 情感态度价值观 能够通过游戏设计,对程序运行和Python的探索兴趣,为后续职业选择打下兴趣基础。
核心素养培养
通过对代码的综合运用,提升程序调试能力,能够用计算思维处理和分析日常生活中的事务。
教学内容
Pygame库;问题解决要素分步实现;插入文字、图片、鼠标事件实现。
教学媒体
电子白板、PPT
教学过程
教学环节 教师活动 学生活动 设计意图
游戏导入 播放【简单的点击小球】游戏,该游戏是由教师制作的简单游戏,通过直面运行程序让学生观看并自主运行程序结果。 首先观看视频,并根据教师的代码素材运行Python文件,让学生能够自主运行,并自主玩乐游戏。 游戏的实现属于综合问题解决,需要先让学生看到结果,激发学生探究的兴趣。
活动分析 【点击小球游戏】 【游戏要素】 界面 分数 小球 鼠标点击动作 根据教师分析,一起分解小球实现的具体内容。 综合与分析是一项计算思维的必备内容。学生面对抽象内容时,必然要分析、拆解如何通过小部分、小步骤内容来实现。 学生根据教师引导分解综合问题,提升综合分析问题的能力。
活动探究 活动一、【窗口界面】
import pygame pygame.init() # 初始化Pygame size = width, height = 320, 240 # 设置窗口 screen = pygame.display.set_mode(size) # 显示窗口 # 执行死循环,确保窗口一直显示 while True: # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() pygame.quit() 【学生模仿代码,实现结果】 知识讲解 【Pygame库】 #屏幕尺寸 pygame.display.set_mode(200,300)#屏幕尺寸为200*300 #窗口标题 pygame.display.set_caption(‘贪吃蛇游戏’) #刷新 pygame.display.flip()#第一次刷新 pygame.display.update()#第二次刷新 #屏幕颜色 pygame.display.fill((255,0,0)) 播放【教师的插入修改视频】 学生实现上述界面。 认真听讲,记录笔记。 根据左侧提示,自主设置代码 1、修改屏幕尺寸 2、修改窗口标题 3、修改屏幕填充色 观看视频,并且不断修正代码。 在分解任务的过程中,集成程序教学法的小步骤,以紧密的任务安排让学生在实践练习中加深对程序设计的理解,并不断提升程序调试的能力,让学生感受综合问题解决时所具备的心态、情绪、能力和知识技能,不断提升对信息技术的探究兴趣。
活动二、【字体画笔】
【字体画笔】 score=0#初始定义分数为0 def showscore(score):#设置分数函数 textfont=pygame.font.SysFont('宋体',40)#设置画笔对象 t=textfont.render('score:'+str(score),True,(255,0,0))#定义画笔实例 screen.blit(t,[50,50])#将画笔写在屏幕上 while True: showscore(score) pygame.display.flip() 讲解并播放如何显示分数的视频。 【屏幕坐标】 请思考以下画笔都分布在界面哪些位置,并修改坐标代码,实现结果。 screen.blit(t,[0,0] screen.blit(t,[50,50] screen.blit(t,[100,50] screen.blit(t,[50,100] 播放【分数坐标】视频。 在教师指导下认识代码,运行结果。 观看视频,修正代码,记录笔记。 根据题意自主实现结果,总结结论。
活动三、【小球显示】
import pygame,time,sys pygame.init() # 初始化Pygame size = width, height = 320, 240 # 设置窗口 screen = pygame.display.set_mode(size) # 显示窗口 screen.fill((255,255,255)) img=pygame.image.load(‘ball.png’)#加载小球图片 # 执行死循环,确保窗口一直显示 while True: time.sleep(0.1) # 0.1秒 screen.blit(img,(0,0)) pygame.display.flip() # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() pygame.quit() 【图片插入】 img=pygame.image.load(‘ball.png’)#加载小球图片 screen.blit(img,(0,0))#将图片加载到屏幕上,并放在屏幕坐标的(0,0)位置。 【图片方法】 获取图片大小:img.get_size() 按照尺寸缩放:pygame.transform.scale(img, (100, 100)),参数:scale(缩放对象,目标大小), 按照比例缩放:pygame.transform.rotozoom(img,),参数:rotozoom(缩放/旋转对象,旋转角度,缩放比例) 自主探索,给屏幕增加背景图片,并且按照屏幕尺寸把图片尺寸调整,得到小球图片的四个顶点坐标。 A点(x,y) B点(x,y+h) C点(x+w,y) D点(x+w,y+h) 播放【图片坐标】的视频 【图片随机显示】 分析:图片的随机显示,是为了让图片的左顶点的坐标是随机数字,使得图片能够随机显示。 import random#导入随机数字库 #设置随机坐标 x=img_x,img_y=random.randint(20,500),random.randint(20,200) #加载在屏幕上 screen.blit(img,[img_x,img_y]) pygame.display.update()#屏幕刷新 播放【图片随机显示】视频。 模仿代码,运行结果 模仿并实现结果之后,认真听讲,记录笔记。 记录笔记并自主尝试。 完成任务。 根据教师引导寻找并写出四个点的坐标,以此认识位置。 观看视频,记录笔记。 跟随教师分析。 理解并模仿代码。 观看视频。 实现结果。
活动四、【鼠标点击事件】
while True: screen.fill((255,255,255)) time.sleep(0.1) # 0.1秒 # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type==pygame.MOUSEBUTTONDOWN: img_x,img_y=random.randint(20,500),random.randint(20,200) screen.fill((255,255,255)) screen.blit(img,[img_x,img_y]) pygame.display.update() if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() 实现鼠标点击,图片随机显示的事件 鼠标键按下事件:pygame.event.MOUSEBUTTONDOWN: 鼠标键抬起事件: event.type == pygame.MOUSEBUTTONUP: 鼠标键移动事件: event.type == pygame.MOUSEMOTION: 鼠标坐标获取: mx,my=pygame.mouse.get_pos() 【判断鼠标是否击中小球】 mx,my=pygame.mouse.get_pos() if mx in range(x,x+54) and my in range (y,y+48): score=score+5 认真听讲,理解代码并自主完成结果运行,有问题请教指导教师。
完善总结 按照四部分任务,完善代码,实现点击小球游戏。 总结完善教材中的填空内容,学以致用。 巩固、加强学习,并解决开放性问题。
拓展练习 尝试给“点击小球”游戏设计一个难度策略或是给鼠标换一个手形图,以实现抓取的视觉效果,增加游戏的趣味性。难度策略可以考虑使用什么规则增减速度。尝试在你的游戏中实现自己的想法。 自主查阅资料,完成任务 高难度挑战Python应用,让真正感兴趣的学生继续深入探索,提供任务的要求。(共30张PPT)
4.4 综合问题的解决
2019教科版
高中信息技术
教学目标
一、活动导入
【简单的点击小球游戏】
二、活动分析
【点击小球游戏】
三、活动探究
【点击小球游戏】
【窗口界面】
import pygame
pygame.init() # 初始化Pygame
size = width, height = 320, 240 # 设置窗口
screen = pygame.display.set_mode(size) # 显示窗口
# 执行死循环,确保窗口一直显示
while True:
# 检查事件
for event in pygame.event.get(): # 遍历所有事件
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()
pygame.quit()
模仿代码,实现结果
这是固定框架
三、活动探究
【点击小球游戏】
【窗口界面】
Pygame库
import pygame
pygame.init() # 初始化Pygame
size = width, height = 320, 240 # 设置窗口尺寸
screen = pygame.display.set_mode(size) # 显示窗口
# 执行死循环,确保窗口一直显示
while True:
# 检查事件
for event in pygame.event.get(): # 遍历所有事件
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()
pygame.quit()
三、活动探究
【点击小球游戏】
【窗口界面】
Pygame库
#屏幕尺寸
pygame.display.set_mode(200,300)#屏幕尺寸为200*300
#窗口标题
pygame.display.set_caption(‘贪吃蛇游戏’)
#刷新
pygame.display.flip()#第一次刷新
pygame.display.update()#第二次刷新
#屏幕颜色
screen.(fill((255,0,0))
三、活动探究
【点击小球游戏】
【窗口界面】
Pygame库
三、活动探究
【点击小球游戏】
【分数显示】
score=0#初始定义分数为0
def showscore(score):#设置分数函数
textfont=pygame.font.SysFont('宋体',40)#设置画笔对象
t=textfont.render('score:'+str(score),True,(255,0,0))#定义画笔实例
screen.blit(t,[50,50])#将画笔写在屏幕上
while True:
showscore(score)
pygame.display.flip()
字体画笔
三、活动探究
【点击小球游戏】
【分数显示】
三、活动探究
请思考以下画笔都分布在界面哪些位置,并修改坐标代码,实现结果。
screen.blit(t,[0,0])
screen.blit(t,[50,50])
screen.blit(t,[100,50])
screen.blit(t,[50,100])
【点击小球游戏】
【分数显示】
屏幕坐标
三、活动探究
【点击小球游戏】
【分数显示】
三、活动探究
【点击小球游戏】
【小球显示】
import pygame,time,sys
pygame.init() # 初始化Pygame
size = width, height = 320, 240 # 设置窗口
screen = pygame.display.set_mode(size) # 显示窗口
screen.fill((255,255,255))
img=pygame.image.load(‘ball.png’)#加载小球图片
# 执行死循环,确保窗口一直显示
while True:
time.sleep(0.1) # 0.1秒
screen.blit(img,(0,0))
pygame.display.flip()
# 检查事件
for event in pygame.event.get(): # 遍历所有事件
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()
pygame.quit()
模仿代码,运行结果
三、活动探究
【点击小球游戏】
【小球显示】
img=pygame.image.load(‘ball.png’)#加载小球图片
screen.blit(img,(0,0))#将图片加载到屏幕上,并放在屏幕坐标的(0,0)位置。
图片插入
三、活动探究
【点击小球游戏】
【小球显示】
图片方法
三、活动探究
【点击小球游戏】
【小球显示】
图片方法
获取图片大小:img.get_size()
按照尺寸缩放:pygame.transform.scale(img, (100, 100)),参数:scale(缩放对象,目标大小),
按照比例缩放:pygame.transform.rotozoom(img,),参数:rotozoom(缩放/旋转对象,旋转角度,缩放比例)
三、活动探究
【点击小球游戏】
【小球显示】
自主探索,给屏幕增加背景图片,并且按照屏幕尺寸把图片尺寸调整,得到小球图片的四个顶点坐标。
三、活动探究
【点击小球游戏】
【小球显示】
IMG
B点
A点
C点
D点
A点(x,y)
B点(x,y+h)
C点(x+w,y)
D点(x+w,y+h)
(x,y)
w
h
三、活动探究
【点击小球游戏】
【小球显示】
三、活动探究
图片随机显示
分析:图片的随机显示,是为了让图片的左顶点的坐标是随机数字,使得图片能够随机显示。
import random#导入随机数字库
#设置随机坐标
x=img_x,img_y=random.randint(20,500),random.randint(20,200)
#加载在屏幕上
screen.blit(img,[img_x,img_y])
pygame.display.update()#屏幕刷新
【点击小球游戏】
【小球显示】
三、活动探究
【点击小球游戏】
【小球显示】
三、活动探究
【鼠标点击事件】
【点击小球游戏】
鼠标点击之后,图片随机显示
while True:
screen.fill((255,255,255))
time.sleep(0.1) # 0.1秒
# 检查事件
for event in pygame.event.get(): # 遍历所有事件
if event.type==pygame.MOUSEBUTTONDOWN:
img_x,img_y=random.randint(20,500),random.randint(20,200)
screen.fill((255,255,255))
screen.blit(img,[img_x,img_y])
pygame.display.update()
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()
三、活动探究
鼠标键按下事件:pygame.event.MOUSEBUTTONDOWN:
鼠标键抬起事件: event.type == pygame.MOUSEBUTTONUP:
鼠标键移动事件: event.type == pygame.MOUSEMOTION:
鼠标坐标获取: mx,my=pygame.mouse.get_pos()
【点击小球游戏】
【鼠标点击事件】
三、活动探究
判断鼠标是否“击中”小球
mx,my=pygame.mouse.get_pos()
if mx in range(x,x+54) and my in range (y,y+48):
score=score+5
【点击小球游戏】
【鼠标点击事件】
四、完善总结
按照四部分任务,完善代码,实现点击小球游戏。
总结完善教材中的填空内容,学以致用。
绘制屏幕
Score=0
点击鼠标
小球随机出现
Score+=5
四、完善总结
pygame.display.set_mode(800,600)
Pygame.image.load
back
四、完善总结
Pygame.display.update()
将背景图画在窗口[0,0]位置
加载分数函数
X的值为随机数
y的值为随机数
福字为随机位置显示
刷新屏幕
四、完善总结
按下鼠标事件
分数加5
四、完善总结
尝试给“点击小球”游戏设计一个难度策略或是给鼠标换一个手形图,以实现抓取的视觉效果,增加游戏的趣味性。难度策略可以考虑使用什么规则增减速度。尝试在你的游戏中实现自己的想法。
五、拓展练习一、界面现实
import pygame
pygame.init() # 初始化Pygame
size = width, height = 320, 240 # 设置窗口
screen = pygame.display.set_mode(size) # 显示窗口
# 执行死循环,确保窗口一直显示
while True:
# 检查事件
for event in pygame.event.get(): # 遍历所有事件
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()
pygame.quit()
二、分数显示
import pygame
pygame.init() # 初始化Pygame
size = width, height = 320, 240 # 设置窗口
screen = pygame.display.set_mode(size) # 显示窗口
score=0#初始定义分数为0
def showscore(score):#设置分数函数
textfont=pygame.font.SysFont('宋体',40)#设置画笔对象
t=textfont.render('score:'+str(score),True,(255,0,0))#定义画笔实例
screen.blit(t,[50,50])#将画笔写在屏幕上
# 执行死循环,确保窗口一直显示
while True:
showscore(score)
pygame.display.flip()
# 检查事件
for event in pygame.event.get(): # 遍历所有事件
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()
pygame.quit()
三、小球显示
import pygame,time,sys
pygame.init() # 初始化Pygame
size = width, height = 320, 240 # 设置窗口
screen = pygame.display.set_mode(size) # 显示窗口
screen.fill((255,255,255))
img=pygame.image.load('ball.png')
# 执行死循环,确保窗口一直显示
while True:
time.sleep(0.1) # 0.1秒
screen.blit(img,(0,0))
pygame.display.flip()
# 检查事件
for event in pygame.event.get(): # 遍历所有事件
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()
pygame.quit()
四、随机出现小球
(一)鼠标不点击
import pygame,time,sys,random
pygame.init() # 初始化Pygame
size = width, height = 600, 300 # 设置窗口
screen = pygame.display.set_mode(size) # 显示窗口
img=pygame.image.load('ball.png')
# 执行死循环,确保窗口一直显示
while True:
screen.fill((255,255,255))
img_x,img_y=random.randint(20,500),random.randint(20,200)
screen.blit(img,[img_x,img_y])
pygame.display.update()
time.sleep(3) # 3秒
# 检查事件
for event in pygame.event.get(): # 遍历所有事件
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()
pygame.quit()
(二)鼠标点击
import pygame,time,sys,random
pygame.init() # 初始化Pygame
size = width, height = 600, 300 # 设置窗口
screen = pygame.display.set_mode(size) # 显示窗口
img=pygame.image.load('ball.png')
# a,b=img.get_size()#获得小球的尺寸
# print(a,b) #打印小球的尺寸
# 执行死循环,确保窗口一直显示
while True:
screen.fill((255,255,255))
time.sleep(0.1) # 0.1秒
# 检查事件
for event in pygame.event.get(): # 遍历所有事件
if event.type==pygame.MOUSEBUTTONDOWN:
img_x,img_y=random.randint(20,500),random.randint(20,200)
screen.fill((255,255,255))
screen.blit(img,[img_x,img_y])
pygame.display.update()
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()
pygame.quit()
五、鼠标点击小球后,积分增加
import pygame,time,sys,random
pygame.init() # 初始化Pygame
size = width, height = 600, 300 # 设置窗口
score=0
screen = pygame.display.set_mode(size) # 显示窗口
screen.fill((255,255,255))
x=random.randint(50,500)
y=random.randint(50,200)
def showqiu(x,y):
qiu=pygame.image.load('ball.png')
screen.blit(qiu,[x,y])
def showscore(score):
textfont=pygame.font.SysFont('宋体',40)
t=textfont.render('score:'+str(score),True,(255,0,0))
screen.blit(t,[50,50])
# 执行死循环,确保窗口一直显示
while True:
screen.fill((255,255,255))
time.sleep(0.1) # 0.1秒
# 检查事件
for event in pygame.event.get(): # 遍历所有事件
if event.type==pygame.MOUSEBUTTONDOWN:
mx,my=pygame.mouse.get_pos()
if mx in range(x,x+54) and my in range (y,y+48):
score=score+5
#print(mx,x,x+54,my,y,y+48)
x=random.randint(50,500)
y=random.randint(50,200)
showqiu(x,y)
showscore(score)
pygame.display.update()
if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出
sys.exit()

pygame.quit()

展开更多......

收起↑

资源列表