用户:
ELA7096查看:47 回复:13 评论:47 创建时间:2023-01-17T15:46:11
铁盒五子棋是一个很好的游戏
它由hzCK制作(我感觉hzCK和他工作室里面的“童话式是一个人)
从寒假开始他就更新了S3赛季,坐上了首页的铁板凳
(前年暑假也是)
我从入站将近一年的时间里3/4都在研究“云变量”
所以我在脑子里已经想出了铁盒匹配游玩的做法
(以游戏源代码为准,以下仅供参考)
现在就开始介绍
首先是切屏,当你切屏时会有一个切屏提示
编程猫社区-切屏计算-少儿编程作品 (codemao.cn)
我的好像比他的检测要快???
这里,其实切屏检测没什么用,就是看着作品nb一点
然后是匹配架构
按下匹配时会进行匹配时的运行
先检测一个云列表中有没有他人匹配
如果有,就将自己的信息存储在那一对房间的列表区域里(一个奇数项,一个偶数项)
如果哪对项都不等于“0”或者都存着别人的信息(就是此房间已满)
会将你的个人信息存储在一个云列表中(单云)
然后如果你是奇数项“n”等到“n+1”项不等于0
进入游玩页面
先把你的信息和对手的信息用单云劈开存在一个叫信息的列表中打印信息
棋盘的底是角色,棋盘的线是画笔画的(为了好让棋子对齐)
然后有两个列表存储设定好的“X”“Y”坐标都为15项
每次按下鼠标比较XY坐标离哪一项XY坐标最近
(此定位方法多半不是hzCK的方法,供参考)
另一种是四舍五入方法,(鼠标的X坐标四舍五入,Y坐标四舍五入)
然后发送锁定的棋子位置(在云变量或云列表中(估计是云变量,因为只有7个房间,其实是云列表也行下棋没有对更新速度要求那么高))
以“棋子类型,X,Y”单云存到对应房间的变量内
当对方检测到自己房间的云变量更新(检测更新应该都会做)而且棋子类型不为自己的棋子类型,就用单云劈开,克隆棋子移到劈开的“X”“Y”中,再在自己和对手那里存下这一步棋子的“X,Y”这就完成了一步棋
然后每下完一步棋(不管自己还是对手),都检测这步棋的八个方向内是否有同类棋子可以5个连成线
(可以想成在棋子上画一个米字格,以棋子为中心检测米字格的四条线,这四条:— \ | / 按坐标检测)
如果出现检测棋子类型,发送敌方或我方胜利,进行结算
途中退出用对方检测自己(这个还没有想通,但是我有一个方法,个人信息最后加一个当前秒的计时器,当对手计时器停了就代表对手逃逸),对方在一个单云中存下对方ID于是下次挂机对手回来了检测此单云中是否有自己ID,如果有就扣信誉分,然后清零这一项单云,执行以上直到没有自己ID(这句话估计hzCK没有,因为大概率用不上不会出现两次逃逸)
前1000名排名是用自己的私有分数比较一个存储在云列表中(会点C++或者Kitten比较好的应该都会,我懒得说了)制作的排名
应该没有什么漏说的了就这些了
hzCK还有一个很重要的没有剖析到,那就是在对局的时候,当到“我”下棋时会倒计时对吧,“我”可以切屏来让程序冻结,等我过了60秒再切屏回去,我的界面会显示我还有60秒,而对手却显示我超时了,然后我也等着对手超时,造成双赢
点赞0
评论