本節書摘來自異步社群《易學python》一書中的第6章,第6.2節,作者[澳]anthony briggs,王威,袁國忠 譯,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
很多人都喜歡面向對象程式設計,其中的原因之一是,對象通常對應于現實世界的東西,這讓您在開發程式期間很容易想見它們将如何互動。編寫管理财務的程式時,您可能建立account、expense、income和transaction類;編寫工廠中的房間控制程式時,您可能建立component、conveyorbelt、assembly(即組裝在一起的多個部件)和assemblyline。
咱們回過頭去更深入地思考一下冒險遊戲。這種遊戲都包含什麼呢?傳統上,玩家是無畏的冒險家,為财寶、名聲和榮譽深入地牢或充斥怪物的洞穴。圖6.2以草圖方式描繪了本章要編寫的遊戲,您可以使用它向朋友說明這個遊戲。

其中的基本元素是洞穴,而不是整個洞穴系統。您可能受第2章介紹的清單和函數的誤導,錯誤地認為洞穴系統是重要的組成部分,但從正确層面(洞穴及其内部的東西)着眼,可讓設計更整潔得多。程式清單6.2示範了如何編寫洞穴類,您應将其放在檔案caves.py中,否則本章後面的有些代碼将不能正确運作。
程式清單6.2 面向對象程度更高的設計
這裡的重點是,程式清單6.1的多少代碼被替換掉了。caves類有6個彼此調用的方法,這裡用一個類和一個外部函數取而代之。第2章說過,如果代碼更短,更簡單,通常說明選擇的道路正确;也就是說,這個面向對象設計非常适合本章的冒險遊戲。下面着手解決程式的下一部分:處理玩家輸入。