实现一个井字棋游戏,可参考 https://zh-hans.reactjs.org/learn/tutorial-tic-tac-toe# 要求如下:
-
仅对于当前移动,显示“你在移动#…”而不是按钮。
-
重写棋盘,使用两个循环来制作正方形,而不是硬编码它们。
-
添加一个切换按钮,使您可以按升序或降序对移动进行排序。
-
当有人获胜时,突出显示导致获胜的三个方块(当没有人获胜时,显示结果为平局的消息)。
-
在移动历史列表中以格式(行,col)显示每次移动的位置。
- 游戏可配置,支持快速拓展为五子棋(N 子)等等
- 胜利逻辑使用逻辑运算,而非示例中穷举
- 拆分组件
- 使用项目统一 Eslint 规则(npm 全局安装 ezeslint 包,然后在项目目录下直接执行 ezeslint ,选择对应选项即可)
- 使用 typescript
- 使用redux代替原有的历史记录state
- 优化棋子的渲染
- 集中管理 interface、type
- 组件命名
- 重写判断胜利的算法
- 原有函数组件改为class组件
- 使用redux代替原有的state