首页 > 编程语言 >【python】石头剪刀布,模拟十次并统计获胜次数

【python】石头剪刀布,模拟十次并统计获胜次数

时间:2024-09-22 14:24:29浏览次数:3  
标签:十次 return get python choice computer user print 剪刀

0a8d5751b37643dd9b885180457c2c94.png

解决问题

下面是一个使用Python编写的剪刀、石头、布游戏的程序,包含玩家与计算机对战和模拟计算机对战10次的功能。
import random

def get_computer_choice():
    return random.randint(0, 2)

def get_user_choice():
    choice = input("请输入剪刀(0)、石头(1)、布(2): ")
    while choice not in ['0', '1', '2']:
        choice = input("输入无效,请输入剪刀(0)、石头(1)、布(2): ")
    return int(choice)

def determine_winner(user_choice, computer_choice):
    if user_choice == computer_choice:
        return "平局,要不再来一局!"
    elif (user_choice == 0 and computer_choice == 2) or \
         (user_choice == 1 and computer_choice == 0) or \
         (user_choice == 2 and computer_choice == 1):
        return "恭喜,你赢了!"
    else:
        return "Game over!"

def play_game():
    user_choice = get_user_choice()
    computer_choice = get_computer_choice()
    print(f"你的选择: {user_choice} (剪刀:0, 石头:1, 布:2)")
    print(f"计算机的选择: {computer_choice} (剪刀:0, 石头:1, 布:2)")
    result = determine_winner(user_choice, computer_choice)
    print(result)

def simulate_games(num_simulations):
    wins = 0
    losses = 0
    draws = 0
    for _ in range(num_simulations):
        user_choice = random.randint(0, 2)
        computer_choice = get_computer_choice()
        result = determine_winner(user_choice, computer_choice)
        if result == "恭喜,你赢了!":
            wins += 1
        elif result == "Game over!":
            losses += 1
        else:
            draws += 1
    print(f"模拟{num_simulations}次后的结果:")
    print(f"玩家赢: {wins}次")
    print(f"玩家输: {losses}次")
    print(f"平局: {draws}次")

if __name__ == "__main__":
    play_game()
    simulate_games(10)

代码解释

1.  导入模块:
import random

导入Python的random模块,用于生成随机数。

2.  获取计算机的选择:
def get_computer_choice():
    return random.randint(0, 2)

get_computer_choice函数用于生成计算机的随机选择(0, 1, 2)。

3.  获取用户的选择:
def get_user_choice():
    choice = input("请输入剪刀(0)、石头(1)、布(2): ")
    while choice not in ['0', '1', '2']:
        choice = input("输入无效,请输入剪刀(0)、石头(1)、布(2): ")
    return int(choice)

get_user_choice函数用于获取用户输入的选择,并确保输入有效。

4.  判断胜负:
def determine_winner(user_choice, computer_choice):
    if user_choice == computer_choice:
        return "平局,要不再来一局!"
    elif (user_choice == 0 and computer_choice == 2) or \
         (user_choice == 1 and computer_choice == 0) or \
         (user_choice == 2 and computer_choice == 1):
        return "恭喜,你赢了!"
    else:
        return "Game over!"

determine_winner函数用于判断用户和计算机的胜负关系。

5.  进行游戏:
def play_game():
    user_choice = get_user_choice()
    computer_choice = get_computer_choice()
    print(f"你的选择: {user_choice} (剪刀:0, 石头:1, 布:2)")
    print(f"计算机的选择: {computer_choice} (剪刀:0, 石头:1, 布:2)")
    result = determine_winner(user_choice, computer_choice)
    print(result)

play_game函数用于进行一次游戏,获取用户和计算机的选择,判断胜负并输出结果。

6.  模拟游戏:
def simulate_games(num_simulations):
    wins = 0
    losses = 0
    draws = 0
    for _ in range(num_simulations):
        user_choice = random.randint(0, 2)
        computer_choice = get_computer_choice()
        result = determine_winner(user_choice, computer_choice)
        if result == "恭喜,你赢了!":
            wins += 1
        elif result == "Game over!":
            losses += 1
        else:
            draws += 1
    print(f"模拟{num_simulations}次后的结果:")
    print(f"玩家赢: {wins}次")
    print(f"玩家输: {losses}次")
    print(f"平局: {draws}次")

simulate_games函数用于模拟多次游戏,统计玩家的胜负和平局次数。

7.  主程序:
if __name__ == "__main__":
    play_game()
    simulate_games(10)

在主程序中,首先调用play_game函数进行一次游戏,然后调用simulate_games函数模拟10次游戏。

 

标签:十次,return,get,python,choice,computer,user,print,剪刀
From: https://blog.csdn.net/2401_87245171/article/details/142435805

相关文章

  • Python中的同一运算符与整数缓存问题
    在Python中,is运算符与==运算符的使用常常引发混淆。特别是在处理小整数时,Python会进行整数缓存,以提高性能。本文将深入探讨同一运算符(is)与相等运算符(==)的区别,并详细阐述整数缓存的问题,通过具体的代码示例和运行结果来帮助理解。1.同一运算符与相等运算符is运算符:判断两个对象是否......
  • python函数一:函数的概念、函数定义与调用、函数的参数、函数的返回值、说明文档以及函
    文章目录1.函数介绍1.1函数的概念1.2函数定义与调用1.2函数的参数1.3函数的返回值1.4说明文档2.函数的嵌套调用2.1嵌套调用及执行流程2.2嵌套调用的应用1.函数介绍1.1函数的概念什么是函数?函数:是一个被命名的、独立的、完成特定功能的代码段,其可能......
  • Python module 的相对导入
    Pythonmodule的相对导入pythonmodulerelativeimport目录Pythonmodule的相对导入项目结构main.pypet.pycat.pydog.pypet/__init__.pyModuleNotFoundError:Nomodulenamed'pet'solution1solution2ImportError:attemptedrelativeimportwithnoknownparentpackag......
  • python+flask计算机毕业设计家庭财务管理系统APPy(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今社会,随着家庭经济活动的日益复杂和多元化,个人及家庭对于财务管理的需求日益增长。传统的手工记账方式已难以满足现代家庭对财务透明......
  • python+flask计算机毕业设计基于物联网技术的水质实时监测系统设计与实现(程序+开题+论
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着工业化进程的加速和人口的不断增长,水资源的保护与监测日益成为全球关注的重大课题。水质污染问题不仅......
  • python+flask计算机毕业设计快递代取小程序(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今社会,随着电子商务的蓬勃发展,快递业务量急剧增长,成为了人们日常生活中不可或缺的一部分。然而,随之而来的“取件难”问题也日益凸显,尤......
  • python+flask计算机毕业设计+Vue的残疾人再就业系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会经济的快速发展与人口老龄化的加剧,残疾人群体作为社会的重要组成部分,其就业问题日益凸显。传统就业市场往往因信息不对称、技能不......
  • python+flask计算机毕业设计+vue的服装售后服务系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电子商务的蓬勃发展,服装行业作为其中的重要组成部分,其售后服务质量已成为影响消费者购买决策的关键因素之一。传统的服装售后服务模式......
  • python+flask计算机毕业设计教师工作量统计系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在高等教育快速发展的今天,教师作为教育的核心力量,其工作量的准确统计与评估成为了高校管理中不可或缺的一环。传统的教师工作量统计方式往......
  • python+flask计算机毕业设计基于微信小程序的垃圾分类系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加快和居民生活水平的提高,垃圾产生量急剧增加,垃圾分类成为解决城市垃圾处理难题、促进资源循环利用的关键举措。然而,传统......