python实现飞行棋游戏
本文实例为大家分享了python实现飞行棋的具体代码,供大家参考,具体内容如下
importrandom #地图初始坐标 Maps=[0]*100 #玩家A和玩家B的初始坐标 PlayerPos=[0]*2 #存储玩家姓名 playerNames=[""]*2 #俩个玩家行动的标记 Flags=[True]*2 #封装一个不换行的print defprint_end(num): print(num,end="") defgameshow(): """ 飞行棋游戏头 """ 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) defchushihuamap(): luckyturn_list=[3,15,33,36,45,71,89,95]#幸运轮盘◎ fornumber1inluckyturn_list: Maps[number1]=1 landmine_list=[7,19,39,67,77,97]#地雷● fornumber2inlandmine_list: Maps[number2]=2 pause_list=[2,5,9,31,37,56,87]#暂停▲ fornumber3inpause_list: Maps[number3]=3 timeTunnel_list=[1,10,28,60,88,]#时空隧道卐 fornumber4intimeTunnel_list: Maps[number4]=4 defdrawstringmap(a): """ 构造地图 :parama:0~99的地图坐标 :return:返回地图坐标所在的图 """ #玩家A和玩家B在同一坐标用<>表示 str="" ifPlayerPos[0]==PlayerPos[1]andPlayerPos[0]==a: str="<>" elifPlayerPos[0]==a: str="A" elifPlayerPos[1]==a: str="B" else: ifMaps[a]==0: print_end('\033[1;32;m') str="□" elifMaps[a]==1: print_end('\033[1;34;m') str="◎" elifMaps[a]==2: print_end('\033[1;31;m') str="●" elifMaps[a]==3: print_end('\033[1;35;m') str="▲" else: print_end('\033[1;33;m') str="卐" returnstr defdrawmap(): print("玩家A和玩家B在同一位置时用<>表示") print("图例:幸运轮盘:◎地雷:●暂停:▲时空隧道:卐") #第一横行 forainrange(0,30): print_end(drawstringmap(a)) print()#第一横行结束后应该换行 #第一竖行 forainrange(30,35): forbinrange(0,29): print_end("") print_end(drawstringmap(a)) print() #第二横行 a=64 whilea>=35: print_end(drawstringmap(a)) a-=1 print()#换行 #第二竖行 forainrange(65,70): print(drawstringmap(a)) #第三竖行 forainrange(70,100): print_end(drawstringmap(a)) #画完最后一行应换行 print() defplayGame(playnumber): """ 玩游戏 :paramplaynumber:玩家坐标 """ 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() ifMaps[PlayerPos[playnumber]]==0: print("玩家{0}踩到了方块,什么也没发生".format(playerNames[playnumber])) elifMaps[PlayerPos[playnumber]]==1: input_num=input("玩家{0}踩到了幸运轮盘,请选择1.轰炸对方(后退6格)2.交换位置".format(playerNames[playnumber])) whileTrue: ifinput_num=="1": print("玩家{0}被轰炸,后退6格".format(playerNames[1-playnumber])) PlayerPos[1-playnumber]-=6 changePos() input() break elifinput_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.交换位置请重新输入") elifMaps[PlayerPos[playnumber]]==2: print("玩家{0}踩中了地雷,后退6格".format(playerNames[playnumber])) PlayerPos[playnumber]-=6 changePos() input() elifMaps[PlayerPos[playnumber]]==3: print("玩家{0}暂停一回合".format(playerNames[playnumber])) Flags[playnumber]=False input() elifMaps[PlayerPos[playnumber]]==4: print("恭喜玩家{0}进入时空隧道,前进10步".format(playerNames[playnumber])) PlayerPos[playnumber]+=10 changePos() input() changePos() #TODO清屏。。。。。 drawmap() defchangePos(): ifPlayerPos[0]<0: PlayerPos[0]=0 ifPlayerPos[0]>99: PlayerPos[0]=99 ifPlayerPos[1]<0: PlayerPos[1]=0 ifPlayerPos[1]>99: PlayerPos[1]=99 defwin(): print('\033[5;33;m') print("*"*80) print("■■■") print("■■■■■■■■■■■■") print("■■■■■■■■") print("■■■■■■■■■■■■■■■■") print("■■■■■■■■■■■■■■■■■■■■") print("■■■■●■●■■") print("■■■●■●■■") print("■■■■■■■■■■■■■●■●■■") print("■■■■■■■■■●■●■■") print("■■■■■■") print("■■■■■■") print("■■■■■■■") print("■■■■■■■■■■■■■■■■■■") print("*"*80) definput_names(): print('\033[1;34;m') playerNames[0]=input("请输入玩家A的姓名") whileplayerNames[0]=="": playerNames[0]=input("玩家A的名字不能为空,请重新输入") playerNames[1]=input("请输入玩家B的姓名") whileplayerNames[1]==""orplayerNames[0]==playerNames[1]: ifplayerNames[1]=="": playerNames[1]=input("玩家B的名字不能为空,请重新输入") else: playerNames[1]=input("玩家A的名字不能和玩家B的名字一样,请重新输入") defa_and_b_plaing(): whilePlayerPos[0]<99andPlayerPos[1]<99: ifFlags[0]==True: playGame(0) else: Flags[0]=True ifPlayerPos[0]>=99: print("玩家{0}漂亮的赢了玩家{1}".format(playerNames[0],playerNames[1])) break ifFlags[1]==True: playGame(1) else: Flags[1]=True ifPlayerPos[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()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。