Funpack第十期-Kitronik ARCADE-井字棋
Funpack第十期-Kitronik ARCADE-井字棋
标签
Kitronik ARCADE
Funpack第十期
井字棋
13467344330
更新2021-09-03
539

硬件介绍

第十期的开发板是一个透明外框的游戏手柄,内置了方向键、动作键、蜂鸣器、震动马达、LCD显示屏等模块,可以用来制作小游戏。

Fi57c_8YRV5YFMY1Y_mrZlpdl3n4

项目介绍

我制作的游戏非常简单——井字棋。主要是我没有太多制作游戏的经验、唯一做过的游戏就是跟着React官方文档写的井字棋游戏,所以我就选择了它。井字棋需要两名玩家,一个打圈,一个打叉,轮流在3乘3的格子上打自己的符号,最先以横、直、斜连成一线则为赢。如果双方都下得正确无误,将得和局。

FnlpKNw744vIe3dFq4IjIQHpCmsO

我们游戏的操作方式就是通过方向键去控制选择框移动,每次移动一个格子,按A键落子,并且切换下一个玩家。

Fo3hyF9-o-TG4AzUbalKKO3uo8cv

主要定义了三个精灵类别,棋盘、格子和选择框

FsrT1JtAofoN0NyEGqVwmTDEZoxY

主要定义了三种图像,叉、圈和选择框,前两者是通过画图得到,后者是通过代码生成。

FrLSz7uTZsbTCz2_QRprN4Kfnskz

棋盘为一个120X120的正方形,我还定义了棋盘的起始位置、格子的大小及起始位置、分割线的宽度。

FueEDGOpeYN9rlc50CZLndh6bLmY

棋盘设置白色背景,并画好分割线,最后调整它的位置。

Fu7uBuZeUY2OJt54ALcGPTxMQXOb

格子我通过一个数组去管理它,在初始化过程中需要通过棋盘的数据定义格子的位置。

FvwXAIgawiT4cdor23WJO6c0L8UV

选择框在初始化的时候不显示,在游戏开始的时候才显示。我们通过currentChoice来定义选择框当前的位置,当我们按方向键的时候,通过next方向数组去更新我们的currentChoice,接着更新选择框的位置。

FvSa8uQ8nhJXZ5QbsHv0Ru9cxnHK

通过xIsNext判断当前的玩家,如果这个格子没有落子,就执行落子的程序,并计算是否产生胜负。

FlHmJ8pNGgQYrs4Y6Xw9RJhzjwIR

胜负判定主要分为两个部分:第一、通过将格子数组中的信息与记录了所有胜利条件的数组进行查验,得出胜负结论。第二、通过判断步数是否等于9得出和棋结论。

FryLd54eJGf0Crk5A5_qTnmldMTf

真机演示

Fhp2hfCXVD4Pd21XNaSJunwuwFCSFt43VMNDCgllI3tTOJyyT00RBiEJFkvQN4MSRBUf4qaFTRM5jMcdxRDb

FoWEy0rV6V8SQEWg8J9kSpeciXxo

心得体会

这次开发板可以用JavaScript和Python来控制,降低了我学习硬件的门槛,虽然这次项目做的很简单,但是之后有时间了肯定还是会做更多有意思的游戏。

附件下载
arcade-Tic-Tac-Toe.uf2
固件
main.ts
源代码
团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号