中小学教育资源及组卷应用平台
新世纪版信息技术八年级下册第十一课石头剪刀布(二)教学设计
课题
石头剪刀布(二)
单元
第一单元
学科
信息技术
年级
八年级
学习目标
知识目标:进一步熟悉用无线电传感器传递信息;进一步学习用逻辑表达式表达条件。技能目标:用逻辑表达式来表达条件。情感目标:通过有意义的游戏,培养学生分析理解程序的能力。
重点
用逻辑表达式来表达条件。
难点
用逻辑表达式来表达条件。
教学过程
教学环节
教师活动
学生活动
设计意图
导入新课
前面我们学习的石头剪刀布游戏是两个同学之间玩,观察两块
micro:bit
板上显示的
图案,然后手工统计比分。这一课则引入第三块
micro:bit
板,由它接收两块比赛的micro:bit
板上的图案信息,然后进行统计并在点阵屏幕上显示比赛得分。
思考
激发学生学习兴趣并快速进入学习状态
讲授新课
一、发送比赛信息我们将参与石头剪刀布游戏的两块micro:bit分别称为“玩家A”和“玩家B”用于显示得分的micro:bit称为“得分板”。为了统计比赛的得分,“玩家A”和“玩家B”都要将自己
的“出拳”信息发送给“得分板”。【例题1】编写石头剪刀布游戏的“出拳”程序。假设micro:bit向左倾斜表示出拳动作。玩家A的程序如下:from
microbit
import
import
random
import
radio
radio.on()
r
=
Image('00000:09900:09900:00000:00000')
s
=
Image('00009:99090:99900:99090:00009')
c
=
Image('99999:99999:99999:99999:99999')
rsc
=
[r,s,c]
while
True:if
accelerometer.was_gesture('left'):
a
=
random.randint(0,
2)
radio.send(str(a))
display.show(rsc[a],
delay=3000,
wait=False,
loop=False,
clear=True)将玩家Amicro:bit向左侧倾,将产生一个0~2之间的随机数,0代表石头,1代表剪刀,2代表布。然后将这个随机数转换成字符发送出去。玩家B的程序如下:from
microbit
import
import
random
import
radio
radio.on()
r
=
Image('00000:09900:09900:00000:00000')
s
=
Image('00009:99090:99900:99090:00009')
c
=
Image('99999:99999:99999:99999:99999')
rsc
=
[r,s,c]
while
True:
if
accelerometer.was_gesture('left'):
a
=
random.randint(3,
5)
radio.send(str(a))
display.show(rsc[a-3],
delay=3000,
wait=False,
loop=False,
clear=True)如何让“得分板”区分接收到的信息是谁发送的呢?我们让“玩家B”发送的信息比
“玩家A”大3。
将玩家B的micro:bit向左侧倾,将产生一个3~5之间的随机数,3代表石头,4代表剪刀,5代表布。然后将这个随机数转换成字符发送出去。玩家
A
和玩家
B
的程序有如下不同:玩家
A
由
random.randint(0,2)
产生的随机数表示所出的拳,0-
石头,1-
剪刀,
2-
布。玩家
B
由
random.randint(3,5)
产生的随机数表示所出的拳,3-
石头,4-
剪刀,
5-
布。二、显示比赛得分【例题2】显示石头剪刀布游戏的比赛得分怎么判断“玩家A”和“玩家B”谁赢?我们来看看下面的列表:从上面的表可以看出:如果“玩家B-玩家A
=3”,平局如果“玩家B-玩家A
=2”
或者“玩家B-玩家A=5”,玩家B赢
如果“玩家B-玩家A=1”
或者“玩家B-玩家A=4”,玩家B输程序如下:from
microbit
import
import
radio
radio.on()
a_score
=
0
b_score
=
0
a
=
6
b
=
6
while
True:
r
=radio.receive()
if
r
is
not
None:
if
int(r)
<3:
a
=
int(r)elif
int(r)
<
6:
b
=
int(r)
if
a<3
and
b<6:
if
b-a
==
4
or
b-a==1:a_score
+=
1
if
b-a
==
5
or
b-a==2:
b_score
+=
1
a
=
6
b
=
6display.scroll(str(a_score)+':'+str(b_score))计分的
micro:bit
始终在接收玩家
A
和玩家
B
发来的比赛信息r然后根据信息的大小判断是哪一个玩家发出来的信息:
if
(int(r)
<
3)
:
a
=
int(r)
else
:
b
=
int(r)为了判断是否成功地接收了玩家
A
和玩家
B
发过来的信息将变量
a
和变
量
b
的初始值都设置为
6如果
a<3
和
b<6
同时成立,说明玩家
A
和玩家
B
都向计分板发送了比赛信息并被成功接收。如果接收到了信息,要进一步对接收到的信息进行判断:如果接收到的信息是小于3的数值(int(r)<3:),那么该信息是玩家A发出的;否则,
如果接收到的信息是小于6(并且≥3)的数值(int(r)<6:),那么该信息是玩家B发出的。当玩家A和玩家B的信息都收到并进行了比较,将a和b的值重新设置为6,进入下一轮比赛。交流与协作三个micro:bit一组玩石头剪刀布游戏,三块micro:bit分别充当“玩家
A”“玩家B”“得分板”。当我们要同时对多个条件进行判断的时候,就需要考虑条件与条件之间的关系。条件与条件之间的运算使用逻辑运算符,逻辑运算符包含
and、or、not。
包含逻辑运算符的表达式称为逻辑表达式。逻辑表达式的值只有两个:True
和
False。当逻辑表达式成立,其值为
True
;不成立,其值为
False。假设
a
和
b
都是条件表达式,下面是它们进行逻辑运算的结果:if
语句中的条件可以是条件表达式,也可以是一个逻辑表达式。下面是常见的逻辑表达式:1.多个条件同时成立怎么表示?用逻辑运算符“and”连接多个条件表达式。<
条件
1>
and
<
条件
2>
and
<
条件
3>例如:
a+b>c
and
b+c>a
and
a+c>b2.多个条件中,任意一个成立怎么表示?用逻辑运算符“or”。<
条件
1>
or
<
条件
2>
or
<
条件
3>例如:
a+b
or
b+cor
a+cnot
<
条件
>例如:
not(a+ba+b>=c
通过教师的讲解,以小组合作的方式,开展探讨交流,完成任务。通过老师演示学生动手操作,提高动手能力。小组交流、分享学生动手实践操作,学生小组间讨论,共同完成任务。通过老师演示学生动手操作,提高动手能力。小组交流、分享学生动手实践操作,学生小组间讨论,共同完成任务通过教师的讲解,以小组合作的方式,开展探讨交流,完成任务。学生动手实践操作,学生小组间讨论,共同完成任务通过教师的讲解,以小组合作的方式,开展探讨交流,完成任务。
通过小组合作,加强学生组内团结、加强学生组内团结、共同完成任务,培养学生动手操作能力,并且锻炼学生的语言组织能力和表达的能力。加强学生组内团结、共同完成任务,培养学生动手操作能力,并且锻炼学生的语言组织能力和表达的能力。培养学生组间合作能力,并且炼动手能力
培养学生动手操作能力,并且锻炼学生的语言组织能力和表达的能力。培养学生组间合作能力,并且炼动手能力
课堂小结
分小组总结归纳,教师补充。
各组汇报总结,其他小组成员做补充。
锻炼学生的总结能力,逻辑思维、语言表达能力。
板书
一、发送信息二、接收信息三、传递加密信息
21世纪教育网
www.21cnjy.com
精品试卷·第
2
页
(共
2
页)
HYPERLINK
"http://www.21cnjy.com/"
21世纪教育网(www.21cnjy.com)(共24张PPT)
新世纪版信息技术
八年级下册
第十一课
石头剪刀布(二)
新知导入
前面我们学习的石头剪刀布游戏是两个同学之间玩,观察两块
micro:bit
板上显示的
图案,然后手工统计比分。这一课则引入第三块
micro:bit
板,由它接收两块比赛的micro:bit
板上的图案信息,然后进行统计并在点阵屏幕上显示比赛得分。
新知讲解
一、发送比赛信息
我们将参与石头剪刀布游戏的两块micro:bit分别称为“玩家A”和“玩家B”
为了统计比赛的得分,“玩家A”和“玩家B”都要将自己
的“出拳”信息发送给“得分板”。
用于显示得分的micro:bit称为“得分板”。
新知讲解
from
microbit
import
import
random
import
radio
radio.on()
r
=
Image('00000:09900:09900:00000:00000')
s
=
Image('00009:99090:99900:99090:00009')
c
=
Image('99999:99999:99999:99999:99999')
假设micro:bit向左倾斜表示出拳动作。
【例题1】编写石头剪刀布游戏的“出拳”程序。
玩家A的程序如下:
rsc
=
[r,s,c]
while
True:
if
accelerometer.was_gesture('left'):
a
=
random.randint(0,
2)
radio.send(str(a))
display.show(rsc[a],
delay=3000,
wait=False,
loop=False,
clear=True)
新知讲解
将玩家Amicro:bit向左侧倾,将产生一个0~2之间的随机数,0代表石头,1代表剪刀,2代表布。
然后将这个随机数转换成字符发送出去。
新知讲解
玩家B的程序如下:
from
microbit
import
import
random
import
radio
radio.on()
r
=
Image('00000:09900:09900:00000:00000')
s
=
Image('00009:99090:99900:99090:00009')
c
=
Image('99999:99999:99999:99999:99999')
rsc
=
[r,s,c]
while
True:
if
accelerometer.was_gesture('left'):
a
=
random.randint(3,
5)
radio.send(str(a))
display.show(rsc[a-3],
delay=3000,
wait=False,
loop=False,
clear=True)
新知讲解
将玩家B的micro:bit向左侧倾,将产生一个3~5之间的随机数,3代表石头,4代表剪刀,5代表布。
如何让“得分板”区分接收到的信息是谁发送的呢?
我们让“玩家B”发送的信息比
“玩家A”大3。
然后将这个随机数转换成字符发送出去。
新知讲解
玩家
A
和玩家
B
的程序有如下不同:
玩家
A
由
random.randint(0,2)
产生的随机数表示所出的拳,0-
石头,1-
剪刀,
2-
布。
玩家
B
由
random.randint(3,5)
产生的随机数表示所出的拳,3-
石头,4-
剪刀,
5-
布。
新知讲解
我们来看看下面的列表:
【例题2】显示石头剪刀布游戏的比赛得分
怎么判断“玩家A”和“玩家B”谁赢?
二、显示比赛得分
玩家
石头
剪刀
布
A
0
1
2
B
3
4
5
新知讲解
如果“玩家B-玩家A
=3”,平局
如果“玩家B-玩家A
=2”
或者“玩家B-玩家A=5”,玩家B赢
从上面的表可以看出:
如果“玩家B-玩家A=1”
或者“玩家B-玩家A=4”,玩家B输
新知讲解
程序如下:
from
microbit
import
import
radio
radio.on()
a_score
=
0
b_score
=
0
a
=
6
b
=
6
while
True:
r
=radio.receive()
if
r
is
not
None:
if
int(r)
<3:
a
=
int(r)
elif
int(r)
<
6:
b
=
int(r)
if
a<3
and
b<6:
if
b-a
==
4
or
b-a==1:
a_score
+=
1
if
b-a
==
5
or
b-a==2:
b_score
+=
1
a
=
6
b
=
6
display.scroll(str(a_score)+':'+str(b_score))
新知讲解
计分的
micro:bit
始终在接收玩家
A
和玩家
B
发来的比赛信息r
if
(int(r)
<
3)
:
???
a
=
int(r)
else
:
???
b
=
int(r)
然后根据信息的大小判断是哪一个玩家发出来的信息:
新知讲解
为了判断是否成功地接收了玩家
A
和玩家
B
发过来的信息
将变量
a
和变
量
b
的初始值都设置为
6
如果
a<3
和
b<6
同时成立,说明玩家
A
和玩家
B
都向计分板发送了比赛信息并被成功接收。
新知讲解
如果接收到了信息,要进一步对接收到的信息进行判断:
否则,
如果接收到的信息是小于6(并且≥3)的数值(int(r)<6:),那么该信息是玩家B发出的。
当玩家A和玩家B的信息都收到并进行了比较,将a和b的值重新设置为6,进入下一轮比赛。
如果接收到的信息是小于3的数值(int(r)<3:),那么该信息是玩家A发出的;
新知讲解
交流与协作
三个micro:bit一组玩石头剪刀布游戏,三块micro:bit分别充当“玩家
A”“玩家B”“得分板”。
新知讲解
逻辑表达式的值只有两个:True
和
False。
条件与条件之间的运算使用逻辑运算符,逻辑运算符包含
and、or、not。
包含逻辑运算符的表达式称为逻辑表达式。
当我们要同时对多个条件进行判断的时候,就需要考虑条件与条件之间的关系。
当逻辑表达式成立,其值为
True
;不成立,其值为
False。
新知讲解
假设
a
和
b
都是条件表达式,下面是它们进行逻辑运算的结果:
逻辑运算符
逻辑表达式
说 明
and
a
and
b
逻辑与。当
a
和
b
都为
True
时结果才为
True。
or
a
or
b
逻辑或。当
a
和
b
有一个为
True
时结果为
True。
not
not
a
逻辑非。如果
a
为
True,not
a
就是
False
;如果
a
为
False,not
a
就是
True。
新知讲解
1.多个条件同时成立怎么表示?
下面是常见的逻辑表达式:
用逻辑运算符“and”连接多个条件表达式。
if
语句中的条件可以是条件表达式,也可以是一个逻辑表达式。
<
条件
1>
and
<
条件
2>
and
<
条件
3>
例如:
a+b>c
and
b+c>a
and
a+c>b
新知讲解
用逻辑运算符“or”。
<
条件
1>
or
<
条件
2>
or
<
条件
3>
例如:
a+bor
b+cor
a+c2.多个条件中,任意一个成立怎么表示?
新知讲解
用逻辑运算符“not”。
即:
not
<
条件
>
例如:
not(a+ba+b>=c
3.取反怎么表示?
课堂小结
总结本节课所学内容
板书设计
一、发送比赛信息
二、显示比赛得分
谢谢
21世纪教育网(www.21cnjy.com)
中小学教育资源网站
有大把高质量资料?一线教师?一线教研员?
欢迎加入21世纪教育网教师合作团队!!月薪过万不是梦!!
详情请看:
https://www.21cnjy.com/help/help_extract.php