成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么說(shuō)Python和Pygame最適合編程初學(xué)者?

開(kāi)發(fā) 后端 前端
Pygame,基于計(jì)算機(jī)課程中最流行的語(yǔ)言 Python。Python 非常適合用一小段代碼來(lái)實(shí)現(xiàn)我們的想法,孩子們可以從單個(gè)文件和單個(gè)代碼塊起開(kāi)始學(xué)習(xí),在掌握函數(shù)(function)或類(class)對(duì)象之前,就可以寫(xiě)出意大利面條似的代碼。 很像手指畫(huà),所想即所得。

[[220432]]

我們有三個(gè)理由來(lái)說(shuō)明 Pygame 對(duì)初學(xué)編程者是最好的選擇。

上個(gè)月,Scott Nesbitt 發(fā)表了一篇標(biāo)題為 Mozilla 支出 50 萬(wàn)美元來(lái)支持開(kāi)源項(xiàng)目的文章。其中一個(gè)基于 HTML/JavaScript 的游戲平臺(tái)項(xiàng)目 Phaser 獲得了 50,000 美元的獎(jiǎng)勵(lì)。整整一年里,我都在使用 Phaser 平臺(tái)來(lái)教我的小女兒,用來(lái)學(xué)習(xí)的話,它是最簡(jiǎn)單也是最好的 HTML 游戲開(kāi)發(fā)平臺(tái)。然而,對(duì)于初學(xué)者來(lái)說(shuō),使用 Pygame 也許效果更好。原因如下: 

1、 小段代碼塊

Pygame,基于計(jì)算機(jī)課程中最流行的語(yǔ)言 Python。Python 非常適合用一小段代碼來(lái)實(shí)現(xiàn)我們的想法,孩子們可以從單個(gè)文件和單個(gè)代碼塊起開(kāi)始學(xué)習(xí),在掌握函數(shù)(function)或類(class)對(duì)象之前,就可以寫(xiě)出意大利面條似的代碼。 很像手指畫(huà),所想即所得。

以這樣的方式來(lái)學(xué)習(xí),當(dāng)編寫(xiě)的代碼越來(lái)越難于管理的時(shí)候,孩子們很自然的就會(huì)把代碼分解成函數(shù)模塊和類模塊。在學(xué)習(xí)函數(shù)之前就學(xué)習(xí)了 Python 語(yǔ)言的語(yǔ)法,學(xué)生將掌握基本的編程知識(shí),對(duì)了解全局作用域和局部作用域起到更好的作用。

大多數(shù) HTML 游戲在一定程度上會(huì)將結(jié)構(gòu)、樣式和編程邏輯分為 HTML、CSS 和 JavaScript,并且需要 CSS 和 HTML 的知識(shí)。從長(zhǎng)遠(yuǎn)來(lái)看,雖然拆分更好,但對(duì)初學(xué)者來(lái)說(shuō)是個(gè)障礙。一旦孩子們發(fā)現(xiàn)他們可以用 HTML 和 CSS 快速構(gòu)建網(wǎng)頁(yè),很有可能就會(huì)被顏色、字體和圖形的視覺(jué)刺激分散注意力。即使僅僅只專注于 JavaScript 代碼,也需要學(xué)習(xí)基本的文檔結(jié)構(gòu)模型(DOM),以使 JavaScript 代碼能夠嵌入進(jìn)去。 

2、 全局變量更清晰

Python 和 JavaScript 都使用動(dòng)態(tài)類型變量,這意味著變量只有在賦值才能確定其類型是一個(gè)字符串、一個(gè)整數(shù)還是一個(gè)浮點(diǎn)數(shù),然而在 JavaScript 更容易出錯(cuò)。類似于類型變量,JavaScript 和 Python 都有全局變量和局部變量之分。Python 中,如果在函數(shù)塊內(nèi)要使用全局變量,就會(huì)以 global 關(guān)鍵字區(qū)分出來(lái)。

