3.3 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 5e46f8d6ac417301a38fb92d | 剪刀石头布 | 10 | 462376 | rock-paper-scissors |
--description--
在这个挑战中,你将创建一个程序来玩石头、剪刀、布。 一个随机选取的程序通常会有 50% 的时间获胜。 要通过这一挑战,你的程序必须与四个不同的机器人进行对战,并达到至少 60% 胜率。
你将使用我们在 Replit 的初始化项目来完成这个项目。
- 首先在 Replit 中导入项目。
- 接着,你将看到一个
.replit窗口。 - 选择
Use run command并点击Done按钮。
我们仍在开发机器学习课程的交互式课程部分。 现在,你需要使用其他资源来学习如何通过这一挑战。
--instructions--
在文件 RPS.py 中,你会看到一个名为 player 的函数。 该函数接受一个参数,该参数是一个字符串,描述了对手的最后一步(“R”、“P” 或 “S”)。 该函数应返回一个字符串,表示它要播放的下一步动作(“R”、“P”或“S”)。
玩家函数将接收一个空字符串作为比赛中第一场比赛的参数,因为之前没有比赛。
文件 RPS.py 显示了一个你需要更新的示例函数。 示例函数使用两个参数定义(player(prev_play, opponent_history = []))。 该函数从不使用第二个参数调用,因此它是完全可选的。 示例函数包含第二个参数(opponent_history = [])的原因,是因为这是在连续调用 player 函数之间保存状态的唯一方法。 如果你想跟踪对手历史,你只需要 opponent_history 参数。
提示:为了打败所有四个对手,你的程序可能需要有多种策略,这些策略会根据对手的棋局而改变。
开发
不要修改 RPS_game.py。 在 RPS.py 中编写所有代码。 对于开发,你可以使用 main.py 来测试你的代码。
main.py 从 RPS_game.py 导入游戏功能和机器人。
要测试你的代码,请使用 play 函数玩游戏。 play 函数有四个参数:
- 两个玩家互相对战(玩家实际上是函数)
- 对战中的比赛场数
- 一个可选参数来查看每场比赛的日志。 将其设置为
True以查看这些消息。
play(player1, player2, num_games[, verbose])
例如,如果你希望 player 和 quincy 互相对战 1000 场比赛,并且你想查看每场比赛的结果,你将这样调用该函数:
play(player, quincy, 1000, verbose=True)
单击“运行”按钮,main.py 将运行。
测试
这个项目的单元测试在 test_module.py 中。 为了你的方便,我们将测试从 test_module.py 导入到 main.py。 如果你移除 main.py 中最后一行的注释,则只要你点击“运行”按钮,测试就会自动运行。
提交
Copy your project's URL and submit it to freeCodeCamp.
--hints--
它应该通过所有的 Python 测试。
--solutions--
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.