亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

用python寫掃雷游戲?qū)嵗a分享

 更新時間:2018年05月27日 14:34:45   投稿:laozhang  
我們給大家分享了一篇關(guān)于用python寫一個掃雷經(jīng)典游戲的實例代碼,大家可以測試運行下。

掃雷是一個非常經(jīng)典的WIN游戲,我們教給大家用python語言來寫出這個游戲,以下是全部實例代碼:

#!/usr/bin/python
#coding:utf-8

#python 寫的掃雷游戲


import sys
import random

class MineSweeping():
  #掃雷主程序
  def __init__(self,row = 8 ,line= 8,mineNum = 15):
    self.row = row
    self.line = line
    self.score = 0 #分數(shù)
    self.mineNum = mineNum
    self.xy_list = [[0 for i in range(self.line)] for i in range(self.row)]

  def initData(self):
    # 初始化狀態(tài)值
    # 游戲開始的時候狀態(tài)值為清零(再重新設(shè)置狀態(tài)值)
    self.xy_list = [[0 for i in range(self.line)] for i in range(self.row)]
    # 設(shè)置雷的數(shù)量
    maxMine = self.mineNum
    while maxMine > 0 :
      num_x = random.randint(0,self.row-1)
      num_y = random.randint(0,self.line-1)
      if self.xy_list[num_x][num_y] == 0:
        self.xy_list[num_x][num_y] = 1
        maxMine -= 1

  #獲取x坐標
  def get_pos(self,str_pos):
    #獲取x坐標
    while 1:
      try:
        num_x = raw_input(str_pos)
        if int(num_x) in range(self.line) and num_x :
          break
        else:
          print u'輸入無效值'
      except:
        pass
    return int(num_x)

  #進行掃雷
  def mine_clear(self,x,y):
    # 設(shè)置顯示進行掃過的數(shù)目
    # 設(shè)置數(shù)字
    # 0 表示掃過的雷
    # 1 表示類
    # 2 表示掃過的類

    #獲取坐標的數(shù)字
    pos = self.xy_list[x][y]
    if pos == 0 :
      self.xy_list[x][y] = 2
      return 0
    elif pos == 2 :
      return 2
    else:
      return 1

  #界面的顯示
  def mineFace(self,state):
    #顯示界面的內(nèi)容
    #設(shè)置游戲的狀態(tài)
    #1 表示運行的狀態(tài)
    #2 表示輸出的狀態(tài)
    #3 表示游戲結(jié)束的狀態(tài)
    #4 表示游戲獲得了完勝
    if state == 1:
      print '+=================+'
      print '   Game start  '
      print '+=================+'
      tt = ' #'
      print '**************************'
      for i in range(self.line):
        str_t = ''
        for t in xrange(self.row):
          str_t += tt
        print "|%s|"%(str_t,)
      print '**************************'
      print 'Please input values of x,y(0-7):'
    #刷新用戶界面
    if state == 2:
      tt = ' #'
      print '**************************'
      for i in range(self.line):
        str_t = ''
        for t in xrange(self.row):
          if self.xy_list[i][t] == 2:
            str_t += str(self.xy_list[i][t]).rjust(2)
          else:
            str_t += tt
        print "|%s|"%(str_t,)
      print '**************************'
    if state == 3:
      print '**************************'
      for i in range(self.line):
        str_t = ''
        for t in xrange(self.row):
          if int(self.xy_list[i][t]) != 1:
            str_t += ' 2'
          else:
            str_t += ' *'
        print "|%s|"%(str_t,)
      print '**************************'

    if state == 4:
      tt = ' #'
      print '**************************'
      for i in range(self.line):
        str_t = ''
        for t in xrange(self.row):
          if self.xy_list[i][t] == 2:
            str_t += str(self.xy_list[i][t]).rjust(2)
          else:
            str_t += ' @'
        print "|%s|"%(str_t,)
      print '**************************'


  def MainLoop(self):
    #創(chuàng)建游戲主循環(huán)

    #創(chuàng)建界面的運行
    self.mineFace(1)
    self.score = 0
    self.initData()
    #print self.xy_list


    # 進入主循環(huán)
    while 1:
      #獲取坐標的位置
      x = self.get_pos(' X = ')
      y = self.get_pos(' Y = ')
      num = self.mine_clear(x,y)
      #判斷是不過的了完勝
      win = True
      for i in self.xy_list:
        if 0 in i:
          win = False
          break
      if win:
        num = 4

      #執(zhí)行刷新界面的函數(shù)
      if num == 0:
        self.mineFace(2)
        self.score += 10
      elif num == 2:
        print u'這個位置已經(jīng)被排過了,證實沒有雷'
      elif num == 1:
        print '+=================+'
        print '   Game over  '
        print '+=================+'
        print u'分數(shù) : ', self.score
        self.mineFace(3)
        # 是不是進行下一句
        next = raw_input(u'是夠進行下一局:Y or N ')
        if next.upper().startswith('Y'):
          print u'下一局開始'
          self.nextGame()
        else:
          print '>>> Game exit'
          break
      else:
        self.score += 10
        print u'恭喜您獲得的完全的勝利'
        print u'分數(shù) : ', self.score
        self.mineFace(4)
        next = raw_input(u'是夠進行下一局:Y or N ')
        if next.upper().startswith('Y'):
          print u'下一局開始'
          self.nextGame()
        else:
          print '>>> Game exit'
          break

  # 下一局初始化信息
  def nextGame(self):
    self.mineFace(1)
    self.score = 0
    self.initData()