要理解在 Phaser 上教授編程初學(xué)者所面臨的挑戰(zhàn)的話,讓我們以基本的制作您的第一個(gè) Phaser 游戲教程為例子,它是由 Alvin Ourrad 和 Richard Davey 開(kāi)發(fā)制作的。在 JavaScript 中,程序中任何地方都可以訪問(wèn)的全局變量很難追蹤調(diào)試,常常引起 Bug 且很難解決。因?yàn)?Richard 和 Alvin 是專業(yè)程序員,所以在這兒特意使用全局變量以使程序簡(jiǎn)潔。

  1. var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update });
  2.  
  3. function preload() {
  4.  
  5.     game.load.image('sky', 'assets/sky.png');
  6.  
  7. }
  8.  
  9. var player;
  10. var platforms;
  11.  
  12. function create() {
  13.     game.physics.startSystem(Phaser.Physics.ARCADE);
  14. ...

在他們的 Phaser 編程手冊(cè) 《Interphase》 中,Richard Davey 和 Ilija Melentijevic 解釋說(shuō):在很多 Phaser 項(xiàng)目中通常都會(huì)使用全局變量,原因是使用它們完成任務(wù)更容易、更快捷。

“如果您開(kāi)發(fā)過(guò)游戲,只要代碼量到一定規(guī)模,那么(使用全局變量)這種做法會(huì)使您陷入困境的,可是我們?yōu)槭裁催€要這樣做?原因很簡(jiǎn)單,僅僅只是要使我們的 Phaser 項(xiàng)目容易完成,更簡(jiǎn)單而已。”

針對(duì)一個(gè) Phaser 應(yīng)用程序,雖然可以使用局部變量和拆分代碼塊來(lái)達(dá)到關(guān)注點(diǎn)隔離這些手段來(lái)重構(gòu)代碼,但要使第一次學(xué)習(xí)編程的小孩能理解,顯然很有難度的。

如果您想教你的孩子學(xué)習(xí) JavaScript,或者如果他們已經(jīng)知道怎樣使用像 Python 來(lái)編程的話,有個(gè)好的 Phaser 課程推薦: 完整的手機(jī)游戲開(kāi)發(fā)課程,是由 Pablo Farias Navarro 開(kāi)發(fā)制作的。雖然標(biāo)題看著是移動(dòng)游戲,但實(shí)際是關(guān)于 JavaScript 和 Phaser 的。JavaScript 和 Phaser 移動(dòng)應(yīng)用開(kāi)發(fā)已經(jīng)轉(zhuǎn)移到 PhoneGap 話題去了。 

3、 Pygame 無(wú)依賴要求

由于 Python Wheels 的出現(xiàn),Pygame 超級(jí)容易安裝。在 Fedora/Red Hat 系統(tǒng)下也可使用 yum 包管理器來(lái)安裝:

  1. sudo yum install python3-pygame

更多信息請(qǐng)參考官網(wǎng) Pygame 安裝說(shuō)明文檔

相比來(lái)說(shuō),雖然 Phaser 本身更容易安裝,但需要掌握更多的知識(shí)。前面提到的,學(xué)生需要在 HTML 文檔中組裝他們的 JavaScript 代碼,同時(shí)還需要些 CSS。除了這三種語(yǔ)言(HTML、CSS、JavaScript),還需要使用火狐或谷歌開(kāi)發(fā)工具和編輯器。JavaScript 最常用的編輯器有 Sublime、Atom、VS Code(按使用多少排序)等。

由于瀏覽器同源策略的原因,如果您直接在瀏覽器中打開(kāi) HTML 文件的話,Phaser 應(yīng)用是不會(huì)運(yùn)行的。您必須運(yùn)行 Web 服務(wù),并通過(guò)服務(wù)訪問(wèn)這些文件。還好,對(duì)于大多數(shù)工程項(xiàng)目,可以不用在本地運(yùn)行 Apache 服務(wù),只需要運(yùn)行一些輕量級(jí)的服務(wù)就可以,比如 httpster。 

Phaser 和 JavaScript 的優(yōu)勢(shì)

JavaScript 和 Phaser 有著種種的不好,為什么我還繼續(xù)教授他們?老實(shí)說(shuō),我考慮了很長(zhǎng)一段時(shí)間,我在擔(dān)心著學(xué)生學(xué)習(xí)變量申明提升variable hoisting和變量作用域的揪心。我開(kāi)發(fā)出基于 Pygame 和 Python 的課程,隨后也開(kāi)發(fā)出一濤基于 Phaser 的。最終,我決定使用 Pablo 預(yù)先制定的課程作為起點(diǎn)。

我轉(zhuǎn)用 JavaScript 有兩個(gè)原因。首先,JavaScript 已經(jīng)成為正式應(yīng)用的正式語(yǔ)言。除了 Web 應(yīng)用外,也可使用于移動(dòng)和服務(wù)應(yīng)用方面。JavaScript 無(wú)處不在,其廣泛應(yīng)用于孩子們每天都能看到的應(yīng)用中。如果他們的朋友使用 Javascript 來(lái)編程,他們很可能也會(huì)受影響而使用之。正如我看到了 JavaScript 背后的動(dòng)力,所以深入研究了可編譯成 JavaScript 的替代語(yǔ)言,主要是 Dart 和 TypeScript 兩種。雖然我不介意額外的轉(zhuǎn)換步驟,但還是最喜歡 JavaScript。

