新世纪版信息技术八年级下册第十一课石头剪刀布(二) 课件.pptx
新世纪版信息技术 八年级下册,第十一课 石头剪刀布(二),新知导入,新知讲解,一、发送比赛信息,我们将参与石头剪刀布游戏的两块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(rsca, delay=3000, wait=False, loop=False, clear=True),新知讲解,将玩家Amicro:bit向左侧倾,将产生一个02之间的随机数,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(rsca-3, delay=3000, wait=False, loop=False, clear=True),新知讲解,将玩家B的micro:bit向左侧倾,将产生一个35之间的随机数,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”谁赢?,二、显示比赛得分,新知讲解,如果“玩家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 a3 and b6: 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,如果 a3 和 b6 同时成立,说明玩家 A 和玩家 B 都向计分板发送了比赛信息并被成功接收。,新知讲解,如果接收到了信息,要进一步对接收到的信息进行判断:,否则, 如果接收到的信息是小于6(并且3)的数值(int(r)6:),那么该信息是玩家B发出的。,当玩家A和玩家B的信息都收到并进行了比较,将a和b的值重新设置为6,进入下一轮比赛。,如果接收到的信息是小于3的数值(int(r)3:),那么该信息是玩家A发出的;,新知讲解,新知讲解,逻辑表达式的值只有两个:True 和 False。,条件与条件之间的运算使用逻辑运算符,逻辑运算符包含 and、or、not。 包含逻辑运算符的表达式称为逻辑表达式。,当我们要同时对多个条件进行判断的时候,就需要考虑条件与条件之间的关系。,当逻辑表达式成立,其值为 True ;不成立,其值为 False。,新知讲解,假设 a 和 b 都是条件表达式,下面是它们进行逻辑运算的结果:,新知讲解,1多个条件同时成立怎么表示?,下面是常见的逻辑表达式:,用逻辑运算符“and”连接多个条件表达式。,if 语句中的条件可以是条件表达式,也可以是一个逻辑表达式。, and and ,例如: a+bc and b+ca and a+cb,新知讲解,用逻辑运算符“or”。, or or ,例如: a+bc or b+ca or a+cb,2多个条件中,任意一个成立怎么表示?,新知讲解,用逻辑运算符“not”。,即: not ,例如: not(a+b=c,3取反怎么表示?,课堂小结,总结本节课所学内容,板书设计,一、发送比赛信息 二、显示比赛得分