使用 Python 玩手板球遊戲

使用 Python 玩手板球遊戲

板球運動估計擁有 25 億球迷,是世界上規模最大、最受歡迎的運動之一。僅在印度,板球運動的價值就高達 53 億美元。Sachin Tendulkar、Donald Bradman、Brian Lara 和 MS Dhoni 只是幾個傳奇人物,他們的名字活在數百萬人的心中。

板球已經進入虛擬現實、視頻遊戲和其他形式(如書本和手板球)也就不足為奇了。通過使用 Python 構建一個手板球遊戲,讓這個遊戲更進一步。

什麼是手板球?

手板球是一種比賽,其中兩個球員用他們的手指互相比賽。在每一輪中,兩位玩家同時用手指顯示一個數字。如果得分相符,則擊球手出局,否則他們將獲得得分。最後,得分最多的玩家贏得遊戲。

您也可以構建此遊戲並在計算機上玩它。您無需伸出手指來表示樂譜,而是將其輸入程序。Python 是使用起來最簡單、最方便的語言之一。如果您之前沒有使用 Python 的經驗,則可以快速學習這些面向初學者的免費在線 Python 課程。

一旦你學習了基礎知識,構建迷你項目和遊戲來鞏固你的學習是個好主意。您可以從構建數字時鐘、擲骰子、測驗或字計數器開始。您還可以從這些面向初學者的 Python 項目創意中獲得靈感。

如何使用 Python 構建手板球遊戲

導入隨機庫,用於初始折騰和計算機的選擇。定義一個名為input_num的函數,它接受兩個參數,分別是minmax,以驗證用戶的輸入。使用input()函數,將用戶輸入的數字存儲到變量num中,並使用int()將其從默認的 String 類型轉換為 Integer 類型。

如果用戶輸入的數字大於最大限製或小於最小限制,則通過遞歸調用該函數要求用戶輸入有效選擇。如果數字在範圍內,則返回它。

import random

def input_num(min, max):
    num = int(input())


    if num > max or num < min:
        print("Enter valid choice")
        return input_num(min, max)
    else:
        return num

定義一個函數innings,它接受當前擊球手和要追逐的跑位作為輸入參數。要求用戶輸入一到六範圍內的數字。根據手板球規則,如果用戶和電腦選擇的號碼相同,則當前擊球手出局。

初始化變量total以存儲擊球手得分的總得分並將其設置為零。開始無限循環並調用input_num ()函數來存儲和驗證用戶的輸入。使用 random 模塊的randint()函數為計算機選擇 1 到 6 之間的隨機數。

顯示雙方的選擇,然後檢查他們是否相等。如果是,則顯示擊球手出局並返回他們在該局中的總得分。

否則,檢查誰在擊球並將適當的值添加到總分,pnumcnum。顯示擊球手的當前得分。

在第二局的情況下,你想檢查擊球手是否已經擊敗了對手的比分。為此,請檢查to_chase值是否不為空以及擊球手的得分是否更高。如果是這樣,返回他們的獲勝分數。

def innings(batsman, to_chase):
    print("Enter numbers between 1 and 6. If you both choose the same number then " + batsman + "is out")
    total = 0

    while True:
        pnum = input_num(1, 6)
        cnum = random.randint(1, 6)

        print("User chose", pnum)
        print("Computer chose", cnum)

        if pnum == cnum:
            print(batsman + "is out")
            return total
        else:
            total = total + (pnum if batsman == "User" else cnum)
            print(batsman + "score is", total)
            if to_chase is not None and total > to_chase:
                return total

使用input_num()函數顯示投擲消息並驗證用戶的選擇。拋硬幣並將結果存儲在變量coin中。將player_bowls的默認值初始化為 false。如果擲硬幣與用戶的選擇相符,則用戶贏得了擲硬幣並在擊球和保齡球之間進行選擇。

接受用戶的選擇並檢查他是否輸入了一個。如果是,則將表達式計算為真並存儲在player_bowls變量中。顯示用戶的選擇。另一方面,如果計算機贏得了擲骰,則執行randint()並評估player_bowls的適當值。

顯示計算機的選擇並開始局。

print("Time for toss, Enter 0 for Heads and 1 for Tails")
choice = input_num(0, 1)
coin = random.randint(0, 1)
player_bowls = False

if coin == choice:
    print("You have won the toss")
    print("Select 0 to bat, 1 to bowl ")
    player_bowls = input_num(0, 1) == 1

    if player_bowls:
        print("You chose to bowl")
    else:
        print("You chose to bat")
else:
    print("Computer won the toss")
    player_bowls = random.randint(0, 1) == 1

    if player_bowls:
        print("Computer chose to bat")
    else:
        print("Computer chose to bowl")

如果player_bowls為真,則計算機先擊球,反之亦然。使用您之前定義的函數計算一局比賽中的得分。該功能需要當前擊球手的姓名和要追逐的跑位。當第一個擊球手設置得分時,將其設為可選參數並傳遞None。對於第二局,通過設置目標的擊球手的得分。

if player_bowls:
    comp_score = innings("Computer", None)
    user_score = innings("User", comp_score)
else:
    user_score = innings("User", None)
    comp_score = innings("Computer", user_score)

如果計算機得分低於用戶,則用戶獲勝,反之亦然。如果得分相同,則顯示平局。

if comp_score < user_score:
    print("User wins")
elif user_score < comp_score:
    print("Computer wins")
else:
    print("Match draw")

將所有代碼放在一起,隨時準備玩手板球,觸手可及。

使用 Python 的手板球輸出

您可以使用 Python 查看手板球遊戲的輸出,如下所示:

使用 Python 的手板球輸出

當您執行該程序時,該程序會要求您為拋擲選擇一個選項並分配適當的結果。如果你贏了,你可以決定是要擊球還是投球,否則計算機會做出決定。每一局繼續進行,直到號碼匹配並且一局出局。最後,計算機比較最終得分並宣布獲勝者。

Python 中基於終端的遊戲

構建遊戲是學習 Python 的絕佳方式,而且非常有趣。您無需成為專家即可開始使用 Python 進行編碼和試驗。只要具備正確的基礎知識,您就可以構建一些令人驚嘆的終端遊戲。

從拼砌 Magic 8 Ball、Hangman、Rock Paper Scissors、Mad Libs Generator 和 Number Guessing Game 開始。隨著您的進一步發展,探索 PyGame 庫也可以構建您自己的圖形視頻遊戲。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *