Skip to main content

97 posts tagged with "python"

View All Tags

· 5 min read

TextRPG 是我最近找到的一個好玩 python 模組,由德國人開發。 作用就是用來寫一個純文字的冒險遊戲。 目前的版本已包含了 RPG 中常見的對話、戰鬥等元素,整個遊戲可以完全由一個 python 腳本來構成。

因為實在太簡單了,所以來個五分鐘上手文好了:)

1. 安裝軟體

安裝好 Python 與 easy_install 模組後,接著安裝周蟒與 TextRPG

$ easy_install zhpy $ easy_install textrpg

如此安裝好後就可以開始寫 RPG 了。

2. 準備環境

新建一個檔案夾,首先,用文字編輯器新增一個 rpg.ini 檔案,裡面內容如下:

[charactor] 角色 = Char 樣板 = template 名字 = name 姓名 = name 說 = say 詢問 = ask 動作 = act 行動 = act 比較技能 = compete_skill 取得經驗值 = get_exp 生命力 = bTP 生命值 ==TP 攻擊力 = attack 武器 = weapon 防具 = armor 傷害 = wounds 活著 = active [story] 故事 = story 儲存 = save 給予經驗值 = give_exp 戰鬥 = battle 對話 = diag 將這個檔案儲存起來。接著開啟適當的 python 程式編輯器新建一個任意檔名的檔案 (範例裡將檔案取名為 HelloRPG.twpy)

在檔案開頭加入三行敘述:

#!/usr/bin/env python

encoding: utf-8

from rpg_lib.textrpg import * 好了,我們環境已經準備好了。

3. 撰寫故事

因為用 TextRPG 寫故事太容易了,這就編一個大雄大戰小叮噹的故事:

#!/usr/bin/env python

encoding: utf-8

from rpg_lib.textrpg import *

大雄 = 角色 () 大雄。名字 ="大雄"

小叮噹 = 角色 () 小叮噹。名字 ="小叮噹"

故事 ("""大雄哭著跑進房間""")

大雄。說 ("""嗚嗚~~小叮噹,技安跟阿福欺負我""") 小叮噹。說 ("""口胡,大雄我受夠你了,來戰吧!""")

大雄。攻擊力 = 3 小叮噹。攻擊力 = 90

大雄。動作 ("""大驚失色,狼狽逃竄""") 大雄。說 ("""小叮噹,你發什麼瘋!""")

勝利 = 小叮噹。戰鬥 (大雄) 如果 勝利: __故事 ("""小叮噹打敗了大雄,從此過上清靜的日子""") 否則: __大雄。動作 ("從如廢墟般的房間中爬起") __大雄。說 ("""呼呼,我還是贏了""") __故事 ("""大雄打敗了小叮噹,從此作者掰不下去封筆了。""")

註:上面程式範例中的 "____" 代表 4 個空格。用空格來表示程式邏輯區塊是 python 的語法。

好了,我們寫好了故事,接著就是將這個檔案儲存起來。 檔案儲存好之後,我們打開 command line 程式,開始執行這個遊戲:

$ zhpy HelloRPG.twpy 大雄哭著跑進房間 大雄:嗚嗚~~小叮噹,技安跟阿福欺負我 小叮噹:口胡,大雄我受夠你了,來戰吧! 大雄 大驚失色,狼狽逃竄 大雄:小叮噹,你發什麼瘋!

---battle-stats for 小叮噹 --- .... ---/battle-stats---

大雄 comes closer. 小叮噹: Do you want to attack 大雄?(Yes, no) Yes You attack 大雄. 小叮噹: How do you want to fight? (Usual, defensive, target head) Usual

You won this round. 大雄 took 80 points of damage and a critical wound.

小叮噹打敗了大雄,從此過上清靜的日子

· One min read

Sphinx 是 Python 2.6 新採用的 rst 文件生成系統.

要開始玩首先得下載 Python 原始碼

svn co http://svn.python.org/projects/doctools/trunk/ python

下載完後進入 Doc 目錄,輸入

make html

則會自動下載 sphinx 與相關程式,然後自動編譯 rst 檔案.

如果輸入

make web

的話則是產生一個可執行的線上網頁文件程式。此網站程式甚至還支援搜尋,真是強悍到有點扯 @@

Update:

