我是初学者,想求哪位大神帮帮我把这个小游戏程序简单写写注释,五连珠游戏

五连珠游戏

游戏规则:

移动小球,五个或五个以上相同颜色的组成一行或一列就会消失

移动的时候只能移动到相连通的格子里去

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 五连珠,我是初学者,想求哪位大神帮帮我把这个小游戏程序简单写写注释,五连珠游戏...相关推荐

  1. [转载]想要成为Linux大神,你应该和我一样这样做!

    原文地址:想要成为Linux大神,你应该和我一样这样做!作者: 思梦PHP 大神终究是孤独的,在Linux这条路上,有太多的人,而我们走着走着就分离了,我们在各自的道路上按照我们自己的方法去寻找着属于 ...

  2. 饭店菜单选择c语言,求C语言大神,帮忙做一下这个题,要源代码设计实现一个餐厅点餐系统? 爱问知识人...

    求C语言大神,帮忙做一下这个题,要源代码 设计实现一个餐厅点餐系统,实现电子点餐.要求实现二级菜单: 一级菜单: 请选择: 1.点餐 2.查看已点菜品 3.添菜 求C语言大神,帮忙做一下这个题,要源代 ...

  3. 微信小程序:想要点击图片时进行一个放大的功能,写完之后可以正常显示,但点击时图片加载不出来,在此想问一下各路大神有没有解决办法

    微信小程序:想要点击图片时进行一个放大的功能,写完之后可以正常显示,但点击时图片加载不出来,在此想问一下各路大神有没有解决办法 wxml: 在这里插入代码片 <view class='zhanp ...

  4. 计算机系大神和数学系系花,小甜文:《一贱钟情,大神求放过》1v1双C,男主小奶狗,全程高甜...

    最近很多书迷都反应不知道看什么书好,不知不觉的就陷入了书荒的境地,作为老书迷的小编对此也感同身受.今天小编继续给书迷们介绍好看的小说,分分钟让书迷朋友们看上瘾不睡觉!看好的话记得收藏,不怕以后再书荒了 ...

  5. 想要成为Linux大神,你应该和我一样这样做!

    大神终究是孤独的,在Linux这条路上,有太多的人,而我们走着走着就分离了,我们在各自的道路上按照我们自己的方法去寻找着属于我们的道路,属于我们的那一片领土! 第一天 我们从3开始 3.echo '1 ...

  6. 理解C#语言中的类型转换----初学者的理解,请大神指教

    一下都是在视频教学中学到后的理解,如果说错了请大神指教 C#语言中的类型转换,就是将某个数据要转换成另一个类型的数据. c#语言中的数据类型主要有: char类型(字符类型): string类型(字符 ...

  7. phpexcel导出excel,怎么给内容加超链接,求大神帮帮我

    使用phpexcel导出excel时,怎么让导出的内容带有超链接(想让user_name带一个超链接),该如何实现,静态方法export要怎么改 请大神帮忙 代码如下: // 判断二维数组中是否有数据 ...

  8. matlab潮流计算求节点自导纳,大神们,求个电力系统潮流计算的matlab程序。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 n=input('Please input n\n'); %n表示系统的节点数 d0=input('Please input d0\n'); %d0表示系 ...

  9. 用c语言求元素移动的次数T(n),悬赏!求C语言大神帮忙,写一个数字推盘游戏的程序(N-puzzle) 具体的要求看图片...

    满意答案 zcloj 2013.10.14 采纳率:56%    等级:12 已帮助:5505人 这是我在网上收藏在本地的数独游戏代码.看能否符合你的要求 #include int fun(int a ...

最新文章

  1. linux 关闭java进程后重启有用吗_linux启动java进程的shell脚本(包括启动,停止,重启)...
  2. java日志输出到kafka
  3. boost::fusion::at_c用法的测试程序
  4. sql年月日24小时制_24小时制的「无码」真人秀,令人叫绝
  5. ui自动化测试测试报告_您需要了解的有关UI测试的所有信息
  6. Kubernetes各个组件的概念
  7. ceph(7)--Ceph 的基本操作和常见故障排除方法
  8. AJAX 跨域调用和 Java 跨域 发送请求
  9. 手机游戏上线前的准备
  10. java爬取豆瓣电影TOP250排行
  11. 用 SwiftUI 实现一个开源的 App Store
  12. 知识笔记 - sekiro RPC框架的安装与简单使用
  13. Android集成FFmpeg并实现视频转码
  14. java好学么_java是什么好学吗?难不难学?
  15. 三维中通过一个点和距离与其欧拉角计算另一个点位置
  16. excel随机数_数据分析常用的excel函数(2)
  17. IOS大牛的技术人生的经验与心得
  18. 小米遭虚假评价后索赔 100 万元
  19. Vue 图片验证码实现【blob、base64】
  20. 用C/C++实现网络监听抓包

热门文章

  1. 微信7.0升级后 高德地图在微信内置浏览器定位失败
  2. parasolid 原因 效率_20个solidworks常见问题及解决办法
  3. 继获得1100万美元投资后,Fincy将增招50位“战略型”人才
  4. centos上部署oa系统-开源o2server
  5. 怎么才能合理的安排时间,用便签安排自己一天计划表
  6. 基于android的百度地图的公司员工签到app
  7. DDD-CQRS的落地案例
  8. 将Excel文件导入mysql数据库
  9. 【flutter-mobx】Flutter 状态管理- 使用 MobX实现计数器
  10. Java项目:汽配商城系统(java+HTML+JavaScript+jsp+Mysql)