python之掃雷小遊戲(附程式碼)
這是之前做的一個掃雷小遊戲.程式碼如下(有一些bug請多見諒!)。
#@Time : 2020-12-08
#@Author : LBOcean
"""
物件:
棋盤:
屬性:長, 寬, 雷, 盤面
方法: 生成盤面, 設定雷的個數、長、寬, 翻牌, 判斷輸贏
"""
from random import randint
import sys
class Pan:
def __init__(self, length=10, width=10, lei_c=10):
self.__length = length
self.__width = width
self.__lei_c = lei_c
self.__lei_positions = None
self.__is_clicked = None
self.__pan = None
self.left_position = length * width - lei_c
self.generate_pan()
def __check(self):
if self.__length <= 0 or self.__width <= 0:
return False
if self.__lei_c >= self.__length * self.__width or self.__lei_c <= 0:
return False
return True
def __generate_lei(self):
self.__lei_positions = set()
while True:
x = randint(0, self.__length - 1)
y = randint(0, self.__width - 1)
self.__lei_positions.add((x, y))
if len(self.__lei_positions) == self.__lei_c:
break
self.__lei_positions = list(self.__lei_positions)
def __cal_num_of_position(self, x, y):
res = 0
for i in range(x-1, x+2):
for j in range(y-1, y+2):
if i >= 0 and i < self.__length and j >= 0 and j < self.__width:
if self.__pan[i][j] == -1:
res += 1
return res
pass
def __generate_num(self):
self.__pan = [[0 for i in range(self.__width)] for j in range(self.__length)]
for p in self.__lei_positions:
self.__pan[p[0]][p[1]] = -1 # -1代表雷
for i in range(self.__length):
for j in range(self.__width):
if self.__pan[i][j] != -1:
self.__pan[i][j] = self.__cal_num_of_position(i, j)
def generate_pan(self):
if self.__check():
# self.left_position = self.length * self.width - self.lei_c
self.__generate_lei()
self.__generate_num()
self.__is_clicked = [[False for i in range(self.__width)] for j in range(self.__length)]
else:
print("引數設定錯誤")
def print_pan(self):
print("當前的盤面:")
print(end='\t')
for i in range(self.__width):
print(i, end='\t')
print()
for i in range(self.__length):
print(i, end='\t')
for j in range(self.__width):
if self.__is_clicked[i][j]:
if self.__pan[i][j] == -1:
print('*', end='\t')
else:
print(self.__pan[i][j], end='\t')
else:
print('#', end='\t')
print()
print()
def continue_act(self):
self.print_pan()
self.click()
def print_all_pan(self):
self.__is_clicked = [[True for i in range(self.__width)] for j in range(self.__length)]
self.print_pan()
def click(self):
print("請輸入下次翻開的座標:")
x,y = input().split(' ')
x = int(x)
y = int(y)
# 判斷合法性
self.__is_clicked[x][y] = True
if self.__pan[x][y] == -1:
print("輸了")
self.print_all_pan()
print("是否再次嘗試")
else:
self.left_position -= 1
if self.left_position == 0:
print("贏了")
self.print_all_pan()
else:
self.continue_act()
self.re_run()
def re_run(self):
next =input('重新開始請輸入R,退出遊戲請輸入D:\n')
if next == 'R':
print('下一局開始請設定盤面和雷的個數:\n')
self.nextGame()
elif next == 'D':
print('遊戲結束')
sys.exit(0)
else:
print('玩我呢,滾!滾!滾!')
print('遊戲結束!拜拜了您嘞~')
sys.exit(0)
# 下一局初始化資訊
def nextGame(self):
pan = Pan(int(input()),int(input()),int(input()))
pan.start()
def start(self):
self.continue_act()
pan_1,pan_2,pan_3 = int(input('請分別輸入盤的長、寬、雷的數量,並用,分隔:\n').split(','))
pan = Pan(pan_1,pan_2,pan_3)
pan.start()
以下是執行的結果。
如有什麼問題可以留言噢!
相關文章
- 掃雷小遊戲-網頁版遊戲網頁
- 安全測試之探索 windows 遊戲掃雷Windows遊戲
- vb.net使用GDI+實現掃雷小遊戲遊戲
- 經典掃雷遊戲Web版遊戲Web
- 無聊的週末用Java寫個掃雷小遊戲Java遊戲
- 《魔窟掃雷》給掃雷遊戲指明瞭一個進化的方向遊戲
- Python程式碼實現“FlappyBird”小遊戲PythonAPP遊戲
- python手機版做小遊戲程式碼大全-python簡單小遊戲程式碼 怎麼用Python製作簡單小遊戲...Python遊戲
- win10有掃雷嗎?Win10系統掃雷遊戲在哪裡Win10遊戲
- win10沒有掃雷遊戲怎麼辦_win10自帶遊戲沒有掃雷如何解決Win10遊戲
- Python:遊戲:寫一個和 XP 上一模一樣的“掃雷”Python遊戲
- win10如何安裝掃雷遊戲_win10系統怎麼玩掃雷Win10遊戲
- 探秘掃雷遊戲的C語言實現遊戲C語言
- 微信小程式掃碼解析小程式碼微信小程式
- 關於Python小遊戲程式Python遊戲
- 利用Python實現自動掃雷小指令碼Python指令碼
- 厲害了,一個自動掃雷遊戲專案!遊戲
- 通過編寫掃雷遊戲提高你的 Bash 技巧遊戲
- canvas吃豆小遊戲程式碼Canvas遊戲
- Python魂鬥羅小遊戲原始碼Python遊戲原始碼
- 遊戲安全入門-掃雷分析&遠端執行緒注入遊戲執行緒
- C語言陣列應用例項2: 掃雷遊戲C語言陣列遊戲
- 只需一行Python程式碼即可玩20幾款小遊戲Python遊戲
- python開發俄羅斯方塊小遊戲程式碼例項Python遊戲
- Python小遊戲2048Python遊戲
- 騰訊遊戲掃碼登入原始碼遊戲原始碼
- 【微信小程式】掃碼付小程式優化實踐微信小程式優化
- 100行Python程式碼實現貪吃蛇小遊戲(超詳細)Python遊戲
- Authing新功能——小程式掃碼登入
- 用python寫小遊戲,沒有學過python的也會這個打程式碼Python遊戲
- 被世界遺忘的掃雷遊戲,只有中國人還在沉迷遊戲
- 30個Python小遊戲,上班摸魚我能玩一天【內附原始碼】Python遊戲原始碼
- 初級掃雷
- SpringBoot微信掃碼登入(小程式版)Spring Boot
- zebra(斑馬)PDA掃碼uniapp程式小demoAPP
- 雷聲大,雨點小,女性向遊戲真難搞遊戲
- Python3+pygame實現Windows經典掃雷PythonGAMWindows
- 03 . Jenkins構建之程式碼掃描Jenkins