Sphinx 產生的首頁原來是從 template 中 render 的。看來拿到其他地方重用的彈性並沒想像中的高. 一般使用 rst 時還是繼續用自己寫的 mopowg 吧.

· 2 min read

試譯:

TIOBE 機構宣佈了 Python 程式語言成為 2007 年度程式語言。 今年的競爭相當激烈,但是最終 Python 語言以最高的年成長率 (2.04%) 拔得頭籌。 尚沒有明確原因能解釋為何 Python 語言在 2007 年能獲得那麼大的成長。

從有紀錄以來,上個月 Python 語言的普及度首次超越了 Perl 語言。 這是 Python 語言已成為在系統層級上主流黏合語言的指標。 系統管理者與版本管理者特別地喜愛 Python 語言。

Python 語言也很有可能因為即將發佈的 Python 3, 而進一步在 2008 年獲得更高的普及率。

原文 http://www.tiobe.com/tpci.htm

Python has been declared as programming language of 2007. It was a close finish, but in the end Python appeared to have the largest increase in ratings in one year time (2.04%). There is no clear reason why Python made this huge jump in 2007. Last month Python surpassed Perl for the first time in history, which is an indication that Python has become the "de facto" glue language at system level. It is especially beloved by system administrators and build managers. Chances are high that Python's star will rise further in 2008, thanks to the upcoming release of Python 3.

延伸閱讀: TIOBE 語言流行度排行顯示混合編程時代到來

· 2 min read

最近看到一篇 Ruby 跟 Python 本質上不同

我也注意到一個現象:

偏向 c/c++/asp/php 的開發者對 Python 接受度較高,偏向 perl 的使用者則偏好 Ruby。 因為不管是 Python 還是 Ruby,要開發網頁都得寫 JavaScript,所以 JavaScript 沒有辨識度。

Python 像是先天武功密笈,不論資質,學了後一旦出招,都帶有 Pythonic 風格。 因為每個人寫起來的 Python 程式風格一致,更容易讓自己專注於內容。 而且學了 Pythonic 風格,自己使用其他語言寫作時也會想要盡量同樣簡明。

Python 社群的 Web 開發上也有更多的選擇,可以由禪入道 (TurboGears)、由佛入道 (Django),或從諸多現成的組件中挑選,自行花幾個鐘頭打造一個。

魔幻語言則是武林密笈,靠著投靠門派,依師父傳授某些密籍 (開發、命名方法) 來鍛鍊自己的風格。

例如 Javascript 就從早期混著寫的方式,到近期 AJAX 興起,鼓吹 JS 與 HTML 分離的風格。永遠得追逐著非關語言的變化,來調整自己出招的方式。

學的好的有了自己的風格,學的不好的如邯鄲學步。

接了別人開始的案子要維護時,要按自己的風格重改過呢,還是照著前人的風格呢? 或是,就這麼接受風格混亂的程式碼,到最後難以維護?

· 2 min read

Pagoda 是使用 TurboGears 框架撰寫的 CMS

http://www.pagodacms.org/

現在網站上僅有他們在 pycon 2007 上的 screencast

Pagoda provides a first-class plugin-based content management system
with a Web 2.0 management console that integrates instantly with existing TurboGears applications.

郵件列表中他們揭示了 Pagoda CMS 的一些特色:

  • 只需兩行程式碼就能整合進任何使用 turbogears 撰寫的應用程式
  • 專注於內容管理,而非取代整個網站
  • 使用 SQLAlchemy 和 genshi
  • 多語言內容版本 revisioned content in multiple languages
  • 友善的介面
  • 使用易於瞭解的詞彙與控制流程
  • 頁面可以有附件,也可以嵌套內容
  • 直接支持靜態內容 (如文件檔案), 亦提供 turbogears 新聞搜集,日曆,相簿,部落格等應用程式套件

預計在三月底以 MIT license 發佈.

...... 要是這些特色都能實現的話, 因為新聞搜集,相簿,部落格等都有現成的 TurboGears 應用程式,若能用這個軟體全掛在一起, 可以完全體現 TurboGears 應用程式開發的優勢. 在 Python 網頁框架的佔有率之爭中,可能會是個扮演 FF7 角色的殺手呀.

2007.12: 可惜等了 9 個月連 Preview 都沒放出來,真是 Orz. 感覺 Django 已經吃下大部分新進的 Python Web developer 了.