百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

Scratch 制作井字棋游戏

yund56 2025-06-30 03:45 3 浏览

井字棋,英文名叫Tic-Tac-Toe,是一种在3×3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。由于井子棋难度低,常用作儿童游戏。玩过这个游戏的人都会发现,如果两个玩家都做出最优选择,这个游戏一定会出现平局。别看这个游戏虽然简单,但用数学计算它整个过程却复杂的多,从理论上讲“井字棋”一共可能有19683种现象!今天就和大家一起用Scratch把“井字棋”游戏给作出来。这个游戏的代码没有大家想象的那么难,只要大家跟紧思路就没有任何问题,让我们一起开始吧(图1)。



首先我们创建需要的角色和背景。点击舞台背景在造型中绘制四条线作为棋盘,线条的间距稍微放宽一些,粗细也稍微加粗一些。再写上X WIN和O WIN两种结局的背景造型。


完成三个背景造型之后,新建角色,这个角色的造型中需要添加四个不同的造型,分别是两个正方形的方块,方块比棋盘格子稍微小一点。颜色为一白一灰用于遮挡和显示鼠标焦点。当鼠标移动到棋盘上的格子时候,颜色切换成灰色,默认情况下颜色为白色。另外两个角色是X和O用来表示棋子。准备好的背景和角色如图2。



一切就绪后,可以开始编写代码了,我们先为棋盘每个格子编号,左下角为1号位,右上角为9号位。使用两个变量sign_num(用于标记每个方块的编号)和toggle(用于标记每个方块的背后的X或者O)。


将角色造型切换成白色方块,移动到1号位(-115,-112)。套用双重循环,每次重复执行3次,克隆自己,将X坐标增加115(X和Y的数值是根据棋盘与角色方块的高宽根据实际情况计算出来的,可以自行调整)。同时将sign_num的值增加1,内层循环结束。将X坐标重新设为-115,恢复到左边格子的坐标,将Y坐标增加110,角色到了中间一行。3×3次循环结束之后,棋盘中的每个方格都有了一个克隆体(如图3)。



为了标记这些克隆体,我们新建一个列表cell,一个变量count,默认起始情况下删除cell中的全部内容,将变量count设置为10,重复执行9次,将数字10-19添加入列表中,对应9个位置的角色。列表有两个作用,第一作为区分方格的数字编号,第二等游戏时将X和O与列表中的数字进行替换用来记录棋局,到此第一步结束(如图4)。



游戏开始后所有克隆体快速铺满棋盘后,初始状态是所有的方格上都是白色的造型(造型编号=1)。我们移动鼠标开始游戏,当碰到鼠标指针后切换成灰色造型(造型编号=2),之后分成两种情况,点击鼠标落子和没有操作移开鼠标。


当按下鼠标且该位置没有棋子时(造型编号=2)可以落子,按照井字棋游戏的规则,当按下鼠标后轮流打叉(X)和画圈(O),我们可以通过toggle变量来控制X和O的次序,当toggle为奇数时,当toggle除以2的余数=1时说明toggle是奇数,切换成O的造型,当toggle为偶数时,切换成X的造型,切换造型之后将列表中格子对应的项替换成X或O。每次鼠标点击,toggle数值增加1。


当没有点击操作,鼠标移开,就将灰色块恢复成白色块(如图5)。



到目前为止,游戏已经可以操作了,只是还缺少了最重要的一部分判断胜利,就是需要判断是否产生了三连。井字棋不同于五子棋,获取胜利的局面数量很少,才横三条、竖三条、斜线两条共八种可能。我们只需要将八种方式一一列举出就可以了,比如当列表的第1项=等2项=第3项的时候,对应方格中的1、2、3号位刚好横向连成一条线。实际编程时使用“第1项=等2项与等2项=第3项”。再根据方格中的内容来判断到底是哪一方获得了胜利。最后由广播的方式传递胜利信息给背景显示出来。



到这里,我们的井字棋游戏也成功完成了,这里小陈老师留一个问题,在目前井字棋代码中我只判断了赢和输,如果最终的结局是平局该怎么用代码表示呢?剩下整个问题就交给大家了。一起动脑思考一下吧,期待你们的答案。

相关推荐

今日起,办理游戏版号这么做就行了!真的太方便了

  在“大众创业,万众创新”的浪潮下,我国很多创业者也看到了游戏的前景,准备在游戏行业分一杯羹。  但根据国家新闻出版广电总局颁布的《关于移动游戏出版服务管理的通知》,游戏需要通过国家新闻出版广电总局...

给大家推荐些好的c语言代码的网站

C语言,那就来推荐几个吧,部分含有C++:1、TheLinuxKernelArchives(kernel.org)Linux内核源码,仅限于C,但内核庞大,不太适合新手;2、redis(redi...

手游平台没有源码的三大危害

搭建一款属于自己的手游平台可以直接和游戏研发商对接游戏,既减少中介的差价,还能根据自己需求去选择游戏。对于玩家而言,手游平台给予了玩家更多的选择机会,对于运营者而言,借助平台可以更好地服务玩家,通过对...

游戏源代码开发时需要什么,需要哪些团队成员?

游戏由于她轻松娱乐,对战刺激,寓教于乐等特点,吸引住了一大批不一样年龄阶段的用户,例如喜爱竞技游戏的年轻群体,需要益智游戏的儿童等。游戏源代码是游戏构建的基础,尽管将开发时分成开发软件和游戏开发2个概...

育碧经典游戏《孤岛惊魂1》源代码遭泄露,玩家表示可以运行

IT之家7月3日消息,一份名为“FarCry1.34Complete”的游戏源代码已经出现在了互联网档案网站“Archive.org”上,并且在Reddit论坛和各种社交媒体上得到...

神秘网站倒数结束 令人一头雾水

还记得那个疑似小岛秀夫作品的《黑色猎犬》倒计时网站吗?现在该网站已经停止倒计时,仅剩一段话“这里原来有一个倒计时,现在没了”……点击这句话会跳转到国外网站Funhaus的一个莫名其妙的视频,然而评论的...

LOL源代码娜美免费领取地址 LOL源代码娜美领取活动网址分享

[海峡网]在英雄联盟中近日国服的服务器一直不稳定,繁出现卡顿和功能错误等问题,官方现在正在努力维护,为表歉意将免费赠送给玩家一款“源代码·娜美”的皮肤,那么这个皮肤要怎么领取呢,小编相信小伙伴们一定都...

个人网站集成js小游戏《圈小猫》教程及源码

今天在某网站浏览帖子的时候,发现帖子被删除了,然后弹出了404页面,页面上集成了一个小游戏,小游戏长什么样子呢?看下面这个图!第一步查看小游戏源码,发现这个小游戏完全是由JavaScript编写的,因...

Scratch创意编程-数学问答游戏

项目名称:数学问答游戏目标年龄群体:8-12岁项目简介:在这个Scratch创意编程项目中,学生们将扮演数学家,通过解答数学题目来挑战自己的数学技能。游戏中包含了加法、减法、乘法和除法等基本算术题,以...

少时不努力长大程序猿 酷比魔方AI百变编程套件体验测评

本文产品为厂家送测,坚持独立的评价观点是笔者创作的基本底线,绝不会因商品来源不同而有所偏颇,请各位放心。写在开始讲讲今天男主的故事这篇体验到的目标群体是跟我一样,家中有个在上小学二年级的小学生。首先...

孩子的scratch作品只能演示?教你把它三步变为电脑软件

随着少儿编程的发展,越来越多的家长和孩子开始投身其中。对于初学者来说,最好的编程工具就是Scratch,它是麻省理工学院的“终身幼儿园团队”开发的图形化编程工具,主要面对青少年开放。这是对孩子最好的编...

打地鼠小游戏制作教程

打地鼠这个小游戏貌似比我的年龄都要大,这次我们使用scratch3.0图形化编程软件来制作一款我们自己的“打地鼠”。我们先准备4样角色,分别是:地鼠角色、锤子角色、地洞角色、草地角色。地鼠→使用猫...

Scratch2.0接苹果小游戏讲义整理

Scratch2.0接苹果小游戏概貌见动图:这又是一款经典的Scratch小游戏,是孩子们学习Scratch编程软件的良好载体,不容错过。(一)玩法说明接到慢速的红苹果一个加1分;接到中速的红苹果一个...

少儿编程太难?原来可以闯关玩游戏啊

随着编程学习全球化的趋势,国内编程学习热潮日盛,越来越多的家长开始让孩子接触学习编程。然而我们都不了解这个少儿编程是到底是什么,近年来,许多家长开始给小孩报编程学习班。最小的从幼儿园开始就在学习...

如何在Scratch中创建一个两人赛艇游戏

本分步指南将教您如何使用Scratch程序创建划船游戏。完成对这个简单游戏的编程后,两条船将使用按键命令一起竞赛。步骤1.打开Scratch。2.删除名为“Sprite1”的猫。您可以通过右键单击它...