matlab 五连珠,我是初学者,想求哪位大神帮帮我把这个小游戏程序简单写写注释,五连珠游戏...
我是初学者,想求哪位大神帮帮我把这个小游戏程序简单写写注释,五连珠游戏
五连珠游戏
游戏规则:
移动小球,五个或五个以上相同颜色的组成一行或一列就会消失
移动的时候只能移动到相连通的格子里去
function [ ] = five()
global a h m1 n1 m2 n2 t h1 h2 h3 color score hsc ha ss
hf=figure('resize','off','name','five',...
'position',[360 280 560 420],'numbertitle','off');
ha=axes;
set(gcf,'menubar','none','color',[0.3 0.3 0.3])
set(gca,'position',[0.2300 0.1100 0.7750 0.8150])
set(gca,'xlim',[0,9],'ylim',[0,9])
set(ha,'xtick',[],'ytick',[],'box','on')
set(ha,'color',[0.7 0.6,0.6])
set(ha,'DataAspectRatio',[1 1 1],'PlotBoxAspectRatio',[1 1 1])
x=repmat([0;9],1,9);
y=[1:9;1:9];
line(x,y,'color','k')
line(y,x,'color','k')
hst=uicontrol('style','text','string','Score','fontsize',30,...
'units','normal','position',[0.02,0.55,0.26,0.14],'parent',hf,...
'ForegroundColor','w','backgroundcolor',[0.3 0.3 0.3],...
'fontweight','bold');
hsc=uicontrol('style','text','string','0','fontsize',24,...
'units','normal','position',[0.02,0.4,0.26,0.14],'parent',hf,...
'ForegroundColor','w','backgroundcolor',[0.3 0.3 0.3],...
'fontweight','bold');
hbt=uicontrol('style','pushbutton','string','Restart','fontsize',18,...
'units','normal','position',[0.02,0.16,0.26,0.14],'parent',hf,...
'fontweight','bold','callback',@restart);
color=[...
1 1 0;
1 0 1;
0 1 1;
1 0 0;
0 1 0;
0 0 1;
0.7 0.3 0;
];
h1=annotation('ellipse',[0.04,0.84,0.06,0.08],'facecolor','k');
h2=annotation('ellipse',[0.12,0.84,0.06,0.08],'facecolor','k');
h3=annotation('ellipse',[0.2,0.84,0.06,0.08],'facecolor','k');
set(ha,'buttondownfcn',@select2)
initialize
function initialize()
global a h m1 n1 m2 n2 t h1 h2 h3 color score hsc ss
a=zeros(9);
h=zeros(9)*NaN;
m1=[];
n1=[];
m2=[];
n2=[];
score=0;
ss=0;
k=rs(1:81,5);
t=ceil(rand(1,5)*7);
a(k)=t;
[m,n] = ind2sub([9,9],k);
y=9.5-m;
x=n-0.5;
for p=1:5
h(k(p))=line(x(p),y(p),'marker','o','markersize',24,...
'markerfacecolor',color(t(p),:),'markeredgecolor','none',...
'buttondownfcn',@select1);
end
t=ceil(rand(1,3)*7);
set(h1,'facecolor',color(t(1),:))
set(h2,'facecolor',color(t(2),:))
set(h3,'facecolor',color(t(3),:))
function [k]=rs(s,n);
for m=1:n
t=ceil(rand*length(s));
k(m)=s(t);
s(t)=[];
end
function select1(src,eventdata)
global a h m1 n1
n1=ceil(get(src,'xdata'));
m1=ceil(9-get(src,'ydata'));
set(h(~isnan(h)),'markeredgecolor','none')
set(src,'markeredgecolor','w')
function select2(src,eventdata)
global a h m1 n1 m2 n2 t h1 h2 h3 color score hsc ha ss
if isempty(m1) || isempty(n1)
return
end
cp=get(src,'currentpoint');
n2=ceil(cp(1,1));
m2=ceil(9-cp(1,2));
if a(m2,n2)
return
end
b=~a;
b(m1,n1)=1;
b=bwlabel(b,4);
if b(m1,n1)~=b(m2,n2)
return
end
a(m2,n2)=a(m1,n1);
a(m1,n1)=0;
h(m2,n2)=h(m1,n1);
h(m1,n1)=NaN;
set(h(m2,n2),'xdata',n2-0.5,'ydata',9.5-m2,'markeredgecolor','none')
m1=[];
n1=[];
judgement;
if sum(sum(~a))<3
hgo=text(1,4.5,'Game Over','fontsize',36,'fontweight',...
'bold','parent',src);
pause(3)
delete(hgo);
delete(h(~isnan(h)))
set(hsc,'string','0')
initialize;
return
end
if ~ss
new;
end
function judgement
global a h m1 n1 m2 n2 t h1 h2 h3 color score hsc ha ss
b=logical(zeros(9,9));
ss=0;
left=0;
right=0;
up=0;
down=0;
lu=0;
rd=0;
ld=0;
ru=0;
while n2-left-1>0 && a(m2,n2-left-1)==a(m2,n2)
left=left+1;
end
while n2+right+1<10 && a(m2,n2+right+1)==a(m2,n2)
right=right+1;
end
while m2-up-1>0 && a(m2-up-1,n2)==a(m2,n2)
up=up+1;
end
while m2+down+1<10 && a(m2+down+1,n2)==a(m2,n2)
down=down+1;
end
while n2-lu-1>0 && m2-lu-1>0 && a(m2-lu-1,n2-lu-1)==a(m2,n2)
lu=lu+1;
end
while n2+rd+1<10 && m2+rd+1<10 && a(m2+rd+1,n2+rd+1)==a(m2,n2)
rd=rd+1;
end
while n2-ld-1>0 && m2+ld+1<10 && a(m2+ld+1,n2-ld-1)==a(m2,n2)
ld=ld+1;
end
while n2+ru+1<10 && m2-ru-1>0 && a(m2-ru-1,n2+ru+1)==a(m2,n2)
ru=ru+1;
end
if left+right+1>=5
b(m2,n2-left:n2+right)=1;
end
if up+down+1>=5
b(m2-up:m2+down,n2)=1;
end
if lu+rd+1>=5
ind=sub2ind([9,9],m2-lu:m2+rd,n2-lu:n2+rd);
b(ind)=1;
end
if ld+ru+1>=5
ind=sub2ind([9,9],m2+ld:-1:m2-ru,n2-ld:n2+ru);
b(ind)=1;
end
if sum(sum(b))
a(b)=0;
delete(h(b));
h(b)=NaN;
score=score+sum(sum(b));
set(hsc,'string',num2str(score))
ss=1;
end
function new
global a h m1 n1 m2 n2 t h1 h2 h3 color score hsc ha
k=rs(find(~a),3);
a(k)=t;
[mt,nt] = ind2sub([9,9],k);
y=9.5-mt;
x=nt-0.5;
for p=1:3
h(k(p))=line(x(p),y(p),'marker','o','markersize',24,...
'markerfacecolor',color(t(p),:),'markeredgecolor','none',...
'buttondownfcn',@select1);
end
for p=1:3
m2=mt(p);
n2=nt(p);
judgement;
end
if sum(sum(~a))==0
hgo=text(1,4.5,'Game Over','fontsize',36,'fontweight',...
'bold','parent',ha);
pause(3)
delete(hgo);
delete(h(~isnan(h)))
set(hsc,'string','0')
initialize;
return
end
t=ceil(rand(1,3)*7);
set(h1,'facecolor',color(t(1),:))
set(h2,'facecolor',color(t(2),:))
set(h3,'facecolor',color(t(3),:))
function restart(src,eventdata)
global a h m1 n1 m2 n2 t h1 h2 h3 color score hsc ha ss
delete(h(~isnan(h)))
set(hsc,'string','0')
initialize;
matlab 五连珠,我是初学者,想求哪位大神帮帮我把这个小游戏程序简单写写注释,五连珠游戏...相关推荐
- [转载]想要成为Linux大神,你应该和我一样这样做!
原文地址:想要成为Linux大神,你应该和我一样这样做!作者: 思梦PHP 大神终究是孤独的,在Linux这条路上,有太多的人,而我们走着走着就分离了,我们在各自的道路上按照我们自己的方法去寻找着属于 ...
- 饭店菜单选择c语言,求C语言大神,帮忙做一下这个题,要源代码设计实现一个餐厅点餐系统? 爱问知识人...
求C语言大神,帮忙做一下这个题,要源代码 设计实现一个餐厅点餐系统,实现电子点餐.要求实现二级菜单: 一级菜单: 请选择: 1.点餐 2.查看已点菜品 3.添菜 求C语言大神,帮忙做一下这个题,要源代 ...
- 微信小程序:想要点击图片时进行一个放大的功能,写完之后可以正常显示,但点击时图片加载不出来,在此想问一下各路大神有没有解决办法
微信小程序:想要点击图片时进行一个放大的功能,写完之后可以正常显示,但点击时图片加载不出来,在此想问一下各路大神有没有解决办法 wxml: 在这里插入代码片 <view class='zhanp ...
- 计算机系大神和数学系系花,小甜文:《一贱钟情,大神求放过》1v1双C,男主小奶狗,全程高甜...
最近很多书迷都反应不知道看什么书好,不知不觉的就陷入了书荒的境地,作为老书迷的小编对此也感同身受.今天小编继续给书迷们介绍好看的小说,分分钟让书迷朋友们看上瘾不睡觉!看好的话记得收藏,不怕以后再书荒了 ...
- 想要成为Linux大神,你应该和我一样这样做!
大神终究是孤独的,在Linux这条路上,有太多的人,而我们走着走着就分离了,我们在各自的道路上按照我们自己的方法去寻找着属于我们的道路,属于我们的那一片领土! 第一天 我们从3开始 3.echo '1 ...
- 理解C#语言中的类型转换----初学者的理解,请大神指教
一下都是在视频教学中学到后的理解,如果说错了请大神指教 C#语言中的类型转换,就是将某个数据要转换成另一个类型的数据. c#语言中的数据类型主要有: char类型(字符类型): string类型(字符 ...
- phpexcel导出excel,怎么给内容加超链接,求大神帮帮我
使用phpexcel导出excel时,怎么让导出的内容带有超链接(想让user_name带一个超链接),该如何实现,静态方法export要怎么改 请大神帮忙 代码如下: // 判断二维数组中是否有数据 ...
- matlab潮流计算求节点自导纳,大神们,求个电力系统潮流计算的matlab程序。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 n=input('Please input n\n'); %n表示系统的节点数 d0=input('Please input d0\n'); %d0表示系 ...
- 用c语言求元素移动的次数T(n),悬赏!求C语言大神帮忙,写一个数字推盘游戏的程序(N-puzzle) 具体的要求看图片...
满意答案 zcloj 2013.10.14 采纳率:56% 等级:12 已帮助:5505人 这是我在网上收藏在本地的数独游戏代码.看能否符合你的要求 #include int fun(int a ...
最新文章
- linux 关闭java进程后重启有用吗_linux启动java进程的shell脚本(包括启动,停止,重启)...
- java日志输出到kafka
- boost::fusion::at_c用法的测试程序
- sql年月日24小时制_24小时制的「无码」真人秀,令人叫绝
- ui自动化测试测试报告_您需要了解的有关UI测试的所有信息
- Kubernetes各个组件的概念
- ceph(7)--Ceph 的基本操作和常见故障排除方法
- AJAX 跨域调用和 Java 跨域 发送请求
- 手机游戏上线前的准备
- java爬取豆瓣电影TOP250排行
- 用 SwiftUI 实现一个开源的 App Store
- 知识笔记 - sekiro RPC框架的安装与简单使用
- Android集成FFmpeg并实现视频转码
- java好学么_java是什么好学吗?难不难学?
- 三维中通过一个点和距离与其欧拉角计算另一个点位置
- excel随机数_数据分析常用的excel函数(2)
- IOS大牛的技术人生的经验与心得
- 小米遭虚假评价后索赔 100 万元
- Vue 图片验证码实现【blob、base64】
- 用C/C++实现网络监听抓包
热门文章
- 微信7.0升级后 高德地图在微信内置浏览器定位失败
- parasolid 原因 效率_20个solidworks常见问题及解决办法
- 继获得1100万美元投资后,Fincy将增招50位“战略型”人才
- centos上部署oa系统-开源o2server
- 怎么才能合理的安排时间,用便签安排自己一天计划表
- 基于android的百度地图的公司员工签到app
- DDD-CQRS的落地案例
- 将Excel文件导入mysql数据库
- 【flutter-mobx】Flutter 状态管理- 使用 MobX实现计数器
- Java项目:汽配商城系统(java+HTML+JavaScript+jsp+Mysql)