工作闲暇之余,琢磨了一下五子棋小游戏的实现,下面自己总结了一下大概的实现思路,仍有不足之处,还要学习ing.
页面图、没做适配、6正好😭五子棋游戏的玩法,横、纵、45°有连续的五颗棋子即胜利。我们知道这个之后,就方便缕清思路。我们可以给五子棋棋盘看成一个坐标系,每个棋子都有自己的坐标。我们只要计算出新添加棋子的坐标周围(即横、纵、45°)有连续的五颗棋子就OK。
看了网上一些实现的办法,这里说一下我自己的一些看法。我将新添加的每个棋子坐标周围的棋子的横纵坐标取出来,分别放在数组中。将得到的数组排序后,做等差判断,如果某个数组有连续的5颗棋子是差值为1的等差数(45°只是把横纵结合起来)即Win。
更新:
![Uploading 7E3A7748-D480-4DA2-A241-F5AE56BFC3F6_522215.png . . .]增加了局域网对战,利用UDP实现。UDP传输速度上比TCP快一点,但是容易丢包。
Demo截图
测试代码
if ([[PlayData shareDataManager] addPoint:CGPointMake(pointX, pointY) atRole:mine]) {
NSLog(@"棋子坐标添加");
if ([[PlayManager shareManager] finalWinAtRole:mine]) {
NSLog(@"赢了");
}
}
Demo中是写了实现的逻辑,可以简单的测试。
网友评论