项目52:简易石头剪刀布【源代码】 — 《跟着小王学Python·新手》
《跟着小王学Python》 是一套精心设计的Python学习教程,适合各个层次的学习者。本教程从基础语法入手,逐步深入到高级应用,以实例驱动的方式,帮助学习者逐步掌握Python的核心概念。通过开发游戏、构建Web应用、编写网络爬虫、制作桌面软件等多样化项目,学习者可以深入理解并实践Python知识。每周更新1至2篇内容,旨在助力学习者成长为全栈工程师。
作为课程作业或者毕设参考也是不错的选择
文章目录
- 项目52:简易石头剪刀布【源代码】 --- 《跟着小王学Python·新手》
- 目标
- 功能
- 设计
- 游戏规则
- 程序流程
- 实现步骤
- 代码实现
- 测试
- 注意事项
- 小结

目标
通过编写一个简易的石头剪刀布游戏,让 Python 新手熟悉基本的输入输出、条件判断、随机数生成等编程概念,同时锻炼逻辑思维和代码实现能力。

功能
- 玩家与计算机进行石头剪刀布的对决.
- 玩家可以通过输入选择石头、剪刀或布.
- 计算机随机生成石头、剪刀或布作为对手的选择.
- 根据石头剪刀布的规则判断胜负,并输出结果.
- 提供重新开始游戏的选项,方便玩家多次对战.
设计
游戏规则
- 石头胜剪刀,剪刀胜布,布胜石头.
- 玩家和计算机各出一种手势,比较后得出胜负.
- 若双方手势相同,则为平局.
程序流程
- 初始化:定义游戏的选项列表,包含石头、剪刀、布.
- 玩家输入:提示玩家输入选择(石头、剪刀或布),并进行有效性检查,确保输入合法.
- 计算机选择:使用随机数生成器从选项列表中随机选择一个手势作为计算机的选择.
- 判断胜负:根据玩家和计算机的选择,按照游戏规则判断胜负或平局,并输出结果.
- 重新开始:询问玩家是否重新开始游戏,若选择重新开始,则回到玩家输入步骤;否则,结束游戏.
实现步骤
- 导入需要的模块,如
random模块用于生成随机数. - 定义游戏选项列表和对应的规则字典.
- 编写函数获取玩家输入,并进行有效性检查.
- 编写函数生成计算机的随机选择.
- 编写函数判断胜负并输出结果.
- 编写主函数,控制游戏流程,包括重新开始的逻辑.
代码实现
import random
# 游戏选项列表
options = ["石头", "剪刀", "布"]
# 游戏规则字典
rules = {
"石头": "剪刀",
"剪刀": "布",
"布": "石头"
}
def get_player_choice():
"""获取玩家输入并进行有效性检查"""
while True:
player_choice = input("请选择石头、剪刀或布:")
if player_choice in options:
return player_choice
else:
print("输入无效,请重新输入!")
def get_computer_choice():
"""生成计算机的随机选择"""
return random.choice(options)
def determine_winner(player_choice, computer_choice):
"""判断胜负并输出结果"""
if player_choice == computer_choice:
print(f"平局!双方都选择了{player_choice}.")
elif rules[player_choice] == computer_choice:
print(f"你赢了!{player_choice}胜{computer_choice}.")
else:
print(f"你输了!{computer_choice}胜{player_choice}.")
def play_game():
"""主函数,控制游戏流程"""
while True:
player_choice = get_player_choice()
computer_choice = get_computer_choice()
print(f"计算机选择了{computer_choice}.")
determine_winner(player_choice, computer_choice)
play_again = input("是否重新开始游戏?(是/否):")
if play_again.lower() != "是":
break
# 开始游戏
print("欢迎来到石头剪刀布游戏!")
play_game()测试
- 正常情况测试:玩家分别选择石头、剪刀、布,验证程序能正确判断胜负和输出结果.
- 输入错误测试:玩家输入无效选项(如数字、特殊字符等),验证程序能提示输入无效并要求重新输入.
- 重新开始测试:在游戏结束后选择重新开始,验证程序能正确回到玩家输入步骤继续游戏.
注意事项
- 确保玩家输入的合法性,避免因输入错误导致程序异常.
- 代码中的注释要清晰明了,方便新手理解和学习.
- 可以根据需要增加更多的功能,如统计玩家的胜负次数等.
小结
通过本项目,我们学习了 Python 的基本语法和常用模块,掌握了如何编写一个简单的交互式游戏程序。希望新手们能够通过实践,进一步加深对 Python 编程的理解和应用能力。
















