9 程序 2:数据结构:一个代表棋盘的九元素向量。但是,我们不是在每个元素中使用 0、1 和 2,而是存储 2 表示空白、3 表示 X 和 5 表示 O 函数:Make2:如果中心方块为空白,则返回 5。否则返回任何其他空白方块 Posswin(p):如果玩家 p 在下一步中无法获胜,则返回 0;否则返回构成获胜动作的方块的编号。如果乘积为 18(3x3x2),则 X 可以获胜。如果乘积为 50(5x5x2),则 O 可以获胜。 Go(n): 在格子 n 中移动一步 策略: Turn = 1 Go(1) Turn = 2 如果 Board[5] 为空,则 Go(5),否则 Go(1) Turn = 3 如果 Board[9] 为空,则 Go(9),否则 Go(3) Turn = 4 如果 Posswin(X) 0,则 Go(Posswin(X)) 注释: 1. 时间效率不高,因为在每次移动之前必须检查多个条件。 2. 更容易理解程序的策略。 3. 难以概括。