Skip to content

Kavelaa/connect4

Repository files navigation

我采用的技术栈

前端

TypeScript + React + Redux + Socket.io-client

后端

Koa + Socket.io

游戏玩法

类似于五子棋,横竖斜成 4 子连珠即胜。

不同的地方在于你无法指定具体位置,只能选择某一列,之后你的落子会直接下落到这一列目前的高度处。

算法设计

落子后,判断该落子的连珠可能,对这些可能存在的连珠进行遍历,比传统暴力遍历消耗更低。

优化机会

采用同样的思想,有机会使该算法通用化,使之可以适应任何的棋盘大小和连珠数量。实现一法通用。

通信

基于 Socket.io 的 rooms 与 id 特性,可以非常便利地应对多个对局同时进行的情况。每个玩家会被分配到与自身 id 同名的房间,通过分享链接的方式把邀请人的 id 传递给被邀请人,被邀请人点击链接后经过前端处理就会加入到邀请人的房间。独特、不可预料的 id 保证了链接不外泄情况下,房间最多只会存在两人,降低了玩家误操作以及作恶可能带来的影响。

About

a game

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors