PYTHON随机发生器

2024-04-19 18:50:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为任务调用类构建一个随机类生成器。点击“generate”,它将生成一个随机类

我遇到了一个问题,当它涉及到杀死连胜。基本上,如果你在一行中获得3次杀戮,你可以使用你选择的杀戮条纹。然而,在3杀、4杀、5杀等情况下,你可以获得多次连击

因此,如果我只是建立一个所有杀死条纹的列表,并使用随机导入,它很可能会生成一些相同值的条纹;你不能在游戏中使用。它们必须是单独的值

我该如何应对?提前谢谢!以下是迄今为止我掌握的代码:

#this portion will generate the primary weapon

import random

primaryGun_list = ['AK-47', 'AN-94', 'AS VAL', 'CR-56 AMAX', 'FAL',
                   'FR 5.56', 'Grau 5.56', 'Kilo 141', 'M13', 'M4A1',
                   'Oden', 'FN SCAR 17', 'RAM-7', 'AUG', 'P90', 'MP5',
                   'Uzi', 'PP19 Bizon', 'MP7', 'Striker 45', 'Fennec',
                   'ISO', 'Model 680', 'R9-0', '725', 'Origin 12', 'VLK Rogue',
                   'JAK-12', 'PKM', 'SA87', 'M91', 'MG34', 'Holger-26', 'Bruen Mk9',
                    'FiNN LMG', 'Dragunov', 'HDR', 'AX-50', 'Rytec AMR', 'EBR',
                   'MK2 Carbine', 'Kar98k', 'Crossbow', 'SKS']

print("Primary Weapon:", random.choice(primaryGun_list))



#this portion will generate the secondary weapon

import random

secondaryGun_list = ['PILA', 'Strela-P', 'JOKR', 'RPG-7', 'X16', '1911',
                     '.357', 'M19', '.50 GS', 'Renetti', 'Riot Shield',
                     'Combat Knife', 'Kali Sticks', 'Dual Kodachis']

print("Secondary Weapon:", random.choice(secondaryGun_list))

      

#this portion will generate 'Perk 1'

import random

perk1_list = ['Double Time', 'Kill Chain', 'Scavenger', 'E.O.D.',
              'Cold-Blooded', 'Quick Fix']

print("Perk 1:", random.choice(perk1_list))



#this portion will generate 'Perk 2'

import random

perk2_list = ['Restock', 'Hardline', 'High Alert', 'Ghost', 'Pointman', 'Overkill']

print("Perk 2:", random.choice(perk2_list))



#this portion will generate 'Perk 3'

import random

perk3_list = ['Tune Up', 'Amped', 'Shrapnel', 'Battle Hardened', 'Spotter', 'Tracker']

print("Perk 3:", random.choice(perk3_list))



#this portion will generate the Lethal

import random

lethal_list = ['Claymore', 'Frag Grenade', 'Molotov Cocktail', 'C4', 'Semtex',
               'Throwing Knife', 'Proximity Mine', 'Thermite', 'Flaming Throwing Knife',
               'EHV Throwing Knife', 'Phlebotomist']

print("Lethal:", random.choice(lethal_list))



#this portion will generate the Tactical

import random

tactical_list = ['Flash Grenade', 'Stun Grenade', 'Smoke Grenade', 'Snapshot Grenade',
                 'Heartbeat Sensor', 'Stim', 'Decoy Grenade', 'Gas Grenade']

print("Tactical:", random.choice(tactical_list))



#this portion will generate the Field Upgrade(s)

import random

fieldUpgrade_list = ['Munitions Box', 'Recon Drone', 'Dead Silence', 'Stopping Rounds',
                     'Trophy System', 'Deployable Cover', 'Tactical Insertion', 'EMP Drone',
                     'Weapon Drop']

print("Field Upgrades:", random.sample(fieldUpgrade_list, 2))



#this portion will generate the 3 Killstreaks

#import random

#killstreak_list = ['

Tags: theimportrandomthiswillgeneratelist条纹
1条回答
网友
1楼 · 发布于 2024-04-19 18:50:27

首先,您只需要在程序开始时导入random一次。其次,最好使用子程序和外部文件.txt文件。这些文件必须与程序位于同一文件夹中,如下所示:

AK-47
AN-94
etc.

需要对列表中的所有部分执行此操作。为每个列表创建一个新文件。这一切加在一起,使您的代码更短,更容易理解。代码如下所示:

import random
from random import choice

#Makes the lists
def file_to_list(filename):
    thefile = open(filename,"r")
    rows = [line for line in thefile]
    thefile.close()
    for i,r in enumerate(rows):
        rows[i] = r.replace("\n","")
    return rows

#Using the subroutine
primary = file_to_list("primary.txt")
secondary = file_to_list("secondary.txt")
perk1 = file_to_list("perk1.txt")
perk2 = file_to_list("perk2.txt")
perk3 = file_to_list("perk3.txt")
lethal = file_to_list("lethal.txt")
tactical = file_to_list("tactical.txt")
field_upgrade = file_to_list("field.txt")
kill = file_to_list("killstreak.txt")

#Chooses the options for the class
p = choice(primary)
s = choice(secondary)
p1 = choice(perk1)
p2 = choice(perk2)
p3 = choice(perk3)
l = choice(lethal)
t = choice(tactical)
f = choice(field_upgrade)
for i in range(3):
    k = choice(kill)
    print("Killstreak:",k)

#Output
print("Primary Weapon:", p)
print("Secondary Weapon:", s)
print("Perk 1:", p1)
print("Perk 2:", p2)
print("Perk 3:", p3)
print("Lethal:", l)
print("Tactical:", t)
print("Field Upgrades:", f)

相关问题 更多 >