新世紀版信息技術八年級下冊第十一課石頭剪刀布(二) 課件.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取反怎么表示?,課堂小結,總結本節課所學內容,板書設計,一、發送比賽信息 二、顯示比賽得分