当前位置: 首页 > news >正文

python制作石头剪刀布

方法一:

import random

def rock_paper_scissors():
    user_score = 100
    computer_score = 100

    while user_score > 0 and user_score < 200:
        user_choice = int(input("请输入1(剪刀)、2(石头)、3(布):"))
        computer_choice = random.randint(1, 3)

        if user_choice == computer_choice:
            print("平局!")
        elif (user_choice == 1 and computer_choice == 3) or \
             (user_choice == 2 and computer_choice == 1) or \
             (user_choice == 3 and computer_choice == 2):
            user_score += 10
            computer_score -= 10
            print(f"你赢了!当前分数:你 {user_score} 分,电脑 {computer_score} 分。")
        else:
            user_score -= 10
            computer_score += 10
            print(f"你输了!当前分数:你 {user_score} 分,电脑 {computer_score} 分。")

        if user_score == 200:
            print("恭喜你,赢得了比赛!")
            break
        elif user_score == 0:
            print("很遗憾,你输了比赛。")
            break

rock_paper_scissors()

方法二:

import random as r        #引入random模块

pai=["石头","剪刀","布"]       #定义个数组

count=0          #定义count 用来计算一共出拳了多少次
pj=0                #定义pj  用来定义计算平局
sj=0                 #定义sj 用来计算你的胜局
shuju=0           #定义shuju 用来计算你的输局
pc_g=100         #设定电脑初始值100
ren_g=100         #设置你的初始值分为100
while True:
    s=input("请输入你的手势>>")
    if not s:                                   #判断如果 没有输入则退出循环
        break                                    #退出循环
    cp_s=r.choice(pai)                  #随机取列表的pai的值 相当于电脑随机出拳
    print(s,cp_s)                             #测试 打印你和电脑的各自结果
    cp_i=pai.index(cp_s)                 #通过列表值来获取值对应的索引号
    s_i=pai.index(s)
    print(s_i,cp_i)                                #打印出各自的索引号
    if ren_g==0 or ren_g==200:                  #判断  你的分如果是0 或者200
        break                                        #退出循环
    else: 
        if cp_i==s_i:                           #判断如果你和电脑出拳一样
            print("平局")
            pj+=1                          #平局数加1
            count+=1                      #总局数加1
            print(f"{ren_g}分")                     #打印出 你的分数
        elif cp_i==0:                            #判断如果 电脑是0
            if s_i==1:                             #再判断如果你是1
                print("pc win")               #电脑赢
                ren_g-=10                      #你的分数减1
                shuju+=1                         #输局加1
                count+=1                       #总局数加1
                print(f"{ren_g}分")            #打印你的分数
            else:
                print("you win")
                ren_g+=10
                sj+=1
                count+=1
                print(f"{ren_g}分")
        elif cp_i==1:
            if s_i==0:
                print("you win")
                ren_g+=10
                sj+=1
                count+=1
                print(f"{ren_g}分")
            else:
                print("pc win")
                ren_g-=10
                shuju+=1
                count+=1
                print(f"{ren_g}分")
        else:
            if s_i==0:
                print("pc win")
                ren_g-=10
                count+=1
                shuju+=1
                print(f"{ren_g}分")
            else:
                print("you win")
                ren_g+=10
                count+=1
                sj+=1
                print(f"{ren_g}分")

print(f"共{count}局, 胜局{sj},平局{pj}, 输局{shuju}")

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 气压测试实验(用IIC)
  • 【题解】CF1993D
  • 喧嚣漫天之际,重新审视以太坊的定位与路线图
  • 力扣移除元素(力扣题26)(插空找空位java)
  • 在虚拟机安装mysql数据库
  • 测试工程师学历路径:从功能测试到测试开发
  • selenium元素定位:元素点击交互异常解决方法
  • 计算机网络 --- 【1】欢迎来到计算机网络/计算机网络基本概念/计算机网络、互连网、互联网的区别
  • Vue的slot插槽(默认插槽、具名插槽、作用域插槽)
  • 微服务中间件之Nacos
  • JAVA 的excel数据批量导入解析 现在都用什么API工具 Apache POI 、EasyExcel 、easypoi有什么区别
  • java设计模式 桥接模式
  • kafka之视频和图片文件
  • 闯入清洁家电“诸神之战”的萤石,凭什么立足?
  • Python 工厂模式:构建灵活软件架构的秘密武器
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • Codepen 每日精选(2018-3-25)
  • CSS居中完全指南——构建CSS居中决策树
  • iOS 系统授权开发
  • Java比较器对数组,集合排序
  • jdbc就是这么简单
  • node学习系列之简单文件上传
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Web设计流程优化:网页效果图设计新思路
  • 开发基于以太坊智能合约的DApp
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 如何进阶一名有竞争力的程序员?
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 延迟脚本的方式
  • 源码安装memcached和php memcache扩展
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • # 职场生活之道:善于团结
  • #vue3 实现前端下载excel文件模板功能
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (12)目标检测_SSD基于pytorch搭建代码
  • (C++)八皇后问题
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (五)MySQL的备份及恢复
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .Net 4.0并行库实用性演练
  • .Net Core和.Net Standard直观理解
  • .NET 常见的偏门问题
  • .NET 分布式技术比较
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET项目中存在多个web.config文件时的加载顺序
  • .so文件(linux系统)
  • /bin/bash^M: bad interpreter: No such file or directory
  • [Angular] 笔记 7:模块