python代码练习:石头剪刀布猜拳游戏

news2024/9/20 18:54:23

python代码练习:石头剪刀布猜拳游戏

  • 题目
  • 结果展示
  • 源代码

题目

使用Python实现人机石头剪刀布猜拳小游戏,并且最后能够统计分数和局数

结果展示

image-20230703164725215

源代码

# -*- coding: utf-8 -*-
# @Course : python 基础
# @Time : 2023/7/2 14:21
# @Author : Eden Wei
# @FileName: 石头剪刀布.py
# @Software: PyCharm 2022.1.3 (Professional Edition)
import random

player_score = 0
computer_score = 0
count = 0
print('''
* * * * * * * 欢迎来到4399游戏平台* * * * * * * 
              石头    剪刀    布               
* * * * * * * * * * * * * * * * * * * * * * * 
''')
player_name = input('请输入玩家姓名:')
print('1.貂蝉     2.曹操    3.诸葛亮')
computer_choice = input('请输入电脑角色:')
if computer_choice == '1':
    computer_choice = '貂蝉'
elif computer_choice == '2':
    computer_choice = '曹操'
elif computer_choice == '3':
    computer_choice = '诸葛亮'
else:
    print('选择错误,隐藏角色!')
    computer_choice = '匿名'
print(player_name, 'VS', computer_choice)
while True:
    count += 1;
    player_fist_choice = eval(input('----------请出拳:  1.石头   2.剪刀   3.布---------'))
    if player_fist_choice == 1:
        player_fist_name = '石头'
    elif player_fist_choice == 2:
        player_fist_name = '剪刀'
    elif player_fist_choice == 3:
        player_fist_name = '步'
    else:  # 用户输入的不是1,2,3,随机选择
        print('输入错误,随机选择')
        player_fist_choice = random.randint(1, 3)
        player_fist_name = ['石头', '剪刀', '布'].pop(player_fist_choice - 1)
    print(player_name, '出拳:', player_fist_name)
    # 电脑出拳
    computer_fist_choide = random.choice(['石头', '剪刀', '布'])
    print(computer_choice, '出拳', computer_fist_choide)

    # 判断结构,谁赢谁输,有三种结果,平,输,赢
    if computer_fist_choide == player_fist_choice:
        print('平局')
    elif (player_fist_choice == 1 and computer_fist_choide == 2) or \
            (player_fist_choice == 2 and computer_fist_choide == 3) or \
            (player_fist_choice == 3 and computer_fist_choide == 1):  # 玩家赢
        print(player_name, '大获全胜,不服再战啊')
        player_score += 1
    else:
        print(computer_choice, '胜利')
        computer_score += 1
    answer = input('再来一局不?y/n')
    if answer != 'y':
        break

# 判断总比分
# 判断总比分
print('-' * 100)
print(player_name, 'VS', computer_choice)
print(f'一共对战了:{count}局')  # 第一次直播讲了
print(player_name, '得分:', player_score)
print(computer_choice, '得分:', computer_score)
if player_score == computer_score:
    print('不分上下,平分秋色')
elif player_score > computer_score:
    print(player_name, '最终胜利')
else:
    print(f'大下无敌,我是:{computer_choice}')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/714628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7.2.2 【Linux】实体链接与符号链接:ln

