4.4-綜合問題的解決第3、4課時(shí)-【新教材】教科版(2019)高中信息技術(shù)必修一教案_第1頁
4.4-綜合問題的解決第3、4課時(shí)-【新教材】教科版(2019)高中信息技術(shù)必修一教案_第2頁
4.4-綜合問題的解決第3、4課時(shí)-【新教材】教科版(2019)高中信息技術(shù)必修一教案_第3頁
4.4-綜合問題的解決第3、4課時(shí)-【新教材】教科版(2019)高中信息技術(shù)必修一教案_第4頁
4.4-綜合問題的解決第3、4課時(shí)-【新教材】教科版(2019)高中信息技術(shù)必修一教案_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第三、四課時(shí)任務(wù)二組裝程序,測試運(yùn)行

活動(dòng)1界面設(shè)計(jì)

1.創(chuàng)建程序窗口,設(shè)置背景。

調(diào)用pygame.display.set

mode(函數(shù),將返回一個(gè)窗口。如果想在窗口上繪制或是放置對象,需要指定這個(gè)對象在窗口的具體位置,即坐標(biāo)。pygame中的

坐標(biāo)系原點(diǎn)在左上角,水平方向?yàn)閤軸,垂直方向?yàn)閥軸。

在pygame中,使用圖像的最簡單方法是調(diào)用image函數(shù)。通過pygame.image.load(filename)來載入圖片,filename表

示圖像文件的路徑和名稱。圖像文件必須和程序在同一文件夾下才可以使用相對路徑的引用方式。

例子

以下是一個(gè)樣例程序。

import

pygame#導(dǎo)入模塊

pygame

.init()#pygame模塊初始化

#創(chuàng)建一個(gè)窗口screen,大小為800*600

screen=pygame

.

display.

set.

mode(

[800

,

600])pygame

.

display.set

caption(

'實(shí)例')#設(shè)置屏幕標(biāo)題

screen.

fill((144,

238,

144))#窗口填充淡綠色

img=pygame

.

image

.

load('

ball.

png')#載入ball.

png圖像到內(nèi)存#將圖像繪制在screen中,圖像的左上角在[200,

200]

screen.

blit(img,

[200,

200])

pygame

.display.update()#窗口刷新

運(yùn)行結(jié)果如圖4.4.4所示。

你學(xué)會(huì)創(chuàng)建窗口了嗎?仿照上面的代碼嘗試創(chuàng)建“接福”程序窗口,并設(shè)置圖片作為背景。請注意圖片文件路徑的描述,思考背景圖片應(yīng)該在什么位置顯示,有了背景圖片窗口是否還要填充顏色等。畫完以后一定記得利用update更新一下,否則畫面會(huì)一片漆黑。

操作實(shí)踐

#創(chuàng)建一個(gè)窗口screen,大小為800*600

screen=#設(shè)置窗口標(biāo)題為“接福”

back=('bj.jpg')#加載背景圖

screen.

blit(,[0,0])#將背景圖畫在窗口[0,0]位置

