新世紀版信息技術(shù)八年級下冊第十一課石頭剪刀布(二) 教案.doc
新世紀版信息技術(shù)八年級下冊第十一課石頭剪刀布(二)教學設(shè)計課題 石頭剪刀布(二)單元第一單元學科信息技術(shù)年級八年級學習目標知識目標:進一步熟悉用無線電傳感器傳遞信息;進一步學習用邏輯表達式表達條件。技能目標:用邏輯表達式來表達條件。情感目標:通過有意義的游戲,培養(yǎng)學生分析理解程序的能力。重點用邏輯表達式來表達條件。難點用邏輯表達式來表達條件。教學過程教學環(huán)節(jié)教師活動學生活動設(shè)計意圖導(dǎo)入新課前面我們學習的石頭剪刀布游戲是兩個同學之間玩,觀察兩塊 micro:bit 板上顯示的 圖案,然后手工統(tǒng)計比分。這一課則引入第三塊 micro:bit 板,由它接收兩塊比賽的micro:bit 板上的圖案信息,然后進行統(tǒng)計并在點陣屏幕上顯示比賽得分。思考激發(fā)學生學習興趣并快速進入學習狀態(tài)講授新課一、發(fā)送比賽信息我們將參與石頭剪刀布游戲的兩塊micro:bit分別稱為“玩家A”和“玩家B”用于顯示得分的micro:bit稱為“得分板”。為了統(tǒng)計比賽的得分,“玩家A”和“玩家B”都要將自己 的“出拳”信息發(fā)送給“得分板”。【例題1】編寫石頭剪刀布游戲的“出拳”程序。假設(shè)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(rsca, delay=3000, wait=False, loop=False, clear=True)將玩家Amicro:bit向左側(cè)傾,將產(chǎn)生一個02之間的隨機數(shù),0代表石頭,1代表剪刀,2代表布。然后將這個隨機數(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)如何讓“得分板”區(qū)分接收到的信息是誰發(fā)送的呢?我們讓“玩家B”發(fā)送的信息比 “玩家A”大3。將玩家B的micro:bit向左側(cè)傾,將產(chǎn)生一個35之間的隨機數(shù),3代表石頭,4代表剪刀,5代表布。然后將這個隨機數(shù)轉(zhuǎn)換成字符發(fā)送出去。玩家 A 和玩家 B 的程序有如下不同:玩家 A 由 random.randint(0,2) 產(chǎn)生的隨機數(shù)表示所出的拳,0- 石頭,1- 剪刀, 2- 布。玩家 B 由 random.randint(3,5) 產(chǎn)生的隨機數(shù)表示所出的拳,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 = 0b_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 = 6display.scroll(str(a_score)+:+str(b_score)計分的 micro:bit 始終在接收玩家 A 和玩家 B 發(fā)來的比賽信息r然后根據(jù)信息的大小判斷是哪一個玩家發(fā)出來的信息:if (int(r) 3) : a = int(r) else : b = int(r)為了判斷是否成功地接收了玩家 A 和玩家 B 發(fā)過來的信息將變量 a 和變 量 b 的初始值都設(shè)置為 6如果 a3 和 b6 同時成立,說明玩家 A 和玩家 B 都向計分板發(fā)送了比賽信息并被成功接收。如果接收到了信息,要進一步對接收到的信息進行判斷:如果接收到的信息是小于3的數(shù)值(int(r)3:),那么該信息是玩家A發(fā)出的;否則, 如果接收到的信息是小于6(并且3)的數(shù)值(int(r)6:),那么該信息是玩家B發(fā)出的。當玩家A和玩家B的信息都收到并進行了比較,將a和b的值重新設(shè)置為6,進入下一輪比賽。交流與協(xié)作三個micro:bit一組玩石頭剪刀布游戲,三塊micro:bit分別充當“玩家 A”“玩家B”“得分板”。當我們要同時對多個條件進行判斷的時候,就需要考慮條件與條件之間的關(guān)系。條件與條件之間的運算使用邏輯運算符,邏輯運算符包含 and、or、not。 包含邏輯運算符的表達式稱為邏輯表達式。邏輯表達式的值只有兩個:True 和 False。當邏輯表達式成立,其值為 True ;不成立,其值為 False。假設(shè) a 和 b 都是條件表達式,下面是它們進行邏輯運算的結(jié)果:if 語句中的條件可以是條件表達式,也可以是一個邏輯表達式。下面是常見的邏輯表達式:1多個條件同時成立怎么表示?用邏輯運算符“and”連接多個條件表達式。 條件 1 and 條件 2 and 條件 3例如: a+bc and b+ca and a+cb2多個條件中,任意一個成立怎么表示?用邏輯運算符“or”。 條件 1 or 條件 2 or 條件 3例如: a+bc or b+ca or a+cb3取反怎么表示?用邏輯運算符“not”。即: not 條件 例如: not(a+bc)相當于 a+b=c通過教師的講解,以小組合作的方式,開展探討交流,完成任務(wù)。通過老師演示學生動手操作,提高動手能力。小組交流、分享學生動手實踐操作,學生小組間討論,共同完成任務(wù)。通過老師演示學生動手操作,提高動手能力。小組交流、分享學生動手實踐操作,學生小組間討論,共同完成任務(wù)通過教師的講解,以小組合作的方式,開展探討交流,完成任務(wù)。學生動手實踐操作,學生小組間討論,共同完成任務(wù)通過教師的講解,以小組合作的方式,開展探討交流,完成任務(wù)。通過小組合作,加強學生組內(nèi)團結(jié)、加強學生組內(nèi)團結(jié)、共同完成任務(wù),培養(yǎng)學生動手操作能力,并且鍛煉學生的語言組織能力和表達的能力。加強學生組內(nèi)團結(jié)、共同完成任務(wù),培養(yǎng)學生動手操作能力,并且鍛煉學生的語言組織能力和表達的能力。培養(yǎng)學生組間合作能力,并且煉動手能力 培養(yǎng)學生動手操作能力,并且鍛煉學生的語言組織能力和表達的能力。培養(yǎng)學生組間合作能力,并且煉動手能力課堂小結(jié)分小組總結(jié)歸納,教師補充。各組匯報總結(jié),其他小組成員做補充。鍛煉學生的總結(jié)能力,邏輯思維、語言表達能力。板書一、發(fā)送信息二、接收信息三、傳遞加密信息