我目前在python上制作基于文本的游戏,我有一个问题。 我有一些房间的课程,如RoomSpider,RoomSoldier,RoomDragon等。我想创建一个地图(3d数组)并用一个随机类的实例填充一些房间。
例如:
[[RoomSpider, RoomSoldier],
[RoomSoldier,RoomDragon]]
如何创建随机类的实例?
答案 0 :(得分:3)
制作随机类的实例:
import random
classes = (RoomSpider, RoomSoldier, RoomDragon,
RoomElephant, RoomPixie)
# choose a random class from the list and instantiate it
instance = random.choice(classes)()
答案 1 :(得分:1)
看看random.choice
,它可以让您从序列中选择一个随机元素。
from random import choice
classes = (RoomSpider, RoomSoldier, RoomDragon, ...)
room = [[choice(classes)() for _ in range(2)] for __ in range(2)]
答案 2 :(得分:1)
类是Python中的第一类对象,这意味着您可以将它们存储在变量中并传递它们。因此,例如,您可以创建所有可能类的列表/元组,然后选择随机类:
import random
room_classes = (RoomSpider, RoomSoldier, RoomDragon)
room_map = []
for row in range(5):
room_row = []
for col in range(5):
room_class = random.choice(room_classes) # picks a random class
room_row.append(room_class()) # creates an instance of that class
room_map.append(room_row)
这使用random.choice()
生成一组5x5随机选择的实例。