matlab ismember_math原创 | 手把手教你用matlab制作五子棋小游戏

这是一篇手把手教你用matlab制作五子棋小游戏的推送。 我将这个程序的制作分为如下几个步骤: 第一步:界面设置 第二步:绘制棋盘 第三步:基础设置(棋子设置和绘图函数) 第四步:按键设置 第五步:主函数(刷新棋盘和弹出提示) 第六步:判断输赢的核心算法 第七步:将各部分连接在一起 第八步:些许改进 **第一步:界面设置...
摘要由CSDN通过智能技术生成

    这是一篇手把手教你用matlab制作五子棋小游戏的推送。

    我将这个程序的制作分为如下几个步骤:

    第一步:界面设置

    第二步:绘制棋盘

    第三步:基础设置(棋子设置和绘图函数)

    第四步:按键设置

    第五步:主函数(刷新棋盘和弹出提示)

    第六步:判断输赢的核心算法

    第七步:将各部分连接在一起

    第八步:些许改进

8d3044962516d5cc68b5f59a608fb0f0.png

    **第一步:界面设置**

    axis equal%让横竖坐标比例相等

    axis([-10,10,-10,10])%坐标轴范围设置为X,Y轴都是-10到10

    set(gca,'xtick',[],'ytick',[],...

'xcolor','w','ycolor','w')

    %用xtick,ytick删除掉坐标轴刻度,并将坐标轴颜色设置为'w'即white

    set(gca,'color',[0.8392,0.7216,0.3804])

    %将背景的颜色设置为棕色,这里的三个数字表示的是红蓝绿的比例

    hold on%保持界面不关闭

8d3044962516d5cc68b5f59a608fb0f0.png

    **第二步:绘制棋盘**

    这里直接用散点图scatter和折线图plot 进行绘制,直接暴力取点绘制

    x1=[-9,-9,-8,-8,-7,-7,-6,-6,-5,-5,...

-4,-4,-3,-3,-2,-2,-1,-1,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9];

    y1=[-9,9,9,-9,-9,9,9,-9,-9,9,9,-9,...

-9,9,9,-9,-9,9,9,-9,-9,9,9,-9,-9,9,9,-9,-9,9,9,-9,-9,9,9,-9,-9,9];

    x2=[-9,9,9,-9,-9];

    y2=[9,9,-9,-9,9];

    x3=[-9.2,9.2,9.2,-9.2,-9.2];

    y3=[9.2,9.2,-9.2,-9.2,9.2];

    x4=[-6,-6,-6,0,0,0,6,6,6];

    y4=[6,0,-6,6,0,-6,6,0,-6];

    plot(x1,y1,'k')

    plot(y1,x1,'k')

    plot(x2,y2,'k','LineWidth',2)

    plot(x3,y3,'k')

    scatter(gca,x4,y4,30,'k','filled') 

    绘制的效果是长这样的: 

b67354336b71ade280db930e18e49f07.png 8d3044962516d5cc68b5f59a608fb0f0.png

   **第三步:基础设置**

   row=19;col=19;%棋盘矩阵大小为19x19这里的矩阵大小画图时是使用不到的,但是后期运算可以用到

    win=0;%这是判断输赢的一个参数

    control=1;%这是判断下子颜色的一个参数,1为黑子,0为白子

    postion=[0 0];%这是那个红叉的坐标就是下棋位置,这里的下棋方法为上下左右加空格键下棋

    black=[20,20];white=[-20,-20];%随便取两个棋子的初始坐标

    black(1,:)=[];white(1,:)=[];%把那两个初始坐标删掉

    %这里取初始坐标又删掉是为了使这两个点集是两列的空矩阵

    plotblack=

scatter(gca,black(:,1),black(:,2),150,'k','filled');

    plotwhite=

scatter(gca,white(:,1),white(:,2),150,'w','filled');

    plotpostion=

scatter(gca,postion(1,1),postion(1,2),150,'rx');

    设置绘图函数的初始数据

8d3044962516d5cc68b5f59a608fb0f0.png

    **第四步:按键设置**

set(gcf, 'KeyPressFcn', @key) %设置有任何按键动作时,调用key这个函数

    function key(~,event)%定义函数key,其中event是按键动作

        switch event.Key%将按键动作转换

            case 'uparrow'%上下左右这四个都是一样的这里只挑一个进行解释

            %将按键 uparrow即上箭头,转化为将postion坐标上移

                postion=postion+[0,1];

            case 'downarrow'

                postion=postion+[0,-1];

            case 'leftarrow'

                postion=postion+[-1,0];

            case 'rightarrow'

                posti

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值