求一个用python2.6编的扫雷!!!

求一个用python2.6编的扫雷!!!,第1张

Python调出窗口的那种不会做,但是可以做一个在IDLE里面直接输出的简易扫雷程序,如下:

mine = []

show = []

for i in xrange(10):

mine.append([0] * 10)

show.append(['#'] * 10)

import random,string

for i in xrange(10):

while True:

x = random.randint(0, 9)

y = random.randint(0, 9)

if mine[x][y] == 0:

print x, y

mine[x][y] = 1

break

if True:

for i in xrange(10):

for j in xrange(10):

print mine[i][j],

print

def getX(self):

print('X='),

xRet = raw_input()

while xRet=='' or (False == isNumber(xRet)) or 0>int(xRet):

print 'Input Error,Input again(0-9):'

print('X='),

xRet = raw_input()

return int(xRet)

def getY(self):

print('Y='),

yRet = raw_input()

while yRet=='' or (False == isNumber(yRet)) or 0>int(yRet):

print 'Input Error,Input again(0-9):'

print('Y='),

yRet = raw_input()

return int(yRet)

def isNumber(strVal):

nums = string.digits

for i in strVal:

if i not in nums:

return False

return True

def open_blk(x, y):

n = 0

for i in xrange(x - 1, x + 2):

for j in xrange(y - 1, y + 2):

if i <0 or i >9 or j <0 or j >9:

continue

if mine[i][j] == 1:

n += 1

show[x][y] = str(n)

if n != 0:

return

for i in xrange(x - 1, x + 2):

for j in xrange(y - 1, y + 2):

if i <0 or i >9 or j <0 or j >9:

continue

if show[i][j] == '#':

open_blk(i, j)

print 'start'

while True:

end = True

for i in xrange(10):

for j in xrange(10):

if show[i][j] == '#' and mine[i][j] == 0:

end = False

if end:

break

for i in xrange(10):

print ' '.join(show[i])

if mine[getX(x)][getY(y)] == 1:

print 'you lost'

break

open_blk(x, y)

输入 x/y 选择位置扫雷

本回答非原创,转自开源代码分享,以下是作者信息:

作者:边雪冬

技术支持:冒泡

Email:[email protected]

转载注明出处

希望我的回答能够帮到你,望采纳!

小程序。微信python扫雷小游戏复制链接在小程序,可氏升以直接点击下载。微信(WeChat)是腾讯公司于2011年1月21日推出歼握老的一个为智能终端提供即时通讯服务的免费应用程序,由张小龙所带领皮拍的腾讯广州研发中心产品团队打造。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12420601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存