python基础练习(猜拳游戏、扎金花游戏、购物小程序)

2023-11-01

猜拳游戏

需求分析:
* 使用面向对象和python的基础语法,运用简单的逻辑处理实现猜拳游戏
* 要求游戏可以多次玩耍
* 要求统计分数
* 要求可以选择角色

# 玩家自己的类,
class Owns():
        chose = {1: "石头", 2: "剪刀", 3: "布"}
        def __init__(self, name, race):
            self.name = name
            self.race = race
            self.score = 0
        def playgame(self):
            while True:
                print("游戏规则:")
                for index,i in self.__class__.chose.items():
                    print(f"{index}:{i}",end="\t")
                print()
                chose = input("请输入您的选择>>>")
                if chose.isdigit() and 1 <= int(chose) <= 3:
                    chose = int(chose)
                    print(f"您选择了{self.__class__.chose[chose]}")
                    return chose
                else:
                    print("输入有误")
        def __str__(self):
            return f"我方>>>>>>姓名:{self.name}\t种族:{self.race}"
# 定义电脑玩家的类
class Computer(Owns):
        super(Owns)
        def __str__(self):
            return f"敌方>>>>>>姓名:{self.name}\t种族:{self.race}"
# 游戏逻辑处理
class Game():
        race = {1: ("人族", "仁爱而睿智"), 2: ("羊族", "温顺而纯洁"), 3: ("天族", "高贵而强悍")}
        def myrole_generator(self, name, race):
            return Owns(name, race)
        def computer_generator(self, name, race):
            return Computer(name, race)
        def chose_role(self):
            while True:
                for index, i in self.__class__.race.items():
                    print(f"{index}:{i[0]}~~~{i[1]}")
                chose = input("请选择您的种族>>>")
                if chose.isdigit() and 1 <= int(chose) <= 3:
                    name = input("请设计您的名字>>>")
                    my1 = self.myrole_generator(name, self.__class__.race[int(chose)][0])
                    chose = input("请选择对战电脑的种族>>>")
                    if chose.isdigit() and 1 <= int(chose) <= 3:
                        name = input("请设计电脑的名字>>>")
                        com1 = self.myrole_generator(name, self.__class__.race[int(chose)][0])
                    else:
                        print("输入错误,请重新输入")
                        continue
                else:
                    print("输入错误,请重新输入")
                    continue
                return my1, com1
        def play(self):
            while True:
                print("欢迎来到猜拳游戏,祝您玩的开心(*^▽^*)")
                lisrole = self.chose_role()
                my1 = lisrole[0]
                com1 = lisrole[1]
                print("对战信息>>")
                print(my1, com1, sep="\n")
                print("<<<<<<<游戏开始>>>>>>>")
                import random
                flag = True
                while flag:
                    mychose = my1.playgame()
                    comchose = random.randint(1, 3)
                    print(f"电脑选择了{com1.__class__.chose[comchose]}")
                    if mychose == comchose:
                        print("平局")
                    elif mychose == 1 and comchose == 2 or mychose == 2 and comchose == 3 or mychose == 3 and comchose == 1:
                        my1.score += 1
                        print("您赢了")
                    else:
                        com1.score+=1
                        print("您输了,2233333333333")
                    while True:
                        chose = input("是否继续愉快的玩耍Y(继续)/N(退出)/S(重新选择角色),????")
                        if chose.isalpha() and chose.upper() == "N":
                            print(f"对战信息:\n{my1.name}:{my1.score}\n{com1.name}:{com1.score}")
                            print("猜拳游戏结束,欢迎下次来happy~~~~~")
                            exit()
                        elif chose.isalpha() and chose.upper() == "Y":
                            break
                        elif chose.isalpha() and chose.upper() == "S":
                            print(f"当前对战信息:\n{my1.name}:{my1.score}\n{com1.name}:{com1.score}")
                            flag = False
                        else:
                            continue
                    if flag == False:
                        break
# 主函数,调用端口
 a1 = Game()
 a1.play()

扎金花游戏

需求:
编写程序,设计单张扑克牌类Card,具有花色,牌面与具体值。
同时设计整副扑克牌类Cards,具有52张牌。li=[1,2,3] li=[card1,card2,card3…]
红桃、黑桃、方片、草花 2345678910JQKA
♥♠♦♣
设计一个发牌的函数,可以任意发出三张牌。
对任意三张牌断定牌的类型。
类型包括:
三条:三张牌value一样
一对:两张value一样
顺子:三张牌挨着
同花:三张牌type一样
同花顺:挨着,类型一样
其余都是散牌

# 单张扑克类
class card():
    def __init__(self,type,value,tvalue):
        self.type = type
        self.value = value
        self.tvalue = tvalue
    def __str__(self):
        return f"[{self.type}{self.value}]"
# 扑克牌的类
class cards():
    def __init__(self):
        types = "♥♠♦♣"
        values = [i for i in range(2,11)] +list("JQKA")
        self.lis = []
        for i in types:
            for index,j in enumerate(values):
                self.lis.append(card(i,j,index+2))
        self.li = []
    def deal(self):
        self.li = []
        import random
        for i in range(3):
            index = random.randint(0, len(self.lis) - 1)
            self.li.append(self.lis.pop(index))
        return self.li
# 玩家类  和   电脑玩家类
class Owns():
    def __init__(self, name, race):
        self.name = name
        self.race = race
    def __str__(self):
        return f"我方>>>>>>姓名:{self.name}\t种族:{self.race}"
    def playgame(self,li):
        print("您的牌如下:")
        for index,i in enumerate(li):
            print(f"{index+1}:{i}")
        chose = input("您可以选择Y(比牌)/N(放弃)>>>")
        if chose.isalpha() and chose.upper() == "Y":
            return True
        else:
            return False
class Computer(Owns):
    super(Owns)
# 逻辑处理类,游戏规则制定
class Game():
    race = {1: ("人族", "仁爱而睿智"), 2: ("羊族", "温顺而纯洁"), 3: ("天族", "高贵而强悍")}
    def myrole_generator(self, name, race):
        return Owns(name, race)
    def computer_generator(self, name, race):
        return Computer(name, race)
    def chose_role(self):
        while True:
            for index, i in self.__class__.race.items():
                print(f"{index}:{i[0]}~~~{i[1]}")
            chose = input("请选择您的种族>>>")
            if chose.isdigit() and 1 <= int(chose) <= 3:
                name = input("请设计您的名字>>>")
                my1 = self.myrole_generator(name, self.__class__.race[int(chose)][0])
                chose = input("请选择对战电脑的种族>>>")
                if chose.isdigit() and 1 <= int(chose) <= 3:
                    name = input("请设计电脑的名字>>>")
                    com1 = self.myrole_generator(name, self.__class__.race[int(chose)][0])
                else:
                    print("输入错误,请重新输入")
                    continue
            else:
                print("输入错误,请重新输入")
                continue
            return my1, com1

    def getResult(self,li):
        li.sort(key=lambda k: k.tvalue)
        one = li[0]  # type,value,real_value
        second = li[1]
        third = li[2]
        if one.value == second.value == third.value:
            return  "三条"
        elif one.value == second.value or second.value == third.value:
            return "一对"
        elif (one.type == second.type == third.type) and (
                one.tvalue + 1 == second.tvalue and second.tvalue + 1 == third.tvalue):
            return "同花顺"
        elif one.tvalue + 1 == second.tvalue and second.tvalue + 1 == third.tvalue:
            return "顺子"
        elif one.type == second.type == third.type:
            return "同花"
        else:
            return "散牌"
    def play(self):
        while True:
            print("欢迎来到炸金花炸死你游戏,祝您玩的开心(*^▽^*)")
            lisrole = self.chose_role()
            my1 = lisrole[0]
            com1 = lisrole[1]
            print("对战信息>>")
            print(my1, com1, sep="\n")
            print("<<<<<<<游戏开始>>>>>>>")
            while True:
                cards1 = cards()
                li = cards1.deal()
                flag = my1.playgame(li)
                if flag == True:
                    li1 = cards1.deal()
                    dresult = self.getResult(li1)
                    myresult = self.getResult(li)
                    if dresult == myresult:
                        if li > li1:
                            print(f"your is {myresult},he/she is {dresult}")
                            print("对方的牌:")
                            for index, i in enumerate(li1):
                                print(f"{index+1}:{i}")
                            print("您的牌:")
                            for index, i in enumerate(li):
                                print(f"{index+1}:{i}")
                            print("恭喜你,你赢了,666")
                        else:
                            print(f"your is {myresult},he/she is {dresult}")
                            print("对方的牌:")
                            for index, i in enumerate(li1):
                                print(f"{index+1}:{i}")
                            print("您的牌:")
                            for index, i in enumerate(li):
                                print(f"{index+1}:{i}")
                            print("哈哈哈哈,你输了,223333333")
                    else:
                        if myresult == "三条":
                            print(f"your is {myresult},he/she is {dresult}")
                            print("恭喜你,你赢了,666")
                        elif myresult == "同花顺" and dresult != "三条":
                            print(f"your is {myresult},he/she is {dresult}")
                            print("恭喜你,你赢了,666")
                        elif myresult == "同花" and dresult not in ["三条", "同花顺"]:
                            print(f"your is {myresult},he/she is {dresult}")
                            print("恭喜你,你赢了,666")
                        elif myresult == "顺子" and dresult not in ["三条", "同花顺", "同花"]:
                            print(f"your is {myresult},he/she is {dresult}")
                            print("恭喜你,你赢了,666")
                        elif myresult == "一对" and dresult not in ["三条", "同花顺", "同花", "顺子"]:
                            print(f"your is {myresult},he/she is {dresult}")
                            print("恭喜你,你赢了,666")
                        elif myresult == "散牌":
                            print(f"your is {myresult},he/she is {dresult}")
                            print("哈哈哈哈,你输了,223333333")
                    chose = input("您要继续愉快的玩耍么?>>>Y/N/exit")
                    if chose.upper() == "Y":
                        continue
                    elif chose.upper() == "N":
                        print("重新开局中~~~~~")
                        break
                    elif chose.upper() == "EXIT":
                        print("游戏结束,欢迎下次来受虐")
                        exit()
                else:
                    print("重新开局中~~~~~")
                    break
# 游戏入口
g1 = Game()
g1.play()

小型购物系统

需求:
要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车

shopping_list = [
        ("苹果手机", 5000),
        ("破手机壳", 48),
        ("电纸书facebook", 9800),
        ("华为手机", 4800),
        ("python书籍", 32),
        ("垃圾一堆", 24)
]
#购物车
shopping_cart = []
salary = input('请输入您的总资产: ')
#如果不是数字
if not salary.isdigit():
        print("总资产必须是数字,请重新输入")
        #中断程序
        exit()
else:
    #将资产转化为十进制
        salary = int(salary)
while True:
        print("-----------产品列表-----------")
        for index, item in enumerate(shopping_list):
                #print("\033[32m%s, %s\033[0m" %(index, item))
            print(f"\033[32m{index},\033[10m{item}")
        choice = input('请选择您要购买的东西>>>')
        if choice.isdigit():
                choice = int(choice)
                if choice < len(shopping_list) and choice >= 0:
                        product = shopping_list[choice]
                        if salary > product[1]:
                                confirm = input('您想现在购买这个商品么?[y/n]: ')
                                if confirm == 'y':
                                        shopping_cart.append(product)
                                        salary -= product[1]
                                        print(f"您买了 {product[0]},价格是 {product[1]}, 您剩余 {salary}")
                                else:
                                        print('请再次选择')
                        else:
                                add_confirm = input(f"您的余额为: {salary}, 不够, 您想充钱么?[y/n]")
                                if add_confirm == 'y':
                                        add_salary = input('请输入您要充的钱: ')
                                        if add_salary.isdigit():
                                                add_salary = int(add_salary)
                                                salary += add_salary
                                                print(f"现在您的余额是{salary}: ")
                                        else:
                                                print("钱数必须是数字")
                                else:
                                        print("------您的购物车---------")
                                        for index, item in enumerate(shopping_cart):
                                                print(index, item)
                else:
                        print("您必须选择0~5以内的商品")
        elif choice == 'q':
                remove_product = input("您现在要删除产品还是退出 [y/n] ")
                if remove_product == "y":
                        print("-----------购物车列表-------------: ")
                        for index, item in enumerate(shopping_cart):
                                print(index, item)
                        remove_choice = input('请选择您要删除的商品>>> ')
                        if remove_choice.isdigit() and int(remove_choice) < len(shopping_cart) and int(remove_choice) >= 0:
                                salary += shopping_cart[int(remove_choice)][1]
                                del shopping_cart[int(remove_choice)]
                                print("-----------新的购物车列表-------------: ")
                                for index, item in enumerate(shopping_cart):
                                        print(index, item)
                                print(f"your balance is {salary}")
                        else:
                                print("input error, again")
                else:
                        print("exit now")
                        exit()

        else:
                print("-----------购物车列表-------------: ")
                for index, item in enumerate(shopping_cart):
                        print(index, item)
                print("\033[31m选择必须是数字,退出\033[0m")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python基础练习(猜拳游戏、扎金花游戏、购物小程序) 的相关文章

  • Python3.8.1的安装和运行

    01Python 3 8 1的安装和运行 在Windows10系统下安装python 1 1访问www python org网站 在浏览器地址栏中输入www python org访问网站 1 2下载python版本 根据自己的需要或者喜好下
  • 【python基础】猜数字游戏

    前言 相信很多人都玩过猜数字游戏 游戏规则也十分简单 还记得小时候我经常和朋友一起玩 我们在桌上摆放一些1 100以内的数字卡片 一个人随机抽取一张卡片 这里不许偷看卡片内容 首先这个人随机猜一个数字 然后其他人会告诉你猜大了还是猜小了 先
  • .numpy()、.item()、.cpu()、.clone()、.detach()及.data的使用 && tensor类型的转换

    文章目录 numpy item cpu clone detach 及 data的使用 item cpu numpy clone detach data data和 detach 不同点 Tensor类型的转换 numpy item cpu
  • 如何在Anaconda安装Pygame

    开始之前 先来安装Pygame 可使用pip模块来帮助下载安装python包 要安装Pygame 需在终端提示符下执行如下命令 python m pip install user pygame 对于下载了anaconda用户 可按以下操作
  • 剑指offer面试题【14】----剪绳子【Python】【动态规划】【贪婪算法】

    题目描述 给你一根长度为n的绳子 请把绳子剪成m段 m和n都是整数 n gt 1并且m gt 1 每段绳子的长度记为k 0 k 1 k m 请问k 0 k 1 k m 可能的最大乘积是多少 例如 当绳子的长度为8时 我们把它剪成长度分别为2
  • pycharm使用中的小tip

    1 双击shift会弹出全局搜索功能 关闭 双击shift 打开全局搜索 action gt registry 找到ide suppress dounle hangler勾上 重新打开 ctrl shift a 2 快速格式化代码 ctrl
  • python基础01元组 函数

    1 可变类型的数值变化 是通过方法来实现的 2 如果给一个可变类型的变量 赋值一个新的数据 引用 id 会修改 3 不可变类型数据可以作为字典的键值对key 可变类型不能 元组 小括号 只可增删不可修改 函数 def print menu
  • 自学笔记-Python基础09--第三方库的概念及操作

    库 具有相关功能模块的集合 python的一大特色就是拥有强大的库 库可以分为三种 1 标准库 python自带的 无需安装直接使用 2 第三方库 由他人提供的 使用时需要先安装 3 自定义库 自己写的模块 自己用 标准库 想看python
  • 把代码做成笔记——Jupyter Notebook

    此文章首发于微信公众号Python for Finance 链接 https mp weixin qq com s KDCmpgwPbvrkRIuojtLpNg 什么是Jupyter Notebook Spyder Spyder代码编辑区
  • Python基础11 (End)

    Python基础11 End 学习11 第七章 模块 module 1 模块化 module 程序设计理念 1 Python 程序由模块组成 一个模块对应 python 源文件 一般后缀名是 py 2 模块由语句组成 运行 Python 程
  • 吴恩达机器学习笔记:手搓线性回归(梯度下降寻优)

    概念就不介绍了 记录下公式推导和代码实现 以及与最小二乘的比较 吴恩达老师课程中使用一个参数theta保存两个变量 不过我好像没把中间变量的形状对齐 所以最后实现了两个参数的版本 代码 import time import numpy as
  • python 读取dll、exe文件版本终极方案

    网上找到的大都是调用win32api 但是这个api很多dll识别失败了 推荐使用wind32com 它兼容性比较强 1 使用win32api import os import win32api def getFileVersion fil
  • Python的10个常用代码简写技术

    今天我给大家整理了一份10个程序员常用的代码简写技术 看懂一种是入门 全懂就是大神 你能知道几个呢 1 三元操作符 当想写if else语句时 使用三元操作符来代替 const x 20 let answer if x gt 10 简写 c
  • Python之sys模块详解

    sys模块 sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分 常见用法 sys argv 命令行参数List 第一个元素是程序本身路径 sys modules keys 返回所有已经导入的模块列表 sys exc
  • Python-字典:键值对的魔法世界

    深入理解Python字典 键值对的魔法世界 在Python中 字典 Dictionary 是一种强大且常用的数据结构 它允许我们存储和组织键值对 Key Value 数据 与列表和元组不同 字典中的数据是无序的 但每个数据都与一个唯一的键相
  • Mysql数据库的环境搭建【详细】

    作者简介 大学机械本科 野生程序猿 学过C语言 玩过前端 还鼓捣过嵌入式 设计也会一点点 不过如今痴迷于网络爬虫 因此现深耕Python 数据库 seienium JS逆向 安卓逆向等等 目前为全职爬虫工程师 学习的过程喜欢记录 目前已经写
  • python笔记:python的优点

    pyhon语言的优点 1 简单易用 2 提供了大量的功能类库 3 python具有语言兼容性 4 具有跨系统移植能力 5 代码免费开源
  • python opencv卡尺测量边缘距离

    opencv 卡尺法 测量边缘距离 参考来源 https github com crackwitz metrology demo 前言 一 测量方法 二 测量步骤 1 获取直线的像素 2 高斯滤波平滑曲线 3 计算跳变幅度值 4 计算距离值
  • R基础(一)- R版本升级、现有版本查看

    R版本升级 系统 WINDOWS 方式 推荐打开RGui界面进行升级 而不要再RStudio中直接输入命令 包 installr 代码 安装包 如果已经有此包可跳过此步骤 install packages installr 加载包 升级 l
  • mayavi TypeError: unsupported operand type(s) for -: ‘str‘ and ‘str‘

    目录 mayavi安装报错 模拟异常 TypeError unsupported operand type s for str and str 模拟异常 TypeError unsupported operand type s for st

