中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

4.4 綜合問題的解決 課件(共20張PPT)

資源下載
  1. 二一教育資源

4.4 綜合問題的解決 課件(共20張PPT)

資源簡介

(共20張PPT)
綜合問題的解決
—— 接 福 游 戲
課 前 預 習
預習課本P107-P109,思考以下問題
1.python中專門用來開發游戲的模塊是( )
A、numpy B、pygame
C、matplotlib D、math
2.在軟件的生命周期中,明確軟件系統具備哪些功能的階段是( )。
A.可行性分析 B.需求分析
C.概要設計 D.詳細設計
B
B
教 學
目 標
學會分析任務,描述需求分析,知道需要解決的關鍵問題。
體驗軟件開發的基本流程
接福游戲
運行“接福游戲”,描述這款游戲的功能?需要python中的哪些模塊實現這些功能?

了解需求、分析問題
pygame模塊提供了圖像、聲音等函數;
random模塊用于產生隨機數;
sys模塊包含了跟Python環境相關的函數。
綜合考慮游戲功能,需要導入的模塊有pygame、random、 sys。

了解需求、分析問題
pygame是一個專門用來開發游戲的模塊,可以包含圖像、聲音等。
模塊 功能
pygame. display 訪問顯示設備
pygame.event 管理事件
pygame.font 使用字體
pygame.image 加載和存儲圖片

分解任務,設計流程
如何實時獲得鼠標的狀態并對鼠標單擊做出正確的響應。也就是不斷地進行監聽、更新游戲狀態 、重繪屏幕三個步驟的操作。

分解任務,設計流程
pygame自帶監聽類循環,會不斷檢查用戶的操作,比如用戶按鍵、移動鼠標或者關閉窗口等,通常用來實現游戲中與用戶的交互。
監聽
while True:
#監聽所有事件, 獲取事件列表
for event in pygame.event.get():
if event.type==pygame.QUIT: #Quit事件
sys.exit() #退出程序
#鼠標單擊事件
if event.type==pygame.MOUSEBUTTONDOWN:
……

分解任務,設計流程
游戲狀態可以理解為程序中的變量值。隨著鼠標單擊,游戲中的分數需要更新。這些狀態通常隨著鼠標單擊或鍵盤輸入等事件的發生而改變。
更新游戲狀態
本游戲中福字在窗口隨機出現,實際上就是顯示不同位置的福字。要達到這個效果,需要完成兩個步驟:①把原來的圖像擦掉或覆蓋②在新的位置上畫出圖像
重繪屏幕
計算機要“擦掉”某個圖像,可以采用重繪背景或者用其他對象來覆蓋的方式
活動一:
將主程序的各功能語句放到合適的位置。

組裝程序,測試運行
1. 創建窗口,設置背景
import pygame #導入模塊
pygame.init() #pygame模塊初始化
#創建一個窗口screen,大小為800*600
screen=pygame.display.set_mode([800,600])
pygame.display.set_caption('接福') #設置窗口標題

組裝程序,測試運行
顯示一個有背景色的窗口
screen.fill((144,238,144)) #窗口填充淡綠色*
pygame.display.update() #窗口刷新
顯示一個有背景圖片的窗口
back=pygame.image.load('bj.jpg') #加載背景圖像
screen.blit(back,[0,0]) #將背景圖畫在窗口
活動二:
根據以上分析完成“接福”游戲的界面設計
import pygame
screen = pygame.display.set_mode([①]) # 創建一個800*600的窗口
pygame.display.set_caption('接福') # 設置窗口標題
back = pygame.image.load('bj.jpg') # 加載背景圖像
screen.blit(②, [0, 0]) # 將背景圖顯示在窗口
pygame.display.③ #刷新畫面

組裝程序,測試運行
2.繪制福字
在實際使用中,只要提供一對坐標值,就可以調用showfu了。
def showfu(x,y): #定義函數,在坐標(x,y)上顯示圖像
gift=pygame.image.load('fu.png') #加載福字圖像
screen.blit(gift,[x,y]) #顯示福字

組裝程序,測試運行
方法為:先定義顯示字體,然后將score顯示出來。為了增加代碼的復用性,以便游戲循環中狀態更新時反復調用,可以定義成一個函數showscore。
3.顯示得分
def showscore(score): #定義函數,顯示分數
textfont=pygame.font.SysFont('Arial',30) #字體為Arial,大小30
#生成平滑的紅色字符串
t=textfont.render('score:'+str(score),True, (255,0,0))
screen.blit(t,[50,50]) #在窗口顯示

組裝程序,測試運行
4.游戲狀態的更新和屏幕的重繪
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.delay(800) #設置兩次顯示福字之間的延時
將背景圖顯示在窗口
顯示分數
隨機生成福字水平方向坐標
隨機生成福字垂直方向坐標
在(x,y)位置顯示福字
刷新窗口

組裝程序,測試運行
while True:
for event in pygame.event.get(): #偵聽并獲取事件列表
if event.type==pygame.QUIT: #接收到退出事件后退出程序
sys.exit()
if event.type==pygame.MOUSEBUTTONDOWN: #偵聽到鼠標點擊事件
mousex,mousey=pygame.mouse.get_pos() #獲取鼠標按下的坐標
#判斷鼠標是否擊中福字,本例福字寬為60,高為70
if mousex in range(x,x+60) and mousey in range(y,y+70):
score=score+5 #加分
實 現 交 互
課 堂 小 結
綜合問題的
解決
pygame
解決問題的方法與步驟
pygame.display訪問顯示設備
pygame.event 管理事件
pygame.font 使用字體
pyg ame.miage 加栽和存儲圖片
分析問題
設計算法(流程圖)
編寫代碼
調試運行
鞏 固 提 升
1.以下關于算法中輸入、輸出的描述正確的是( )。
A.算法可以沒有輸入,表示該算法不涉及任何數據信息
B.算法可以沒有輸出,表示該算法運行結果為“無解”
C.算法必須要有輸入,否則算法無法進行
D.算法至少要有一個輸出
2.采用盲目搜索的方法,在搜索的過程中,對所得的結果逐一篩選,排除不符合要求的結果,保留那些符合要求的結果,這種方法叫做( )。
A.解析法 B.遞推法 C.枚舉法 D.選擇法
D
C
THE END

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 翁牛特旗| 柞水县| 邵阳市| 正镶白旗| 邢台市| 德化县| 彭州市| 喀什市| 襄汾县| 乡宁县| 麻阳| 罗平县| 郴州市| 永城市| 安达市| 门源| 南雄市| 客服| 罗田县| 石林| 新昌县| 陇川县| 舟山市| 新建县| 大关县| 宣威市| 维西| 丹寨县| 宝鸡市| 云阳县| 南安市| 清河县| 麻江县| 崇州市| 宿松县| 岑巩县| 大连市| 巴马| 喀喇沁旗| 太白县| 新竹县|