个人前后端完全独立开发项目,未上线。开发一款象棋h5, 支持自定义对局,双人对战,人机对战。技术栈前端用了vue3,ts,uniapp, 后端用了go, 其中使用了websocket, redis储存和订阅,通过docker部署到serverless。难点在于go的象棋人机算法的实现,我先计算出当前阵营的最优走法,然后采用了dfs+回溯的方法重复计算,从而得出人机的最优走法。亮点的地方有,对于每个棋子的状态,如是否存活,是否被选择,所属阵营之类,统一用一个二进制的变量控制,节约空间,更改和判断状态更加方便和明确。