if __name__ == '__main__':
  mi = MineSweeping(10,10,20)
  mi.MainLoop()
  sys.exit()


如果大家在測試的時候還有任何疑問,可以在下方的留言區(qū)討論,感謝大家對腳本之家的支持。

相關(guān)文章

  • Python中性能分析利器pyinstrument詳細講解

    Python中性能分析利器pyinstrument詳細講解

    大家好,本篇文章主要講的是Python中性能分析利器pyinstrument詳細講解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • 用python實現(xiàn)詞云效果實例介紹

    用python實現(xiàn)詞云效果實例介紹

    大家好,本篇文章主要講的是用python實現(xiàn)詞云效果實例介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • python基礎(chǔ)之循環(huán)語句

    python基礎(chǔ)之循環(huán)語句

    這篇文章主要介紹了python的循環(huán)語句,實例分析了Python中返回一個返回值與多個返回值的方法,需要的朋友可以參考下
    2021-10-10
  • Python實現(xiàn)消消樂小游戲

    Python實現(xiàn)消消樂小游戲

    本文主要介紹了Python實現(xiàn)消消樂小游戲,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • python 以16進制打印輸出的方法

    python 以16進制打印輸出的方法

    今天小編就為大家分享一篇python 以16進制打印輸出的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python求兩個圓的交點坐標或三個圓的交點坐標方法

    Python求兩個圓的交點坐標或三個圓的交點坐標方法

    今天小編就為大家分享一篇Python求兩個圓的交點坐標或三個圓的交點坐標方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python Pyqt5多線程更新UI代碼實例(防止界面卡死)

    Python Pyqt5多線程更新UI代碼實例(防止界面卡死)

    這篇文章通過代碼實例給大家介紹了Python Pyqt5多線程更新UI防止界面卡死的問題,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-12-12
  • 如何用python實現(xiàn)復制粘貼功能

    如何用python實現(xiàn)復制粘貼功能

    這篇文章主要介紹了如何用python實現(xiàn)復制粘貼功能,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • python如何實現(xiàn)遞歸轉(zhuǎn)非遞歸

    python如何實現(xiàn)遞歸轉(zhuǎn)非遞歸

    這篇文章主要介紹了python如何實現(xiàn)遞歸轉(zhuǎn)非遞歸,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-02-02
  • python如何進行矩陣運算

    python如何進行矩陣運算

    在本篇文章里小編給大家分享的是關(guān)于python進行矩陣運算的方法及實例代碼,需要的朋友們可以學習下。
    2020-06-06

最新評論