随机推荐

  • flutter实现APP版本更新(全局弹窗overlay实现)

    升级说明 Android 应用内更新下载 安装 iOS 跳转到appstore下载安装 注 可以通过热更新技术进行升级 我不会 引用插件 获取当前版本 package info 0 4 3 2 版本内更新 ota update 2 4 1
  • Mac下终端(Terminal)中打开某应用的技巧

    Mac下一般都是点击某一个应用的图标 或者在Alfred中键入应用名称打开该应用 但有时候在终端执行某些代码 此时想打开程序 以上操作都不流畅 所以琢磨能否在终端下直接打开某些程序 比如要 编辑路径下的shell脚本文件 但又不想使用vim
  • 基于Stable Diffusion的AIGC服饰穿搭实践

    本文主要介绍了基于Stable Diffusion技术的虚拟穿搭试衣的研究探索工作 文章展示了使用LoRA ControlNet Inpainting SAM等工具的方法和处理流程 并陈述了部分目前的实践结果 通过阅读这篇文章 读者可以了解
  • python爬虫学习笔记-requests高级

    简历模板下载拓展 import requests from lxml import etree import os headers User Agent Mozilla 5 0 Macintosh Intel Mac OS X 10 15
  • http与websocket

    http与websocket HTTP 是一个在计算机世界里专门在两点之间传输文字 图片 音频 视频等超文本数据的约定和规范 WebSocket是HTML5出的东西 协议 也就是说HTTP协议没有变化 或者说没关系 但HTTP是不支持持久连
  • 小程序中使用CANVAS实现手写签名并写入模板图片中

    实测 开发者工具中滚动条位置会影响书写 显示会有些问题 并且会卡顿 安卓 苹果手机上测试正常 index js const App getApp Page 页面的初始数据 data curScrollTop 0 生命周期函数 监听页面加载
  • python计时模块——timeit

    timeit模块 timeit 模块定义了接受两个参数的 Timer 类 两个参数都是字符串 第一个参数是你要计时的语句或者函数 传递给 Timer 的第二个参数是为第一个参数语句构建环境的导入语句 从内部讲 timeit 构建起一个独立的
  • PWM驱动MOS管H桥电路分析

    H桥是一个典型的直流电机控制电路 因为它的电路形状酷似字母H 故得名与 H桥 4个三极管组成H的4条垂直腿 而电机就是H中的横杠 注意 图中只是简略示意图 而不是完整的电路图 其中三极管的驱动电路没有画出来 01 H桥驱动原理 1 电机驱动
  • 网络安全-文件包含漏洞原理、攻击及防御

    目录 简介 类型 原理 攻击 仅本地文件包含 防御 简介 文件包含 是一个功能 在各种开发语言中都提供了内置的文件包含函数 可以使开发人员在一个代码文件中直接包含 引入 另外一个代码文件 类型 根据不同的配置环境 文件包含漏洞分为如下两种情
  • Qt - QLabel设置字体颜色

    Qt QLabel设置字体颜色 第一种 使用setPalette 方法如下 QLabel label new QLabel tr Hello Qt QPalette pe pe setColor QPalette WindowText Qt
  • 等级保护2.0四级通用要求测评方法

    等级保护2 0四级通用要求测评方法
  • Python 使用 smtp ssl 模式 发送邮件与附件

    参考 发送邮件简单入门 以qq邮箱 163邮箱为例 https blog csdn net qq 38661599 article details 81013834 smtp ssl 模式 发送邮件 与 附件 https www cnblo
  • Vue-组件之间的的数据传递

    目录 组件的使用 注册全局组件 props组件 组件之间样式冲突问题 父 子关系传递 子 父关系传递 兄弟之间的传递 ref引用 什么是组件 只要是 vue后缀的文件都是一个组件 而组件之间是独立的 相互之间没有关系 当在使用组件的时候 根
  • 数据库 数据结构设计实验报告 包括er图转关系模式

    年级 班号 组号 学号 专业 日期 姓名 实验名称 实验一 数据库设计 实验室 实验 目的 或 要求 1 通过了解具体的应用案例体验数据库的应用 以及数据库系统和应用程序之间的关联关系 从而进一步理解数据 数据库 DBMS基本概念知识 2
  • chatgpt赋能python:如何利用Python绘制窗口

    如何利用Python绘制窗口 作为一门高级编程语言 Python具备强大的绘图能力 可以用来创建各种窗口应用程序 本篇文章将介绍如何利用Python绘制窗口 并分析其在搜索引擎优化方面的作用 绘制窗口的基本步骤 要利用Python绘制窗口
  • 测试-python筑基1.1-(列表/元组/字典/集合/字符串)

    列表 列表 列表 一种将多个数据组合到一起的容器 标识符 关键字 list 给列表赋值变量名的时候 不要用关键字 list 1 定义一个空列表 list 2 1 2 3 4 5 定义一个有值的列表 不是数组 print type list
  • Spring+mybatis+Druid+AbstractRoutingDataSource配置多数据源切换进行读写分离

    自我理解是这样的 首先配置事务管理器设置设置方法是否是只读创建一个DynamicDataSourceTransactionManager的类继承DataSourceTransactionManager去重写doBegin与doCleanup
  • SPSS数据分析中出现的常见问题总结

    总结最近数据分析过程中遇到的一些问题的思考 1 问卷中多选题的录入与分析 2 数据分析流程的第一步 对所分析的样本数据本身的特征结构进行预分析 3 根据数据中的某个因素的几个水平来分析数据总体的差异性 4 根据数据中的变量之间的相关性 了解
  • 如何使用 MSYS2 编译最新版的 coreutils 源码(目前最新版本为 coreutils-9.4)

    文章目录 一 coreutils 源码下载 二 MSYS2 安装编译工具 1 pacman Suy 更新软件仓库 2 pacman S msys gcc 安装gcc 3 pacman S msys make 安装make工具 4 解压缩 c
  • python基础练习(猜拳游戏、扎金花游戏、购物小程序)

    猜拳游戏 需求分析 使用面向对象和python的基础语法 运用简单的逻辑处理实现猜拳游戏 要求游戏可以多次玩耍 要求统计分数 要求可以选择角色 玩家自己的类 class Owns chose 1 石头 2 剪刀 3 布 def init s