您当前的位置: 首页 >  游戏

slandarer

暂无认证

  • 5浏览

    0关注

    248博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

matlab 小游戏 找不同的颜色

slandarer 发布时间:2019-02-28 13:56:14 ,浏览量:5

用matlab实现的那个找不同颜色的小游戏 游戏截图:在这里插入图片描述 在这里插入图片描述 完整代码

function find_different_color
hold on
axis equal
axis(0.5+[0,10,0,10])
set(gca,'xtick',[],'ytick',[],'xcolor','w','ycolor','w')
set(gca,'color','w')
others=ones(10,10);[m,n]=find(others==1);otherspostion=[m,n];f=@(x)exp(-x)/2;
x=0.035;basiccolor=[0.3,0.3,0.3];changepostion=[3,5];theonecolor=[0.3,0.7,0.3];
changeplace=2;score=0;deadline=60;control=0;starts=0;
plotsquare=scatter(gca,otherspostion(:,1),otherspostion(:,2),1080,basiccolor(:,1:3),'s','filled');
plotone=scatter(gca,changepostion(:,1),changepostion(:,2),1080,theonecolor(:,1:3),'s','filled');
set(gcf,'WindowButtonDownFcn',@begin);
set(gcf,'tag','a','CloseRequestFcn',@clo);
    function clo(~,~)
        delete(findobj('tag','a'))
        control2=0;
        clf
        close
    end
   function drawsquare
       x=x+0.035;basiccolor=rand(1,3);
       changepostion=randi(10,[1,2]);changeplace=randi(3);
       if basiccolor(changeplace)>0.5
           theonecolor=basiccolor;
           theonecolor(changeplace)=theonecolor(changeplace)-f(x);
       else
           theonecolor=basiccolor;
           theonecolor(changeplace)=theonecolor(changeplace)+f(x);
       end
       set(plotsquare,'XData',otherspostion(:,1),'YData',otherspostion(:,2),'CData',basiccolor(:,1:3))
       set(plotone,'XData',changepostion(:,1),'YData',changepostion(:,2),'CData',theonecolor(:,1:3))
   end
    function begin(~,~)
        xy=get(gca,'CurrentPoint');xp=xy(1,1);yp=xy(1,2);pos=[xp,yp];pos=round(pos);
        if pos==changepostion
            if control==0
                drawsquare()
                score=score+1;
            end
            delete(textscore);
            textscore=text(-1,7,num2str(score),'FontSize',12);
        end
    end
    function time(~,~)
        while (deadline>0)&&control2==1
            pause(0.75)
            deadline=deadline-1;delete(textdeadline)
            textdeadline=text(-1,9,num2str(deadline),'FontSize',15);
        end
        control=1;
        if control2==0
            close
        end
    end       
text(-1.5,8,'score=','FontSize',13)
textscore=text(-0.5,7,num2str(score),'FontSize',12);
text(-2,10,'deadline','FontSize',15)
textdeadline=text(-1,9,num2str(deadline),'FontSize',15);
control2=1;time()
end
       
       
       
关注
打赏
1664692598
查看更多评论
立即登录/注册

微信扫码登录

0.0362s