使用 Python 玩手板球遊戲
板球運動估計擁有 25 億球迷,是世界上規模最大、最受歡迎的運動之一。僅在印度,板球運動的價值就高達 53 億美元。Sachin Tendulkar、Donald Bradman、Brian Lara 和 MS Dhoni 只是幾個傳奇人物,他們的名字活在數百萬人的心中。
板球已經進入虛擬現實、視頻遊戲和其他形式(如書本和手板球)也就不足為奇了。通過使用 Python 構建一個手板球遊戲,讓這個遊戲更進一步。
什麼是手板球?
手板球是一種比賽,其中兩個球員用他們的手指互相比賽。在每一輪中,兩位玩家同時用手指顯示一個數字。如果得分相符,則擊球手出局,否則他們將獲得得分。最後,得分最多的玩家贏得遊戲。
您也可以構建此遊戲並在計算機上玩它。您無需伸出手指來表示樂譜,而是將其輸入程序。Python 是使用起來最簡單、最方便的語言之一。如果您之前沒有使用 Python 的經驗,則可以快速學習這些面向初學者的免費在線 Python 課程。
一旦你學習了基礎知識,構建迷你項目和遊戲來鞏固你的學習是個好主意。您可以從構建數字時鐘、擲骰子、測驗或字計數器開始。您還可以從這些面向初學者的 Python 項目創意中獲得靈感。
如何使用 Python 構建手板球遊戲
導入隨機庫,用於初始折騰和計算機的選擇。定義一個名為input_num的函數,它接受兩個參數,分別是min和max,以驗證用戶的輸入。使用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 之間的隨機數。
顯示雙方的選擇,然後檢查他們是否相等。如果是,則顯示擊球手出局並返回他們在該局中的總得分。
否則,檢查誰在擊球並將適當的值添加到總分,pnum或cnum。顯示擊球手的當前得分。
在第二局的情況下,你想檢查擊球手是否已經擊敗了對手的比分。為此,請檢查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 進行編碼和試驗。只要具備正確的基礎知識,您就可以構建一些令人驚嘆的終端遊戲。
從拼砌 Magic 8 Ball、Hangman、Rock Paper Scissors、Mad Libs Generator 和 Number Guessing Game 開始。隨著您的進一步發展,探索 PyGame 庫也可以構建您自己的圖形視頻遊戲。
發佈留言