愛伊米

7個學妹看見都驚呆的Python小專案!【附原始碼】

版權宣告:本文為博主原創文章,遵循 CC 4。0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。本文連結:

介面應用

1、計算器

1。 案例介紹

本例利用 Python 開發一個可以進行簡單的四則運算的圖形化計算器,會用到 Tkinter 圖形元件進行開發。主要知識點:Python Tkinter 介面程式設計;計算器邏輯運算實現。本例難度為初級,適合具有 Python 基礎和 Tkinter 元件程式設計知識的使用者學習。

2。 設計原理

要製作一個計算器,首先需要知道它由哪些部分組成。示意如下圖所示。

7個學妹看見都驚呆的Python小專案!【附原始碼】

從結構上來說,一個簡單的圖形介面,需要由介面元件、元件的事件監聽器(響應各類事件的邏輯)和具體的事件處理邏輯組成。介面實現的主要工作是建立各個介面元件物件,對其進行初始化,以及控制各元件之間的層次關係和佈局。

3。 示例效果

7個學妹看見都驚呆的Python小專案!【附原始碼】

4。 示例原始碼

2、記事本

1。 案例介紹

tkinter 是 Python下面向 tk 的圖形介面介面庫,可以方便地進行圖形介面設計和互動操作程式設計。tkinter 的優點是簡單易用、與 Python 的結合度好。tkinter 在 Python 3。x 下預設整合,不需要額外的安裝操作;不足之處為缺少合適的視覺化介面設計工具,需要透過程式碼來完成視窗設計和元素佈局。

本例採用的 Python 版本為 3。8,如果想在 python 2。x下使用 tkinter,請先進行安裝。需要注意的是,不同 Python 版本下的 tkinter 使用方式可能略有不同,建議採用 Python3。x 版本。

本例難度為中級,適合具有 Python 基礎和 Tkinter 元件程式設計知識的使用者學習。

2。 示例效果

7個學妹看見都驚呆的Python小專案!【附原始碼】

3。 示例原始碼

3、登入和註冊

1。 案例介紹

本例設計一個使用者登入和註冊模組,使用 Tkinter 框架構建介面,主要用到畫布、文字框、按鈕等元件。涉及知識點:Python Tkinter 介面程式設計、pickle 資料儲存。本例實現了基本的使用者登入和註冊互動介面,並提供使用者資訊儲存和驗證。

pickle 是 python 語言的一個標準模組,安裝 python 後已包含 pickle 庫,不需要單獨再安裝。pickle 模組實現了基本的資料序列化和反序列化。透過 pickle 模組的序列化操作能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存;透過 pickle 模組的反序列化操作,能夠從檔案中建立上一次程式儲存的物件。

本例難度為中級,適合具有 Python 基礎和 Tkinter 元件程式設計知識的使用者學習。

2。 示例效果

7個學妹看見都驚呆的Python小專案!【附原始碼】

7個學妹看見都驚呆的Python小專案!【附原始碼】

3。 示例原始碼

遊戲開發

1、2048

1。 遊戲簡介

2048 是一款比較流行的數字遊戲。遊戲規則:每次可按上、下、左、右方向鍵滑動數字,每滑動一次,所有數字都會往滑動方向靠攏,同時在空白位置隨機出現一個數字,相同數字在靠攏時會相加。不斷疊加最終拼出 2048 這個數字算成功。

2048 最早於 2014年3月20日發行。原版 2048 首先在 GitHub 上釋出,原作者是 Gabriele Cirulli,後被移植到各個平臺。

本例難度為初級,適合具有 Python 基礎和 Pygame 程式設計知識的使用者學習。

2。 設計原理

這個遊戲的本質是二維列表,就以 4*4 的二位列表來分析關鍵的邏輯以及實現。二維列表如下圖:

7個學妹看見都驚呆的Python小專案!【附原始碼】

所有的操作都是對這個二維列表的資料的操作。分為上下左右四個方向。先說向左的方向(如圖)。

7個學妹看見都驚呆的Python小專案!【附原始碼】

向左操作的結果如下圖;當向左的方向是,所有的資料沿著水平方向向左跑。

7個學妹看見都驚呆的Python小專案!【附原始碼】

水平說明操作的是二維列表的一行,而垂直操作的則是二位列表的一列。這樣就可以將二維列表的操作變成遍歷後對一維列表的操作。向左說明資料的優先考慮的位置是從左開始的。這樣就確定了一維列表的遍歷開始的位置。

上面第 2 個圖共四行,每一個行都能得到一個列表。

這樣一來向左的方向就變成。從上到下獲得每一行的列表,方向向左。引數(row,left)。

