這篇文章主要介紹python怎樣實現簡單飛行棋,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
chess_main.py
import chess_tools
# 輸入玩家信息
chess_tools.input_player()
while chess_tools.end_flag:
for player in chess_tools.player_list:
chess_tools.ironman(player)
input(player["name"]+",請按enter擲骰子")
chess_tools.throw(player)
if chess_tools.judge(player) == 1:
break
chess_tools.hit(player)
chess_tools.speedup(player)
print("")chess_tools.py
from random import randint
player_list = []
end_flag = 1
def input_player():
num = input("數據玩家數量:")
i = 0
while i < int(num):
player_name = input("輸入第" + str(i + 1) + "位玩家名字:")
play_info = {"name": player_name,
"score": 0}
player_list.append(play_info)
i = i + 1
def throw(player):
"""
玩家扔骰子,隨機1-6點
:param player: 當前玩家
:return:
"""
points = randint(1,6)
# 首先判定是否起飛
if player["score"] == 0 and points == 6:
player["score"] = 1
print("%d 點,恭喜起飛!當前在第%d格" % (points, player["score"]))
elif player["score"] == 0 and points < 6:
print("%d 點,起飛失??!" % points)
return
# 分數大于100,要后退,多幾分退幾步
elif player["score"] + points > 100:
player["score"] = player["score"] - (player["score"]+ points) % 100 + 1
print("%d 點,飛過頭了!回到%d格" % (points,player["score"]))
else:
player["score"] += points
print("%d 點!當前在第%d格" % (points, player["score"]))
def judge(player):
global end_flag
if player["score"] == 100:
end_flag = 0
print(player["name"]+"贏了")
return 1
def hit(player):
"""
判斷當前玩家是否會將領先的玩家撞回起飛位置
:param player: 當前玩家名字
"""
for other_player in player_list:
if player["score"] == other_player["score"] \
and other_player["name"] != player["name"]:
other_player["score"] = 0
def speedup(player):
if player["score"] == 15 or \
player["score"] == 35 or \
player["score"] == 85:
player["score"] += 5
print("加速5格,當前在%d格" % player["score"])
def ironman(player):
"""
主角光環,名字中含有指定字符的人可以獲得50分加成
:param player:當前玩家的名字
"""
master = player["name"].count("t")
if master > 0 and player["score"] == 0:
player["score"] = 50
print("- I am Iron Man!賈維斯,先給我加50分。")
print("- 好的,%s 。當前已走到第50格。" % player["name"])
print("")以上是“python怎樣實現簡單飛行棋”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。