一、获取代码方式


二、部分源代码

clear 
row=10;
col=10;
num=30;
jieshu=0;
%global flag;
flag=zeros(row,col);
flag1=ones(row,col);
minenum=zeros(row,col);
minefield=rand(row,col);
[temp,index]=sort(minefield(:));
minefield=(minefield<=minefield(index(num)));%产生扫雷对应的10*10矩阵,其中1表示雷区
count=0;
for i=1:row%这个for循环是检测minefield矩阵中每一个位置周围的的雷数,并将结果保存在矩阵minenum中
for j=1:col
x1=i-1;y1=j-1;
x2=i-1;y2=j;
x3=i-1;y3=j+1;
x4=i; y4=j-1;
x5=i; y5=j+1;
x6=i+1;y6=j-1;
x7=i+1;y7=j;
x8=i+1;y8=j+1;
if x1>0&&y1>0
if minefield(x1,y1)==1
count=count+1;
end
end
if x2>0
if minefield(x2,y2)==1
count=count+1;
end
end
if x3>0&&y3<11
if minefield(x3,y3)==1
count=count+1;
end
end
if y4>0
if minefield(x4,y4)==1
count=count+1;
end
end
if y5<11
if minefield(x5,y5)==1
count=count+1;
end
end
if x6<11&&y6>0
if minefield(x6,y6)==1
count=count+1;
end
end
if x7<11
if minefield(x7,y7)==1
count=count+1;
end
end
if x8<11&&y8<11
if minefield(x8,y8)==1
count=count+1;
end
end
minenum(i,j)=count;
count=0;
end
end


tic;

hf=figure('NumberTitle','off','Name','扫雷','menubar','none');%调用figure函数,产生一个图形界面

uh1=uimenu('label','游戏');%接下来的几个uimenu申请菜单栏
uimenu(uh1,'label','背景颜色选择','callback','c=uisetcolor([0 0 1],''选择颜色'');set(hf,''color'',c);');
uh2=uimenu('label','帮助');%callback函数,回调函数,点击左键触发菜单栏里的标签,然后就可以进行接下来的操作,比如选颜色
uimenu(uh2,'label','游戏规则','callback',['text(-0.05,0,''与常规扫雷游戏相似,不同点在于:右击之后红色标记疑似雷区,真实雷区由黑色标注,'',''fontsize'',12,''fontname'',''宋体'');',...
'hold on; text(-0.12,-0.07,''输了后,一曲哈利路亚送给你&语音提示,赢了后,也会有语音提示!'',''fontsize'',12,''fontname'',''宋体'') ; axis off ']);
uimenu(uh2,'label','制作信息','callback','msgbox(''copyright:Wteng Thanks for using!'')');
for m=1:row
for n=1:col
h(m,n)=uicontrol(gcf,'style','push',...%uicontrol函数创建uicontrol用户界面控件实现图形用户界面,其中gcf指当前的figure,style为pushbutton
'foregroundColor',0.7*[1,1,1],...
'string',strcat(num2str(m),num2str(n)),...%num2str是将数字转化为字符,strcat函数是将字符横向拼接的函数
'unit','normalized','position',[0.16+0.053*n,0.9-0.073*m,0.05,0.07],...
'BackgroundColor',0.7*[1,1,1],'fontsize',17,...
'fontname','times new roman',...
'ButtonDownFcn',['if isequal(get(gcf,''SelectionType''),''alt'')',...%ButtonDownFcn函数是当在控件上按下鼠标按键(左键、右键或中间键)时调用的函数。
' if ~get(gco,''Value'') if isequal(get(gco,''Tag''),''y'') ',...%gco 返回当前鼠标单击的句柄值
'set(gco,''style'',''push'',''string'','''',''backgroundcolor'',0.7*[1 1 1]);',...

三、运行结果

【游戏】基于matlab扫雷游戏【含Matlab源码 475期】_控件

四、matlab版本及参考文献

1 matlab版本

2014a

2 参考文献

[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.

[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.