欢迎来到天天文库
浏览记录
ID:8810533
大小:27.49 KB
页数:4页
时间:2018-04-08
《python实现的扫雷游戏源码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
样例输出:mine=13length=10OriginMatrix=[]#保存原始地雷矩阵NumberMatrix=[]#保存计算后的数字矩阵StateMatrix=[]#保存矩阵的显示状态#生成地雷矩阵fromrandomimportrandintforiinrange(0,length):temp=[]forjinrange(0,length):temp.append('.');OriginMatrix.append(temp)foriinrange(0,mine):x=randint(0,9)y=randint(0,9)OriginMatrix[x][y]='*'delrandint#randint不再使用#生成对应的数字矩阵#函数定义,该函数返回某点相邻地雷数(包括自身)defnumber(x,y):counter=0foriin[0,1,-1]:forjin[0,1,-1]:ifx+i<0orx+i>=length:continueelify+j<0ory+j>=length:continueelifOriginMatrix[x+i][y+j]!='*':continueelse:counter+=1returncounter#计算 forxinrange(0,length):temp=[]foryinrange(0,length):temp.append(number(x,y))NumberMatrix.append(temp)#剔除地雷点(将其相邻地雷数设为9,表示该点为地雷)foriinrange(0,length):forjinrange(0,length):ifOriginMatrix[i][j]=='*':NumberMatrix[i][j]=9delOriginMatrix#OriginMatrix不再使用#定义一些用到的函数#显示函数,用于显示矩阵fromosimportsystemdefdisplay(verdict):#verdict参数用于在挖中地雷时显示地雷system('cls')temp=''foriinrange(0,length):temp+=(str(i)+'')print(temp)foriinrange(0,length):temp=str(i)+''forjinrange(0,length):ifNumberMatrix[i][j]==9andnotverdict:temp+='*'continueifStateMatrix[i][j]:ifNumberMatrix[i][j]==0:temp+=''else:temp+=(str(NumberMatrix[i][j])+'')else:temp+='■'print(temp)#剔除函数,用于剔除显而易见的不为地雷的位置CheckSet=set()defopenWhile(x,y):if(x,y)inCheckSet:returnelifNumberMatrix[x][y]>1:returnelse:StateMatrix[x][y]=TrueCheckSet.add((x,y))#与0相邻的都显示ifNumberMatrix[x][y]==0:foriin[-1,0,1]: forjin[-1,0,1]:ifx+i>=0andx+i=0andy+j=0:openWhile(x-1,y)ify-1>=0:openWhile(x,y-1)ifx+1
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处