最后,我選擇使用 Phaser 和 JavaScript 的組合,是因?yàn)槲乙庾R(shí)到上面那些問(wèn)題在 JavaScript 可以被解決,僅僅只是一些工作量而已。高質(zhì)量的調(diào)試工具和一些大牛們的工作使得 JavaScript 成為教育孩子編碼的可用和有用的語(yǔ)言。 

最后話題: Python 對(duì)壘 JavaScript

當(dāng)家長(zhǎng)問(wèn)我使用的什么語(yǔ)言作為孩子的入門語(yǔ)言時(shí),我會(huì)立即推薦 Python 和 Pygame。因?yàn)橛谐汕先f(wàn)的課程可選,而且大多數(shù)都是免費(fèi)的。我為我的兒子選擇了 Al Sweigart 的 使用 Python 和 Pygame 開(kāi)發(fā)游戲 課程,同時(shí)也在使用 Allen B. Downey 的 Python 編程思想:如何像計(jì)算機(jī)科學(xué)家一樣思考。在 Android 手機(jī)上可以使用 Tom RothamePAPT Pyame 來(lái)安裝 Pygame 游戲。

盡管有我的建議, 我總是懷疑孩子們很快就會(huì)搬到 JavaScript。這沒(méi)關(guān)系 —— JavaScript 是一門成熟的編程語(yǔ)言,有很多很多輔助工具。但有多年的幫助大兒子使用 Python 創(chuàng)建炫酷游戲經(jīng)歷的我,依然鐘情于 Python 和 Pygame。 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2021-01-12 10:06:57

編程語(yǔ)言開(kāi)發(fā)

2010-08-18 14:37:23

Linux初學(xué)者Linux版本

2021-03-09 15:21:13

Python機(jī)器學(xué)習(xí)開(kāi)發(fā)

2014-08-06 10:19:38

編程語(yǔ)言程序員

2021-12-09 05:58:51

編程語(yǔ)言開(kāi)發(fā)代碼

2021-02-04 14:54:22

Python開(kāi)發(fā)語(yǔ)言

2019-07-05 13:42:33

Python編程語(yǔ)言JavaScript

2020-08-07 07:05:48

JavaScript開(kāi)發(fā)技術(shù)

2020-05-10 16:59:56

Python裝飾器開(kāi)發(fā)

2012-03-20 09:32:24

Linux服務(wù)器

2022-05-23 08:28:41

云應(yīng)用程序云計(jì)算流程集成

2011-06-17 14:12:32

Qt

2011-06-17 15:06:14

Qt

2011-06-17 15:32:28

Qt

2011-06-17 14:29:55

Qt

2022-04-01 09:14:58

Zorin OSLinux

2020-09-06 22:04:48

Python運(yùn)算符開(kāi)發(fā)

2011-06-17 14:41:56

Qt

2011-06-17 15:19:28

Qt

2011-06-17 15:25:18

Qt
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 免费在线观看成人 | 久久在线 | 午夜视频在线观看一区二区 | www.久久久.com | 日韩成人高清 | 女人牲交视频一级毛片 | 夜夜草导航 | av香蕉| 久久www免费人成看片高清 | 99久久精品视频免费 | 免费一区 | 97av| 在线播放国产一区二区三区 | 国产精品福利在线 | 日韩精品一区二区三区在线观看 | 99久久免费精品国产免费高清 | 国产1区| 国产精品成人一区二区 | 欧美日韩精品综合 | 播放一级毛片 | 国产一区二区三区在线 | 欧美日韩国产精品一区 | 欧美视频在线播放 | 色毛片| 亚洲91视频 | 黄色av网站免费看 | 91久久国产综合久久91精品网站 | 一级黄色片日本 | 一级高清免费毛片 | 91五月婷蜜桃综合 | 日本黄色大片免费 | 欧美高清一区 | 久久久久中文字幕 | 欧美日韩久久久久 | 久久中文字幕一区 | 久久99精品国产99久久6男男 | 欧美www在线观看 | 三级av在线 | 九九热在线免费视频 | 欧美一区二区三区电影 | 久久精品国产清自在天天线 |