RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 960610
Accepted
Uncle_Ragnar
Uncle_Ragnar
Asked:2020-03-24 18:09:20 +0000 UTC2020-03-24 18:09:20 +0000 UTC 2020-03-24 18:09:20 +0000 UTC

如何简化条件

  • 772

有一个“程序”,其中有 Viking、Wizzard Assasin 类,然后应该形成两个团队 red_team 和 blue_team。每个团队可以有 3 个成员 dude, dude2, dude3 任务是随机分配类到 dude/2/3 变量。我是这样实现的:

chance = randint (1, 3)
If chance == 1:
    dude = Viking (name = 'Red Viking')
if chance == 2:
    dude = Wizzard (name = 'Red Wizzard')
if chance == 3:
    dude = Assasin  (name = 'Red Assasin')
red_taem.append (dude.name)

chance = randint (1, 3)
If chance == 1:
    dude2 = Viking (name = 'Red Viking')
if chance == 2:
    dude2 = Wizzard (name = 'Red Wizzard')
if chance == 3:
    dude2 = Assasin  (name = 'Red Assasin')
red_team.append (dude2.name)

chance = randint (1, 3)
If chance == 1:
    dude3 = Viking (name = 'Red Viking')
if chance == 2:
    dude3 = Wizzard (name = 'Red Wizzard')
if chance == 3:
    dude3 = Assasin  (name = 'Red Assasin')
red_team.append (dude3.name)

而这种恐怖,只属于一队三人参赛!如果有20个呢?

实际上问题是:如何简化?为了不写10万行代码。

附言 如果您提供解决方案,请向我解释您的解决方案将如何工作。

类:实际上,这里仍然是 beleberd ...

class Viking:
    def __init__(self,  name):
        self.name = name
        self.hp = 100
        self.energy  = 100
        self.damage = 30
        self.block = 15
        self.role = 'tank'

class Assasin:
    def __init__(self, name):
        self.name = name
        self.hp = 100
        self.energy  = 100
        self.damage = 30
        self.block = 15
        self.role = 'ass'

class Wizzard:
    def __init__(self, name):
        self.name = name
        self.hp = 100
        self.energy  = 100
        self.damage = 30
        self.block = 15
        self.role = 'tank'
python
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    MaxU - stop genocide of UA
    2020-03-24T18:15:12Z2020-03-24T18:15:12Z

    函数random.choices(population, weights=None, *, cum_weights=None, k=1)返回从 中k随机选择的元素的列表population。

    例子:

    from random import choices
    
    def build_team(N, color):
        dudes = [Viking(name=f'{color} Viking'), 
                 Wizzard(name=f'{color} Wizzard'), 
                 Assasin(name=f'{color} Assasin')]
        return choices(dudes, k=N)
    
    red_team = build_team(3, 'Red')
    blue_team = build_team(3, 'Blue')
    

    更新:

    在打印类对象时获取名称 ( ) -为所有类self.name定义一个方法:__repr__()

    class Viking:
        def __init__(self,  name):
            self.name = name
            self.hp = 100
            self.energy  = 100
            self.damage = 30
            self.block = 15
            self.role = 'tank'
    
        def __repr__(self):
            return self.name
    
    v = Viking(name='Red Viking')
    print(v)
    # Red Viking
    
    • 3

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    根据浏览器窗口的大小调整背景图案的大小

    • 2 个回答
  • Marko Smith

    理解for循环的执行逻辑

    • 1 个回答
  • Marko Smith

    复制动态数组时出错(C++)

    • 1 个回答
  • Marko Smith

    Or and If,elif,else 构造[重复]

    • 1 个回答
  • Marko Smith

    如何构建支持 x64 的 APK

    • 1 个回答
  • Marko Smith

    如何使按钮的输入宽度?

    • 2 个回答
  • Marko Smith

    如何显示对象变量的名称?

    • 3 个回答
  • Marko Smith

    如何循环一个函数?

    • 1 个回答
  • Marko Smith

    LOWORD 宏有什么作用?

    • 2 个回答
  • Marko Smith

    从字符串的开头删除直到并包括一个字符

    • 2 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5