本文实例为大家分享了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,飞行棋
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“python实现飞行棋游戏”评论...
更新日志
2024年11月08日
2024年11月08日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]