7個學妹看見都驚呆的Python小專案!【附原始碼】

其他的三個方向在開始的時候記住是怎樣獲得以為列表的,等操作完才放回去這樣就能實現了。

3。 示例效果

7個學妹看見都驚呆的Python小專案!【附原始碼】

4。 示例原始碼

2、貪吃蛇

1。 案例介紹

貪吃蛇是一款經典的益智遊戲,簡單又耐玩。該遊戲透過控制蛇頭方向吃蛋,從而使得蛇變得越來越長。

透過上下左右方向鍵控制蛇的方向,尋找吃的東西,每吃一口就能得到一定的積分,而且蛇的身子會越吃越長,身子越長玩的難度就越大,不能碰牆,不能咬到自己的身體,更不能咬自己的尾巴,等到了一定的分數,就能過關,然後繼續玩下一關。

本例難度為中級,適合具有 Python 基礎和 Pygame 程式設計知識的使用者學習。

2。 設計要點

遊戲是基於 PyGame 框架製作的,程式核心邏輯如下:

初始化時蛇的長度是 3,食物是 1 個點,蛇初始的移動的方向是右,用一個數組代表蛇,陣列的每個元素是蛇每個點的座標,因此陣列的第一個座標是蛇尾,最後一個座標是蛇頭;遊戲開始後,根據蛇的當前移動方向,將蛇運動方向的前方的那個點 append 到蛇陣列的末位,再把蛇尾去掉,蛇的座標陣列就相當於往前挪了一位;如果蛇吃到了食物,即蛇頭的座標等於食物的座標,那麼在第 2 點中蛇尾就不用去掉,就產生了蛇長度增加的效果;食物被吃掉後,隨機在空的位置(不能與蛇的身體重合) 再生成一個;透過 PyGame 的 event 監控按鍵,改變蛇的方向,例如當蛇向右時,下一次改變方向只能向上或者向下;當蛇撞上自身或牆壁,遊戲結束,蛇頭裝上自身,那麼蛇座標數組裡就有和舌頭座標重複的資料,撞上牆壁則是蛇頭座標超過了邊界,都很好判斷;其他細節:做了個開始的歡迎介面;食物的顏色隨機生成;吃到實物的時候有聲音提示等。

3。 示例效果

7個學妹看見都驚呆的Python小專案!【附原始碼】

4。 示例原始碼

3、俄羅斯方塊

1。 案例介紹

俄羅斯方塊是由 4 個小方塊組成不同形狀的板塊,隨機從螢幕上方落下,按方向鍵調整板塊的位置和方向,在底部拼出完整的一行或幾行。這些完整的橫條會消失,給新落下來的板塊騰出空間,並獲得分數獎勵。沒有被消除掉的方塊不斷堆積,一旦堆到頂端,便告輸,遊戲結束。

本例難度為高階,適合具有 Python 進階和 Pygame 程式設計技巧的使用者學習。

2。 設計要點

邊框――由 15*25 個空格組成,方塊就落在這裡面。

盒子――組成方塊的其中小方塊,是組成方塊的基本單元。

方塊――從邊框頂掉下的東西,遊戲者可以翻轉和改變位置。每個方塊由 4 個盒子組成。

形狀――不同型別的方塊。這裡形狀的名字被叫做 T, S, Z ,J, L, I , O。如下圖所示:

7個學妹看見都驚呆的Python小專案!【附原始碼】

7個學妹看見都驚呆的Python小專案!【附原始碼】

模版――用一個列表存放形狀被翻轉後的所有可能樣式。全部存放在變數裡,變數名字如 S or J。

著陸――當一個方塊到達邊框的底部或接觸到在其他的盒子話,就說這個方塊著陸了。那樣的話,另一個方塊就會開始下落。

3。 示例效果

7個學妹看見都驚呆的Python小專案!【附原始碼】

4。 示例原始碼

4、連連看

1。 案例介紹

連連看是一款曾經非常流行的小遊戲。遊戲規則:

點選選中兩個相同的方塊。

兩個選中的方塊之間連線線的折點不超過兩個(接線由X軸和Y軸的平行線組成)。

每找出一對,它們就會自動消失。

連線不能從尚未消失的圖案上經過。

把所有的圖案全部消除即可獲得勝利。

2。 設計思路

生成成對的圖片元素。

將圖片元素打亂排布。

定義什麼才算 (兩張圖片的連線不多於3跟直線,或者說轉角不超過2個)。

實現  判斷演算法。

消除圖片元素並判斷是否消除完畢。

3。 示例效果

7個學妹看見都驚呆的Python小專案!【附原始碼】

4。 示例原始碼