贪吃蛇

来源:互联网 发布:孟小冬 扮相 知乎 编辑:程序博客网 时间:2024/04/26 13:12

前几天照着大神用matlab写的一个贪吃蛇的小游戏,终于差不多搞好了,一步一步理解,都有好多问题,现在来分析下问题所在。

1.set(gca,'Position',[-0.07 0.11 0.775 0.815]);

写了这个程序发现set,get真的很神奇诶,而且方式各种各样,不像很多函数,有固定的格式。就像上述这句话,好久都没有搞清楚,最后讲中括号的数字都试了一遍,大概能搞清楚怎么回事了,不过有一个大神的解释很到位。

http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=206576&page=1#pid1892095     四楼的回答。



2.load(‘’)的问题。

这个问题也搞了我好久好久,比如就有句代码是load('socre.txt'),看似很简单的一句话,就是运行不了,我一直检查不出来我哪里错误,运行的文件夹里也确实有socre.txt。那为什么不行呢。不断重命名,不断复制黏贴,完全一样的,可还是错。!!!!最后的问题都要奔溃掉,因为我电脑中的后缀名是不显示的,所以score.txt实际上的名字为score.txt,txt,因此只有load(‘score.txt.txt’)才是对的,或者将其重命名为score,用load(‘score.txt’)就行。


3.调式的时候clear all

在调式一个子函数的时候,Z=X+Y*i,本来i的含义就是复数虚部的含义,可是调试中一直i=40,我就奇怪。以为在for循环中是用了i,找到问题的根本了,于是将i改成了j,本来以为万事大吉了。可是发现还是错的,奇了怪了。最后才发现原来没有将之前留在工作区间的变量清除掉,i与j都是40.。。这不是坑爹嘛!!



4.uimenu和uicontrol

没有直接画界面,而是直接用函数写界面,我感觉简单的界面用上面的两个函数就可以完成大部分了。下面讲讲对上述两个函数的理解。

uicontrol函数没有过多的格式要求,仅仅只要两两配就行了,也就是说,前面写个参数的名字,后面写上参数相对应的数。如前面‘style’,后面‘text’;前面‘fontsize’,后面’14‘等等之类的。简单易懂,关于前面参数可以有什么,help uicontrol就都有了。

(附上

Style有下面这些

{pushbutton} | togglebutton | radiobutton | checkbox| edit | text | slider | frame | listbox | popupmenu


至于uimenu就类似写写每个界面都有的file,edit,help,然后下面又可以拉下很多选项等等之类的。


5.fliplr,set,get,fill

这个程序有几个函数还比较好玩的。

前面说了set,get都是很神奇的东西;

fliplf分开字母理解就是flip从左到右,类似的函数有flipdim,flipup,flipdim(A,1)=flipup(A),flipdim(A,2)=fliplr(A);

fill函数,填补作用。



6.最后一个问题没搞好清楚.

set(gcf,'KeyPressFcn','app=get(gcf,''CurrentKey'');direction;')
这句话的具体含义是什么啊,app是为了获得我们键盘敲的是上下左右四个键的哪一个。direction是是这样这个函数:

%direction.m
switch app 
   case 'leftarrow';         
       D=-1; 
   case 'rightarrow'; 
       D=1; 
   case 'uparrow'; 
       D=i; 
   case 'downarrow'; 
       D=-i; 
   otherwise 
end

求解答!