圆月山庄资源网 Design By www.vgjia.com
本文实例为大家分享了python实现飞行棋的具体代码,供大家参考,具体内容如下
import random # 地图初始坐标 Maps = [0] *100 # 玩家A和玩家B的初始坐标 PlayerPos = [0]*2 # 存储玩家姓名 playerNames = [""] *2 # 俩个玩家行动的标记 Flags = [True]*2 # 封装一个不换行的print def print_end(num): print(num,end="") def gameshow(): """ 飞行棋游戏头 """ print('\033[1;31;m') print("*"*50) print('\033[1;32;m') print("*" * 50) print('\033[5;33;m') print("*" * 15 + "飞行棋爵士版 v1.0" + "*"*20) print('\033[1;34;m') print("*" * 50) print('\033[1;35;m') print("*" * 50) def chushihuamap(): luckyturn_list = [3,15,33,36,45,71,89,95] # 幸运轮盘 ◎ for number1 in luckyturn_list: Maps[number1] = 1 landmine_list = [7,19,39,67,77,97] # 地雷 ● for number2 in landmine_list: Maps[number2] = 2 pause_list = [2,5,9,31,37,56,87] # 暂停 ▲ for number3 in pause_list: Maps[number3] = 3 timeTunnel_list = [1,10,28,60,88,] # 时空隧道 卐 for number4 in timeTunnel_list: Maps[number4] = 4 def drawstringmap(a): """ 构造地图 :param a: 0~99 的地图坐标 :return: 返回地图坐标所在的 图 """ # 玩家A和玩家B在同一坐标用<>表示 str = "" if PlayerPos[0] == PlayerPos[1] and PlayerPos[0] == a: str = "<>" elif PlayerPos[0] == a: str = "A" elif PlayerPos[1] == a: str = "B" else: if Maps[a] == 0: print_end('\033[1;32;m') str = " □" elif Maps[a] == 1: print_end('\033[1;34;m') str = " ◎" elif Maps[a] == 2: print_end('\033[1;31;m') str = " ●" elif Maps[a] == 3: print_end('\033[1;35;m') str = " ▲" else: print_end('\033[1;33;m') str = "卐" return str def drawmap(): print("玩家A和玩家B在同一位置时用<>表示") print("图例:幸运轮盘:◎ 地雷:● 暂停:▲ 时空隧道:卐") # 第一横行 for a in range(0,30): print_end(drawstringmap(a)) print() # 第一横行结束后应该换行 # 第一竖行 for a in range(30,35): for b in range(0,29): print_end(" ") print_end(drawstringmap(a)) print() # 第二横行 a = 64 while a >=35: print_end(drawstringmap(a)) a -= 1 print() # 换行 # 第二竖行 for a in range(65,70): print(drawstringmap(a)) # 第三竖行 for a in range(70,100): print_end(drawstringmap(a)) # 画完最后一行应换行 print() def playGame(playnumber): """ 玩游戏 :param playnumber: 玩家坐标 """ rNumber = random.randint(1,6) input() print("玩家{0}按下任意键开始掷骰子".format(playerNames[playnumber])) input() print("玩家{0}掷出了{1}".format(playerNames[playnumber],rNumber)) PlayerPos[playnumber] += rNumber changePos() input() print("玩家{0}按任意键开始行动".format(playerNames[playnumber])) input() print("玩家{0}行动完了".format(playerNames[playnumber])) input() if Maps[PlayerPos[playnumber]] == 0: print("玩家{0}踩到了方块,什么也没发生".format(playerNames[playnumber])) elif Maps[PlayerPos[playnumber]] == 1: input_num = input("玩家{0}踩到了幸运轮盘,请选择 1.轰炸对方(后退6格) 2.交换位置".format(playerNames[playnumber])) while True: if input_num == "1": print("玩家{0}被轰炸,后退6格".format(playerNames[1 - playnumber])) PlayerPos[1 - playnumber] -= 6 changePos() input() break elif input_num == "2": print("玩家{0}选择交换位置".format(playerNames[playnumber])) PlayerPos[playnumber],PlayerPos[1 - playnumber] = PlayerPos[1 - playnumber],PlayerPos[playnumber] input("交换完成,按任意键继续游戏") break else: input_num = input("只能输入 1.轰炸对方(后退6格) 2.交换位置 请重新输入") elif Maps[PlayerPos[playnumber]] == 2: print("玩家{0}踩中了地雷,后退6格".format(playerNames[playnumber])) PlayerPos[playnumber] -= 6 changePos() input() elif Maps[PlayerPos[playnumber]] == 3: print("玩家{0}暂停一回合".format(playerNames[playnumber])) Flags[playnumber] = False input() elif Maps[PlayerPos[playnumber]] == 4: print("恭喜玩家{0}进入时空隧道,前进10步".format(playerNames[playnumber])) PlayerPos[playnumber] += 10 changePos() input() changePos() # TODO 清屏 。。。。。 drawmap() def changePos(): if PlayerPos[0] < 0: PlayerPos[0] = 0 if PlayerPos[0] >99: PlayerPos[0] = 99 if PlayerPos[1] < 0: PlayerPos[1] = 0 if PlayerPos[1] > 99: PlayerPos[1] = 99 def win(): print('\033[5;33;m') print("*" * 80) print(" ■ ■ ■ ") print(" ■■■■■■■■ ■ ■ ■ ■ ") print(" ■ ■ ■ ■ ■ ■ ■ ■ ") print(" ■ ■ ■■■■■■■■■■ ■ ■ ■ ■ ") print(" ■■■■■■■■ ■ ■ ■■■■■■■■ ■ ■ ") print(" ■ ■ ■ ■ ●■ ● ■ ■ ") print(" ■ ■ ■ ● ■ ● ■ ■ ") print(" ■ ■ ■■■■■■■■■■■ ● ■ ● ■ ■ ") print(" ■■■■■■■■ ■ ● ■ ● ■ ■ ") print(" ■ ■ ■ ■ ■ ■ ") print(" ■ ■ ■ ■ ■ ■ ") print(" ■ ■ ■ ■ ■ ■ ■ ") print(" ■ ■ ■■■■■■■■■■■■■■ ■ ■ ") print("*" * 80) def input_names(): print('\033[1;34;m') playerNames[0] = input("请输入玩家A的姓名") while playerNames[0] == "": playerNames[0] = input("玩家A的名字不能为空,请重新输入") playerNames[1] = input("请输入玩家B的姓名") while playerNames[1] =="" or playerNames[0] == playerNames[1]: if playerNames[1] == "": playerNames[1] = input("玩家B的名字不能为空,请重新输入") else: playerNames[1] = input("玩家A的名字不能和玩家B的名字一样,请重新输入") def a_and_b_plaing(): while PlayerPos[0] < 99 and PlayerPos[1] < 99: if Flags[0] == True: playGame(0) else: Flags[0] = True if PlayerPos[0] >= 99: print("玩家{0}漂亮的赢了玩家{1}".format(playerNames[0], playerNames[1])) break if Flags[1] == True: playGame(1) else: Flags[1] = True if PlayerPos[1] >= 99: print("玩家{0}无耻的赢了玩家{1}".format(playerNames[1], playerNames[0])) break # TODO 怎么清空控制台? # 开始游戏 gameshow() input_names() print("玩家{0}的姓名用A表示".format(playerNames[0])) print("玩家{0}的姓名用B表示".format(playerNames[1])) chushihuamap() drawmap() # 玩家A和玩家B 都没有到达终点 a_and_b_plaing() drawmap() win()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
python,飞行棋
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月03日
2024年11月03日
- 明达年度发烧碟MasterSuperiorAudiophile2021[DSF]
- 英文DJ 《致命的温柔》24K德国HD金碟DTS 2CD[WAV+分轨][1.7G]
- 张学友1997《不老的传说》宝丽金首版 [WAV+CUE][971M]
- 张韶涵2024 《不负韶华》开盘母带[低速原抓WAV+CUE][1.1G]
- lol全球总决赛lcs三号种子是谁 S14全球总决赛lcs三号种子队伍介绍
- lol全球总决赛lck三号种子是谁 S14全球总决赛lck三号种子队伍
- 群星.2005-三里屯音乐之男孩女孩的情人节【太合麦田】【WAV+CUE】
- 崔健.2005-给你一点颜色【东西音乐】【WAV+CUE】
- 南台湾小姑娘.1998-心爱,等一下【大旗】【WAV+CUE】
- 【新世纪】群星-美丽人生(CestLaVie)(6CD)[WAV+CUE]
- ProteanQuartet-Tempusomniavincit(2024)[24-WAV]
- SirEdwardElgarconductsElgar[FLAC+CUE]
- 田震《20世纪中华歌坛名人百集珍藏版》[WAV+CUE][1G]
- BEYOND《大地》24K金蝶限量编号[低速原抓WAV+CUE][986M]
- 陈奕迅《准备中 SACD》[日本限量版] [WAV+CUE][1.2G]