#刷新畫面測試代碼,可得到一個(gè)帶有背景圖的窗口。2.繪制福字。在屏幕上出現(xiàn)福字同樣可以使用以上在屏幕上繪制圖像的方法。為了便于游戲循環(huán)中反復(fù)調(diào)用,可以定義成一個(gè)函數(shù)showfu,在繪制福字時(shí),需要設(shè)置圖像顯示的位置,因此showfu中有兩個(gè)參數(shù),分別表示圖像位置的橫坐標(biāo)和縱坐標(biāo)。defshowfu(x,y):#定義函數(shù),在坐標(biāo)(x,y)上顯示圖像gift=pygame.image.load('fu.png')#加載福字圖像screen.blit(gift,[x,y])#顯示福字在實(shí)際使用中,只要提供一對坐標(biāo)值,就可以調(diào)用showfu了。3.顯示得分。顯示游戲得分的方法為:先定義顯示字體,然后將score顯示出來。為了增加代碼的復(fù)用性,以便游戲循環(huán)中狀態(tài)更新時(shí)反復(fù)調(diào)用,可以定義成一個(gè)函數(shù)showscore。defshowscore(score):#定義函數(shù),顯示分?jǐn)?shù)textfont=pygame.font.SysFont('Arial',30)#字體為Arial,大小30#生成平滑的紅色字符串t=textfont.render('score:'+str(score),True,(255,0,0))screen.blit(t,[50,50])#在窗口顯示仔細(xì)閱讀代碼并理解各語句的含義。在pygame的游戲循環(huán)中,我們通過調(diào)用以下語句來完成游戲狀態(tài)的更新和屏幕的重繪,請?jiān)跈M線上注明各語句的功能。screen.blit(back,[0,0])#showscore(score)x=random.randint(50,700)#y=random.randint(50,500)#showfu(x,y)#pygame.display.update()pygame.time.de1ay(800)#設(shè)置兩次顯示福字之間的延時(shí)活動(dòng)2人機(jī)交互及程序拼裝在本項(xiàng)目中,人機(jī)交互主要體現(xiàn)在鼠標(biāo)單擊上。需要獲取按鍵的情況,就要在監(jiān)聽事件中增加相應(yīng)的判斷語句。打開教科書配套資源中的“接福.py”,找到相應(yīng)的代碼,仔細(xì)閱讀并理解各語句的含義,在下面橫線上用自然語言描述其對應(yīng)的功能。ifevent.type==pygame.MOUSEBUTTONDOWN:#__#獲取鼠標(biāo)按下的坐標(biāo)并記錄在mousex,mousey中mousex,mousey=pygame.mouse.get.pos()#判斷鼠標(biāo)是否擊中福字,本例中福字寬為60,高為70ifmousexinrange(x,x+60)andmouseyinrange(y,y+7O):score=score+5最后,我們可以參照流程圖組裝各程序塊并調(diào)試運(yùn)行,也可以在Python中打開教科書配套資源中的“接福.py”并運(yùn)行。雖然游戲項(xiàng)目已開發(fā)完成,但這款游戲還有不盡如人意的地方,如游戲難度無法調(diào)整等,請?jiān)谙旅娴目蛑刑顚懩銓τ螒虻母倪M(jìn)意見。拓展訓(xùn)練嘗試給“接?!庇螒蛟O(shè)計(jì)一個(gè)難度策略以增加游戲的趣味性。參考答案:難度策略:分?jǐn)?shù)越高,福字出現(xiàn)的速度越快,即:延時(shí)的時(shí)間減少。importpygame,sys,random#導(dǎo)入模塊pygame.init()#初始化defshowfu(x,y):#定義函數(shù),在(x,y)位置顯示福字gift=pygame.image.load('fu.png')#加載福字圖像screen.blit(gift,[x,y])#將福字顯示在(x,y)位置上defshowscore(score):#定義函數(shù),顯示分?jǐn)?shù)textfont=pygame.font.SysFont('Arial',30)#創(chuàng)建文本對象,Arial,大小30t=textfont.render('score:'+str(score),True,(255,0,0))#生成平滑的紅色字符串screen.blit(t,[50,50])#在窗口顯示#主程序開始score=0#變量初始化mousex=0mousey=0t=800#延時(shí)的時(shí)間初識為800screen=pygame.display.set_mode([800,600])#創(chuàng)建一個(gè)窗口pygame.display.set_caption('接福')#設(shè)置窗口標(biāo)題back=pygame.image.load('bj.jpg')#加載背景圖像screen.blit(back,[0,0])#將背景圖顯示在窗口showscore(score)#顯示分?jǐn)?shù)x=random.randint(50,700)#隨機(jī)生成福字水平方向坐標(biāo)y=random.randint(50,500)#隨機(jī)生成福字垂直方向坐標(biāo)showfu(x,y)#在(x,y)位置顯示福字pygame.display.update()#刷新窗口whileTrue:foreventinpygame.event.get():#偵聽并獲取事件列表ifevent.type==pygame.QUIT:#接收到退出事件后退出程序sys.exit()ifevent.type==pygame.MOUSEBUTTONDOWN:#偵聽到鼠標(biāo)點(diǎn)擊事件mousex,mousey=pygame.mouse.get_pos()#獲取鼠標(biāo)按下的坐標(biāo)#判斷鼠標(biāo)是否擊中福字,本例福字寬為60,高為70ifmousexinrange(x,x+60)andmouseyinrange(y,y+70):score=score+5#加分t=abs(800-5*score)#分?jǐn)?shù)越高,延時(shí)的時(shí)間越短,難度調(diào)整的策略screen.blit(back,[0,0])#將背景圖顯示在窗口showscore(score)#顯示分?jǐn)?shù)x=random.randint(50,700)#隨機(jī)生成福字水平方向坐標(biāo)y=random.randint(50,500)#隨機(jī)生成福字垂直方向坐標(biāo)showfu(x,y)#在(x,y)位置顯示福字pygame.display.update()#刷新窗口pygame.time.delay(t)#延時(shí)2、有N根小棒(N是偶數(shù)),每根小棒長1厘米,要將這些小棒拼成矩形,怎樣拼才能使其面積最大?請編程實(shí)現(xiàn),輸出最大面積。例如:N=10,有以下兩種拼法,面積分別是4平方厘米和6平方厘米,按第2種拼法拼得的矩形面積最大。參考代碼:n=int(input('請輸入小棒的數(shù)量:'))max=0ifn%2==0:foriinrange(1,n):s=i*(n/2-i)ifs>max:max=sprint('最大面積是:',max)else:print('請輸入偶數(shù)!')3選擇1.以下關(guān)于算法中輸入、輸出的描述正確的是()。A.算法可以沒有輸入,表示該算法不涉及任何數(shù)據(jù)信息B.算法可以沒有輸出,表示該算法運(yùn)行結(jié)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論