新世紀(jì)版信息技術(shù)八年級(jí)下冊(cè)第十一課石頭剪刀布(二) 課件.pptx
新世紀(jì)版信息技術(shù) 八年級(jí)下冊(cè),第十一課 石頭剪刀布(二),新知導(dǎo)入,新知講解,一、發(fā)送比賽信息,我們將參與石頭剪刀布游戲的兩塊micro:bit分別稱為“玩家A”和“玩家B”,為了統(tǒng)計(jì)比賽的得分,“玩家A”和“玩家B”都要將自己 的“出拳”信息發(fā)送給“得分板”。,用于顯示得分的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),假設(shè)micro:bit向左傾斜表示出拳動(dòng)作。,【例題1】編寫(xiě)石頭剪刀布游戲的“出拳”程序。,玩家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向左側(cè)傾,將產(chǎn)生一個(gè)02之間的隨機(jī)數(shù),0代表石頭,1代表剪刀,2代表布。,然后將這個(gè)隨機(jī)數(shù)轉(zhuǎn)換成字符發(fā)送出去。,新知講解,玩家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向左側(cè)傾,將產(chǎn)生一個(gè)35之間的隨機(jī)數(shù),3代表石頭,4代表剪刀,5代表布。,如何讓“得分板”區(qū)分接收到的信息是誰(shuí)發(fā)送的呢?,我們讓“玩家B”發(fā)送的信息比 “玩家A”大3。,然后將這個(gè)隨機(jī)數(shù)轉(zhuǎn)換成字符發(fā)送出去。,新知講解,玩家 A 和玩家 B 的程序有如下不同:,玩家 A 由 random.randint(0,2) 產(chǎn)生的隨機(jī)數(shù)表示所出的拳,0- 石頭,1- 剪刀, 2- 布。,玩家 B 由 random.randint(3,5) 產(chǎn)生的隨機(jī)數(shù)表示所出的拳,3- 石頭,4- 剪刀, 5- 布。,新知講解,我們來(lái)看看下面的列表:,【例題2】顯示石頭剪刀布游戲的比賽得分,怎么判斷“玩家A”和“玩家B”誰(shuí)贏?,二、顯示比賽得分,新知講解,如果“玩家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),新知講解,計(jì)分的 micro:bit 始終在接收玩家 A 和玩家 B 發(fā)來(lái)的比賽信息r,if (int(r) 3) : a = int(r) else : b = int(r),然后根據(jù)信息的大小判斷是哪一個(gè)玩家發(fā)出來(lái)的信息:,新知講解,為了判斷是否成功地接收了玩家 A 和玩家 B 發(fā)過(guò)來(lái)的信息,將變量 a 和變 量 b 的初始值都設(shè)置為 6,如果 a3 和 b6 同時(shí)成立,說(shuō)明玩家 A 和玩家 B 都向計(jì)分板發(fā)送了比賽信息并被成功接收。,新知講解,如果接收到了信息,要進(jìn)一步對(duì)接收到的信息進(jìn)行判斷:,否則, 如果接收到的信息是小于6(并且3)的數(shù)值(int(r)6:),那么該信息是玩家B發(fā)出的。,當(dāng)玩家A和玩家B的信息都收到并進(jìn)行了比較,將a和b的值重新設(shè)置為6,進(jìn)入下一輪比賽。,如果接收到的信息是小于3的數(shù)值(int(r)3:),那么該信息是玩家A發(fā)出的;,新知講解,新知講解,邏輯表達(dá)式的值只有兩個(gè):True 和 False。,條件與條件之間的運(yùn)算使用邏輯運(yùn)算符,邏輯運(yùn)算符包含 and、or、not。 包含邏輯運(yùn)算符的表達(dá)式稱為邏輯表達(dá)式。,當(dāng)我們要同時(shí)對(duì)多個(gè)條件進(jìn)行判斷的時(shí)候,就需要考慮條件與條件之間的關(guān)系。,當(dāng)邏輯表達(dá)式成立,其值為 True ;不成立,其值為 False。,新知講解,假設(shè) a 和 b 都是條件表達(dá)式,下面是它們進(jìn)行邏輯運(yùn)算的結(jié)果:,新知講解,1多個(gè)條件同時(shí)成立怎么表示?,下面是常見(jiàn)的邏輯表達(dá)式:,用邏輯運(yùn)算符“and”連接多個(gè)條件表達(dá)式。,if 語(yǔ)句中的條件可以是條件表達(dá)式,也可以是一個(gè)邏輯表達(dá)式。, and and ,例如: a+bc and b+ca and a+cb,新知講解,用邏輯運(yùn)算符“or”。, or or ,例如: a+bc or b+ca or a+cb,2多個(gè)條件中,任意一個(gè)成立怎么表示?,新知講解,用邏輯運(yùn)算符“not”。,即: not ,例如: not(a+b=c,3取反怎么表示?,課堂小結(jié),總結(jié)本節(jié)課所學(xué)內(nèi)容,板書(shū)設(shè)計(jì),一、發(fā)送比賽信息 二、顯示比賽得分