many chore
This commit is contained in:
FallenYing
2023-07-28 23:20:46 +08:00
parent 50c8ebb126
commit 38a91c62e7
13 changed files with 365 additions and 361 deletions

View File

@@ -1,8 +1,9 @@
# 项目Tic-Tac-Toe 井字棋
我们为你提供了一个简单有趣的项目,帮助你进行知识巩固,请认真阅读文档内容。
::: warning 😋 我们为你提供了一个简单有趣的项目,帮助你进行知识巩固,请认真阅读文档内容。
如果你卡住了,请记得回来阅读文档,或请求身边人的帮助。
:::
::: tip 📥
本节附件下载 <Download url="https://cdn.xyxsw.site/code/1-Projects.zip"/>
@@ -10,13 +11,13 @@
`pip3 install -r requirements.txt`
# 理解
## 理解
- 这个项目有两个主要文件:`runner.py``tictactoe.py``tictactoe.py` 包含了玩游戏和做出最佳动作的所有逻辑。`runner.py` 已经为你实现,它包含了运行游戏图形界面的所有代码。一旦你完成了 `tictactoe.py` 中所有必需的功能,你就可以运行 `python runner.py` 来对抗你的人工智能了!
- 让我们打开 `tictactoe.py` 来了解所提供的内容。首先我们定义了三个变量X、O 和 EMPTY以表示游戏的可能移动。
- 函数 `initial_state` 返回游戏的启动状态。对于这个问题,我们选择将游戏状态表示为三个列表的列表(表示棋盘的三行),其中每个内部列表包含三个值,即 X、O 或 EMPTY。以下是我们留给你实现的功能
# 说明
## 说明
- 实现 `player`, `actions`, `result`, `winner`, `terminal`, `utility`, 以及 `minimax`.
@@ -46,7 +47,7 @@
- 否则,如果游戏仍在进行中,则函数应返回 `False`
- `utility` 函数应接受结束棋盘状态作为输入,并输出该棋盘的分数。
- 如果 X 赢得了比赛,则分数为 1。如果 O 赢得了比赛,则分数为-1。如果比赛以平局结束则分数为 0。
- 如果 X 赢得了比赛,则分数为 1。如果 O 赢得了比赛,则分数为 -1。如果比赛以平局结束则分数为 0。
- 你可以假设只有当 `terminal(board)` 为 True 时,才会在棋盘上调用 `utility`
- `minimax` 函数应该以一个棋盘作为输入,并返回玩家在该棋盘上移动的最佳移动。
@@ -55,7 +56,7 @@
- 对于所有接受棋盘作为输入的函数,你可以假设它是一个有效的棋盘(即,它是包含三行的列表,每行都有三个值 X、O 或 EMPTY。你不应该修改所提供的函数声明每个函数的参数的顺序或数量。、
- 一旦所有功能都得到了正确的实现,你就应该能够运行 `python runner.py` 并与你的人工智能进行比赛。而且,由于井字棋是双方最佳比赛的平局,你永远不应该能够击败人工智能(尽管如果你打得不好,它可能会打败你!)
# 提示
## 提示
- 如果你想在不同的 Python 文件中测试你的函数,你可以用类似于 `from tictactoe import initial_state` 的代码来导入它们。
- 欢迎在 `tictactoe.py` 中添加其他辅助函数,前提是它们的名称不会与模块中已有的函数或变量名称冲突。