在Linux下面的链接文件中有两种,一种是类似Windows的捷径功能的文件,可以快速链接到目标文件(或目录);另一种是通过文件系统的inode链接来产生新文件名,而不是产生新文件。这种称为实体链接(har…

【webrtc】nack学习笔记

本文大量参考了以下大神的文章,表示感谢:WebRTC 中的NackWebRTC之视频NackModuleWebRtc Video Receiver(三)-NACK丢包重传原理适用场景 Nack , 即丢包重传,在RTT小的情况下,是非常有效的错误恢复手段一般接收端会维护一个列表,用于记录收到的包的序列号,一般这个列表的长…

道路车辆 功能安全第1部分:术语

前言 本文件按照GB/T 1.1—2020《标准化工作导则 第1部分:标准化文件的结构和起草规则》的规定起草。 GB/T 34590-XXXX《道路车辆 功能安全》分为以下部分: —— 第1部分:术语; —— 第2部分:功能安全管理;…

【JUC进阶】09. 关于锁升级

目录 1、前言 2、回顾 2.1、对象头和内存布局 2.2、四大锁回顾 3、状态转换 3.1、锁状态 3.1.1、无锁状态 3.1.2、偏向锁状态 3.1.3、轻量级锁状态 3.1.4、重量级锁状态 3.2、状态转换条件 3.2.1、无锁 -> 偏向锁 3.2.2、偏向锁 -> 无锁 3.2.3、偏向锁 -&g…

SAP 查询字段所存在的表(增强定义)

T-CODE——axtshow DATA:lv_zzbranch TYPE ze_les_branch, ls_aet088 TYPE zlesaet088_bol_attr, lr_adminh TYPE REF TO cl_crm_bol_entity. lr_entity_relationv TYPE REF TO cl_crm_bol_entity. lr_entity_relationv lr_adminh->get_related_entity( …

15. 查询所有用户的连续登录两天及以上的日期区间

文章目录 题目需求思路一实现一题目来源 题目需求 从登录明细表(user_login_detail)中查询出,所有用户的连续登录两天及以上的日期区间,以登录时间(login_ts)为准。 期望结果如下: user_id (…

C#与C++编程环境对比:优点与应用场景详解

C#与C是两种常用的编程语言,它们在编程环境方面有一些相同点和不同点。首先,它们都可以用于开发跨平台的应用程序。其次,它们都具有强大的面向对象编程能力。但是,它们在语法、性能和应用领域等方面存在一些不同点 。 在语法方面…

编织魔法:探索Python字符串的奇幻世界

文章目录 前言什么是 python 字符串通过下标(索引)来访问字符串中的字符字符串的切片操作字符串常用的方法find() 查找子串index() 查找子串rfind() / rindex()count() 返回某个子串在字符串中出现的次数replace() 替换split() 按照指定字符分割字符串join() 用一个字符或者子串…

Debian 12 静态IP / 固定IP的设置

环境:Debian 12 amd64-lxde 局域网:PT925E电信光猫 手机APP 网络管家 一般用动态IP就可以了,但如果软件环境比较小众,问题就随之而来。起始问题:路由器无法解析设备名和IP,网络管家也不让设置固定IP&…

炫酷水球图:让数据可视化更生动有趣

水球图是一种独特而引人注目的数据可视化形式,通过模拟水球的形状和大小来展示数据的分布和比例关系。它以其生动的表现形式和直观的视觉效果,吸引了越来越多的关注和应用。在数据可视化领域,水球图为我们提供了一种直观、易于理解的方式来展…

实施供应商管理时常见的挑战及解决方案

供应商管理在现代商业环境中是很重要的,是企业在采购活动中的重要组成部分。采购组织必须确保其供应商得到妥善管理,以维持成功的工作关系。然而,管理好供应商是一项艰巨且具有挑战性的任务。 以下是采购组织常面临的挑战以及有效的解决方案。…

SNMP 计算机网络管理 实验1(二) 练习与使用Wireshark抓取SNMP数据包抓包之 任务三分析并验证TCP三次握手建立连接时三次握手工作过程

⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu &am…

您应该设置 Kubernetes CPU 限制吗?

管理Pod 和容器可用的资源是 Kubernetes 管理的最佳实践步骤。您需要防止 Pod 贪婪地消耗集群的 CPU 和内存。一组 Pod 的过度使用可能会导致资源争用,从而减慢相邻容器的速度并破坏主机的稳定性。 但 Kubernetes 资源管理经常被误解。提供了两种机制来控制分配:请求和限制。…

打jar包

pom文件指定打包的类型是jar&#xff0c;并指定启动主类 <packaging>jar</packaging><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>…

django要在books接口中不同数据的新类

要在books接口中添加一个处理不同数据的新类&#xff0c;并希望通过 Django 管理后台添加和显示这些数据&#xff0c;需要对三个文件进行修改 1.在 models.py 文件中添加新的模型类。 例如&#xff0c;假设您要添加一个名为 Category 的新模型&#xff1a; from django.db i…

Mac菜单栏图标管理软件 Bartender 4

Bartender 4是一款用于管理 macOS 系统状态栏图标的软件。它允许你自定义状态栏图标的显示和排序&#xff0c;帮助你更好地组织和管理你在状态栏中使用的应用程序和工具。 通过 Bartender 4&#xff0c;你可以隐藏或显示状态栏图标&#xff0c;以避免状态栏过多的图标拥挤在一起…

dbeaver远程数据库连接管理工具使用,数据库拒绝访问,用python远程访问postgre数据库

dbeaver软件 安装postgresql sudo apt-get update sudo apt-get install postgresql postgresql-client 修改postgresql密码,创建数据库 psql -U postgres ALTER USER postgres WITH PASSWORD new_password; CREATE DATABASE DB_NAME; \q 允许数据库被远程访问 点insert,加…

解决VS2013 C#无法联网搜索NuGet程序包的问题

1问题描述 2 结果办法 先打开程序包管理控制台 在程序包控制台输入后按回车&#xff1a;[Net.ServicePointManager]::SecurityProtocol[Net.ServicePointManager]::SecurityProtocol-bOR [Net.SecurityProtocolType]::Tls12 完成

7.1.6 Linux 文件系统的运行

所有的数据都得要载入到内存后CPU才能够对该数据进行处理。为了解决耗时等待磁盘的写入/读取上的问题&#xff0c;Linux使用的方式是通过一个称为非同步处理&#xff08;asynchronously&#xff09; 的方式。所谓的非同步处理是这样的&#xff1a; 当系统载入一个文件到内存后…

SAP ABAP结构复用的两种数据结构

一、定义结构中嵌套一层结构&#xff1a; 断点内表看结构是这样的&#xff1a; 二、定义结构中字段都放平层&#xff0c;注意那个include关键字的颜色&#xff0c;要变蓝色&#xff1a; 断点看内表结构&#xff0c;对了&#xff0c;就是我们想要的一层&#xff1a;