我正在用python做一个简单的基于文本的宠物小精灵游戏。培训师有一个口袋妖怪物品清单。进行战斗时,我会使用随机数量的神奇宝贝制作新的教练。但是无论出于何种原因,培训师的宠物小精灵在游戏IE中都充满了其他宠物小精灵对象。
我已完成所有工作以解决此问题,我重新编写了一些东西,进行调试,精疲力尽,老实说,我什至问了一个有几年经验的朋友,他感到困惑,代码中没有错误。
P=Player()
class Trainer:
Team=List()
def TC(self):
T = Trainer()
amount = Rng(6)
while len(T.Team) <= amount:
Poke = Pokemon()
Poke.Name = " NotWild"
Poke.type = " L"
Poke.Level = Rng(math.floor(P.LevelMean))
Poke.Attack = Rng(6)
Poke.Defence = Rng(6)
Poke.Calc()
Poke.Heal()
T.Team.append(Poke)
for Poke in T.Team:
print(Poke.Name)
T.calcLM()
print("Trainer")
TrainerCombat(T, P.Team[P.n])
empty()
它创建一个Trainer对象。创建Rng(6)
个宠物小精灵,并将它们添加到T
。每张照片的名字都由团队组成,但是玩家Pokemon被添加以及它运行的一些荒野,没有错误会停止该程序,而不仅仅是不应该这样做,这会使您与自己的口袋妖怪战斗变得更加艰辛,我不知道为什么?
答案 0 :(得分:1)
尽管类Team
中的类变量Trainer
可能是demo,但是您的代码会引发错误,并且缺少部分内容,因此很难直接说出问题所在。
无论如何,这种设计对我来说并没有立即意义,因此我重写了一个可能对您有用的裸露骨骼:
import random
class Player:
def __init__(self):
self.team = []
class Pokemon:
def __init__(self, name, ptype, level, attack, defense):
self.name = name
self.ptype = ptype
self.level = level
self.attack = attack
self.defense = defense
def calc(self):
pass
def heal(self):
pass
def __str__(self):
return f'Pokemon {self.name}: type:{self.ptype}, level:{self.level}, attack:{self.attack}, defense:{self.defense}'
class Trainer:
pass
def create_player_team(player):
amount, maxval = 6, 6
while len(player.team) < amount:
name = "NotWild"
ptype = "L"
level = random.randrange(maxval)
attack = random.randrange(maxval)
defense = random.randrange(maxval)
player.team.append(Pokemon(name, ptype, level, attack, defense))
player = Player()
create_player_team(player)
for pok in player.team:
print(pok)