项目2 电脑游戏中的人工智能

6. 活动4: 为电脑游戏编写人工智能程序

在这个活动中,学生们将看到另外两个简单但比剪刀石头布更复杂的游戏。这两个程序的代码来自 Al Sweigart 的书《用 Python 发明你自己的电脑游戏》。在这个活动中,学生应该思考如何编写简单的人工智能程序,以及使用哪种类型的人工智能游戏方法: FSM,MCTS,行为树,或神经网络。根据学生的经验,班级的规模,和时间的数量,学生可以完成一个或两个选项作为个人,小组,或作为一个整个班级。同样,虽然这些程序是用 Python 编写的,但是具有基本编码技能和基于文本的语言背景知识的学生也能够理解所提供的简单命令和注释。

1.让学生用Trinket.io与电脑玩Tic-Tac-Toe 游戏,通读代码,然后指导学生检查90-117行,看看电脑玩家的人工智能是如何编程的。

  • 电脑玩家是怎么选择的?答案: 电脑使用的是一个关于现状的决策树,在状态的基础上(顺序:如果它可以在那个回合赢得比赛,如果对手可以赢,或者角、中或边是空闲的),它会有行动。
  • 计算机玩游戏的策略是什么?答案:如果在那个回合它不能赢得比赛,它将阻止对手得到三个连续,或者选择最好的可用空间。
  • 用什么类型的算法来编写人工智能程序?答案: 简单的FSM算法。

2.让学生玩 Reversegram (Reversi 或 Othello 的一个版本),指导学生检查162-82行,看看计算机的人工智能是如何编程的。

  • 这个程序是如何选择玩什么的?答案: 第162-82行是计算机用来决定哪些动作会导致最高的翻转次数的决策树。
  • 玩的策略是什么?答案: 第一个策略是捕捉一个角落(168-71) ; 第二个策略是选择翻转结果最高的动作(174-82)。
  • 用哪种算法编写AI程序?答案: 这是一个简单的蒙特卡罗树搜索,从所有可能的步骤中得出最优步骤。