欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)飛行棋游戲

 更新時(shí)間:2020年02月05日 21:01:23   作者:憧憬001  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)飛行棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python實(shí)現(xiàn)飛行棋的具體代碼,供大家參考,具體內(nèi)容如下

import random
# 地圖初始坐標(biāo)
Maps = [0] *100 
 
# 玩家A和玩家B的初始坐標(biāo)
PlayerPos = [0]*2
# 存儲(chǔ)玩家姓名
playerNames = [""] *2
 
# 倆個(gè)玩家行動(dòng)的標(biāo)記
Flags = [True]*2
 
# 封裝一個(gè)不換行的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] # 幸運(yùn)輪盤 ◎
 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,] # 時(shí)空隧道 卐
 for number4 in timeTunnel_list:
  Maps[number4] = 4
def drawstringmap(a):
 """
  構(gòu)造地圖
 :param a: 0~99 的地圖坐標(biāo)
 :return: 返回地圖坐標(biāo)所在的 圖
 """
 # 玩家A和玩家B在同一坐標(biāo)用<>表示
 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在同一位置時(shí)用<>表示")
 print("圖例:幸運(yùn)輪盤:◎ 地雷:● 暫停:▲ 時(shí)空隧道:卐")
 # 第一橫行
 for a in range(0,30):
  print_end(drawstringmap(a))
 print() # 第一橫行結(jié)束后應(yīng)該換行
 # 第一豎行
 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))
 # 畫完最后一行應(yīng)換行
 print()
def playGame(playnumber):
 """
  玩游戲
 :param playnumber: 玩家坐標(biāo)
 """
 rNumber = random.randint(1,6)
 input()
 print("玩家{0}按下任意鍵開始擲骰子".format(playerNames[playnumber]))
 input()
 print("玩家{0}擲出了{(lán)1}".format(playerNames[playnumber],rNumber))
 PlayerPos[playnumber] += rNumber
 changePos()
 input()
 print("玩家{0}按任意鍵開始行動(dòng)".format(playerNames[playnumber]))
 input()
 print("玩家{0}行動(dòng)完了".format(playerNames[playnumber]))
 input()
 if Maps[PlayerPos[playnumber]] == 0:
  print("玩家{0}踩到了方塊,什么也沒發(fā)生".format(playerNames[playnumber]))
 elif Maps[PlayerPos[playnumber]] == 1:
  input_num = input("玩家{0}踩到了幸運(yùn)輪盤,請(qǐng)選擇 1.轟炸對(duì)方(后退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("交換完成,按任意鍵繼續(xù)游戲")
    break
   else:
    input_num = input("只能輸入 1.轟炸對(duì)方(后退6格) 2.交換位置 請(qǐng)重新輸入")
 
 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}進(jìn)入時(shí)空隧道,前進(jìn)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("請(qǐng)輸入玩家A的姓名")
 while playerNames[0] == "":
  playerNames[0] = input("玩家A的名字不能為空,請(qǐng)重新輸入")
 playerNames[1] = input("請(qǐng)輸入玩家B的姓名")
 while playerNames[1] =="" or playerNames[0] == playerNames[1]:
  if playerNames[1] == "":
   playerNames[1] = input("玩家B的名字不能為空,請(qǐng)重新輸入")
  else:
   playerNames[1] = input("玩家A的名字不能和玩家B的名字一樣,請(qǐng)重新輸入")
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}無(wú)恥的贏了玩家{1}".format(playerNames[1], playerNames[0]))
   break
 
# TODO 怎么清空控制臺(tái)?
 
# 開始游戲
gameshow()
input_names()
print("玩家{0}的姓名用A表示".format(playerNames[0]))
print("玩家{0}的姓名用B表示".format(playerNames[1]))
chushihuamap()
drawmap()
# 玩家A和玩家B 都沒有到達(dá)終點(diǎn)
a_and_b_plaing()
drawmap()
win()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用Python編寫簡(jiǎn)易的錄制屏幕小工具

    利用Python編寫簡(jiǎn)易的錄制屏幕小工具

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言編寫一個(gè)簡(jiǎn)易的錄制屏幕小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-08-08
  • 利用Python實(shí)現(xiàn)自定義連點(diǎn)器

    利用Python實(shí)現(xiàn)自定義連點(diǎn)器

    這篇文章主要介紹了如何利用Python實(shí)現(xiàn)自定義連點(diǎn)器,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Python中參數(shù)打包和解包的實(shí)現(xiàn)

    Python中參數(shù)打包和解包的實(shí)現(xiàn)

    在Python中,打包和解包參數(shù)是一種操作方式,可以將多個(gè)參數(shù)打包成一個(gè)元組或字典,也可以將一個(gè)元組或字典解包成多個(gè)參數(shù),本文就來(lái)介紹一下如何使用
    2023-09-09
  • Laravel+Dingo/Api 自定義響應(yīng)的實(shí)現(xiàn)

    Laravel+Dingo/Api 自定義響應(yīng)的實(shí)現(xiàn)

    這篇文章主要介紹了Laravel+Dingo/Api 自定義響應(yīng)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 解決python3安裝pandas出錯(cuò)的問題

    解決python3安裝pandas出錯(cuò)的問題

    這篇文章主要介紹了解決python3安裝pandas出錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作示例

    Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作示例

    這篇文章主要介紹了Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作,涉及Python列表list遍歷、查詢及時(shí)間消耗計(jì)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • Python基礎(chǔ)教程之while循環(huán)用法講解

    Python基礎(chǔ)教程之while循環(huán)用法講解

    Python中除了for循環(huán)之外還有一個(gè)while循環(huán),下面這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)教程之while循環(huán)用法講解的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 詳解python函數(shù)傳參傳遞dict/list/set等類型的問題

    詳解python函數(shù)傳參傳遞dict/list/set等類型的問題

    這篇文章主要介紹了詳解python函數(shù)傳參傳遞dict/list/set等類型的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換

    python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換

    用python處理地理位置是非常常見的需求,下面這篇文章主要給大家介紹了關(guān)于python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • PyTorch使用GPU訓(xùn)練的兩種方法實(shí)例

    PyTorch使用GPU訓(xùn)練的兩種方法實(shí)例

    pytorch是一個(gè)非常優(yōu)秀的深度學(xué)習(xí)的框架,具有速度快,代碼簡(jiǎn)潔,可讀性強(qiáng)的優(yōu)點(diǎn),下面這篇文章主要給大家介紹了關(guān)于PyTorch使用GPU訓(xùn)練的兩種方法,需要的朋友可以參考下
    2022-05-05

最新評(píng)論