scratch五子棋人机对战

您所在的位置:网站首页 如何自制游戏棋盘教程 scratch五子棋人机对战

scratch五子棋人机对战

2024-07-09 14:20| 来源: 网络整理| 查看: 265

   扫描关注微信公众号获取更多内容

 今天跟大家分享下scratch五子棋的程序,五子棋我们都玩过,当黑子或者白子横、竖、斜连成五子,游戏就结束啦。想要把五子棋的规则完全实现出来还是很不容易的。

 

 

    那在做之前,我们先梳理下思路:

    1.棋盘背景——横、竖线相隔单位保持一致

    2.黑子(人)——跟随鼠标,且中心落点在黑线的交叉点

    3.白子(电脑)——自主判断落点,且中心落点在黑线的交叉点上

    看起来似乎比较简单,但是还有很多隐藏的问题(至关重要)

    比如:

    1.一个交叉点只能落一子

    2.不能在棋盘外落子

    3.电脑的AI

    4.判断胜负的条件

 

    今天我们就来解决棋盘背景和落子的问题。

   棋盘的背景可以通过画笔的方式绘制

    我们可以把棋盘看成是由竖线和横线组成,且每条线相隔的距离也相同,假设这个距离为20个像素点。

    那么可以先找到一个合适的位置(-200,-160),向上移动画一条黑线,然后移动到(-200,-160),将坐标x增加20后,再画条黑线,重复此过程,通过控制循环的次数控制线的数量,横线也是一样,只需要改成向右画线,且每次y变化20,就可以了

竖线

横线

 

    接下来我们要解决的问题是:

    1.黑子跟随鼠标移动,点击鼠标落子

    2.每次落子要正好在交叉点的中间

    我们新建一个黑子角色,调整为合适大小(半径小于10个像素点),且黑子的位置如下图所示:

    这有这样才能保证    运行时,鼠标指针正对黑子的圆心。当点击鼠标后,落子,盖章。这样就能实现跟随鼠标移动,点击落子的功能了

 

    最后要解决落子要在交叉点中间的关键就是,当鼠标指针在交叉点附近时(红圆里任意位置),点击鼠标,黑子不会直接盖章,而是黑子圆心会移动到交叉点上再去盖章。

 

    根据之前绘图时的坐标可以发现,交叉点的X或Y坐标都是20的整数倍,且红色圆圈半径为10。那我们可以把它看成一个数学问题。

    假设交叉点坐标为(X,Y),鼠标的坐标可能是(X+a,Y+b),且-10



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3