學完 Python,我需要編個遊戲露兩手

學完 Python,我需要編個遊戲露兩手

“人生苦短,我用 Python”。

這句戲言真實反映了 Python 語言的江湖地位。

那麼,要快速上手和進階 Python 編程,有什麼好途徑呢?

我推薦遊戲開發。

文末附Python資料下載。

遊戲開發激發學習熱情

作為一名擁有十餘年程序設計教學經驗的老師,我清楚地記得,當告訴學生們課程任務有俄羅斯方塊遊戲開發的時候,部分同學在課堂上熱切地喊出“好耶”,部分同學鼓起掌來,大家一副躍躍欲試的神情。

那是我在 2014 級軟件工程專業教學改革試點班中做的嘗試。開設的課程叫作“大學計算機基礎B”,一共16周,64學時。

前面第11周講授計算機基礎和 Python 編程,後面5周學生學習C/C++(因後續課程需要)。

後5周的大作業就是基於 Win32 API 開發俄羅斯方塊遊戲程序。我多少有些擔心學生是否做得下來,然而到驗收的那一天,我有些吃驚。大部分同學的作品都明顯超出了作業要求的標準。

儘管有很多因素(比如強有力的教輔)促成了這樣的好結果,但我認識到一個重要的原因是“激發了學生們的學習熱情”。

是的,遊戲開發有這個效果。有學生告訴我,他把自己的作品發佈到高中同學群,讓同學們玩玩,結果贏得讚譽一片。

我察覺到了學生嘴角露出了小小的得意。有學生開夜車編程序,搞到凌晨兩三點都不想去睡覺。所以呢,我百分百肯定,遊戲開發是學習 Python 編程的好途徑。

遊戲開發門檻低

用 Python 開發遊戲的門檻是很低的。例如,實現顯示遊戲窗口的代碼只需要15行。表1給出的代碼實現了顯示遊戲窗口功能,程序運行效果見圖1。表1中一共有28行代碼,除去空行和註釋行後是15行。

我以前用 VC++ 開發圖形界面程序的時候,實現顯示遊戲窗口的代碼有一大堆,跨好幾個文件,讓人望而生畏。用 Python 的話,基於 Pygame 模塊,15行代碼就搞定了。

學完 Python,我需要編個遊戲露兩手

import sysimport pygamedef main(): #初始化pygame。啟用Pygame必不可少的一步,在程序開始階段執行。 pygame.init() #創建屏幕對象 screen = pygame.display.set_mode((1200, 900) ) #分辨率是1200*900 pygame.display.set_caption("俄羅斯方塊") #窗口標題 #屏幕背景色 bg_color = (230, 230, 230) #遊戲主循環 while True: #監視鍵盤和鼠標事件 for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() #設定屏幕背景色 screen.fill(bg_color) #讓最近繪製的屏幕可見 pygame.display.flip()if __name__ == '__main__': main()

無論是 Python 入門,還是Python進階,學習者都有適合的遊戲開發項目可供選擇。正是這樣,Python 語言成為教孩子學編程的優先選擇。

教小孩學編程,可不能一本正經的,必須用好招吸引他們,激發他們。遊戲開發就是常用的招術。

以《教孩子學編程(Python語言版)》一書為例,該書一開頭就教孩子繪製彩色螺旋線,接著教孩子編寫小遊戲,然後教孩子編寫具有動畫、鼠標控制的遊戲。

我建議初學者可以自降身份去學一學這本書。如果你想編寫有更多挑戰的遊戲,那麼建議你學習《Python 遊戲編程快速上手》一書。

從遊戲開發中能學到什麼

  • 開發者有機會接觸到千行代碼量級的程序。初級開發者編寫的程序一般只有幾十行代碼。要指出的是,編寫幾十行代碼的程序和編寫千行代碼的程序,完全不是一個量級的事。
  • 至少,千行代碼這一現實將促使開發者養成使用函數的習慣。我上編程基礎課的時候,由於編寫的程序只有幾十行代碼,學生不願意用函數,你再苦口婆心地講道理也沒用。
  • 遊戲開發要求開發者採用良好的結構來組織代碼。程序的代碼量上去了,會促使開發者使用多個模塊文件,甚至使用類與對象來編程。
  • 從遊戲開發中,開發者將學習圖形界面開發(GUI),理解事件驅動編程模型。這將會幫助開發者消除對軟件的神秘感,有助於開發者開展更多的探索。
  • 遊戲開發會提高開發者的學習能力。例如,遊戲開發會用到python標準庫以及各種第三方庫。這將促使開發者藉助網絡和手冊,查詢各個函數的用法,學習相關的概念和知識。一點一點地,開發者擁有更多知識,更強的學習能力。

遊戲開發實踐注意事項

  • 切勿囫圇吞棗。不要這樣做:照著書本或者教程敲(甚至複製)一遍代碼,跑一遍程序就算完事了。
  • 你必須自己搞懂。無論是整體思路,還是一行代碼內的細節,你都要吃透。怎樣算吃透了程序?不借助書本或教程(藉助手冊查閱函數的用法是可以的),能正確地再寫一遍程序。
  • 採用“小步走”策略。下一步只實現一個小功能。實現完成後,檢查運行效果。通過後再去完成下一個功能。
  • 多用函數,多用函數,多用函數。把程序代碼分解到多個模塊文件。使用類和對象來組織代碼。
  • 尋求幫助。我遇到問題的時候,首先做的是釐清問題是什麼。接著,我會在網絡引擎的搜索框內輸入描述問題的關鍵詞,期望得到解決辦法的線索。這幫了我的大忙。

Python學習書籍推薦

很多人在問,學習Python讀什麼書,這其實是一個非常通用的問題,學習分為2種方式:看書、上課,而讀書學習是最實惠也是最高效的一種,小編整理了一些Python高分書籍給大家,從0基礎到高級適合不同學習階段,希望大家學習愉快。獲取方式:點擊小編頭像,關注後私信回覆“資料”即可下載。

學完 Python,我需要編個遊戲露兩手


分享到:


相關文章: