2012-06-10 1 views
1

J'ai travaillé sur un jeu de cartes en python 3.2 et je ne suis pas sûr de savoir comment instancier des joueurs séparés. Le jeu peut avoir de 2 joueurs à 8 joueurs. Je pensais que je pouvais utiliser la force brute et avoir quelque chose comme:Comment instancier un nombre inconnu d'instances dans python3.2

players = int(input('how many players?:)) 
    if players ==2: 
     p1 = Player() 
     p2 = Player() 
    elif players ==3: 
     p1 = Player() 
     p2 = Player() 
     p3 = Player() 
    elif players ==4: 
     p1 = Player() 
     p2 = Player() 
     p3 = Player() 
     p4 = Player() 

etc ...

qui semble sale. Existe-t-il une façon plus simple de contourner ce problème?

Merci.

Répondre

1

Utilisez une liste et une boucle:

players = int (input ('how many players?: ')) 
if not 2 <= players <= 8: 
    <raise an exception or something> 

p = [] 
for _ in range (players): 
    p.append (Player()) 

Maintenant, vous avez une liste de joueurs que vous pouvez faire ce que vous aimez avec.

+0

Et cela bien sûr aurait besoin d'un essai/attraper autour de la première ligne pour si l'utilisateur met quelque chose de stupide. Et toutes sortes d'autres vérifications d'entrée sont toujours recommandées, bien que je suppose que c'est un type de programme de hack-together-for-fun, donc vous pouvez probablement vivre sans lui. – lxop

Questions connexes