5作者: 0xCA1EB大约 1 个月前原帖
在2025年,我和家人一直在玩一种名为OK Play的五子棋游戏。为了方便我们随时玩(比如在孩子们睡觉后用手机玩),我还制作了一个网页版。 游戏的目标是第一个将五个棋子连成一线(无论是水平、垂直还是对角线)。在游戏的第一阶段,玩家轮流将棋子放置在已有棋子旁边(必须是边对边;不能仅通过角对角的方式放置棋子)。当玩家的棋子用完后,游戏进入移动阶段:玩家可以拿起自己已有的棋子,并按照之前的放置规则进行重新放置。在移动阶段,玩家不能移动会导致其他棋子断开的棋子。游戏按照玩家的顺序继续进行,直到有人获胜。 我使用Elixir的Phoenix框架和Daisy UI / Tailwind CSS进行样式设计来编写这个应用。该应用通过Gigalixir的慷慨免费计划进行部署。我并不是前端开发者或设计师,所以肯定有比我实现的方式更好的方法。我主要关注的是让它适合移动设备,并支持明暗模式。由于我们只在我们的手机(iPhone 13 Pro,Safari / Chrome)和我的电脑(MacBook Pro,Safari)上进行了测试,可能会存在特定于浏览器或设备的bug。如果你有任何建议,无论是前端方面的还是其他方面的,我都很乐意听取! 开发这个应用的过程真是一段旅程。亮点包括学习五子棋及其变种、关节点(以及用于强连通分量的特拉扬算法)和蒙特卡洛树搜索算法(我最近为单人模式添加的中级“AI”模式)。低谷则主要与CSS相关。 我希望未来能添加一个“匹配”模式。不过我还没有深入研究通常是如何实现的,这将是一个很好的学习机会!