1 pièce(s) jointe(s)
Résoudre "Out Of Range" suivant plusieurs cas
Bonjour à tous :)
Je suis en train de programmer un jeu de Monopoly sur python 3.3.2, et je rencontre un problème pour terminer la fonction "Avancement".
J'ai crée cette fonction pour simuler le déplacement d'un joueur sur les 40 cases du Monopoly.
Concrètement, je fais évoluer aléatoirement un petit "1" dans une liste de taille 40.
Voici la fonction :
Pièce jointe 177224
Si l'image ne s'affiche pas, Voici la fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| def Avancement(L,Position): # L est ma liste simulant les 40 cases
k=0
if (Position!=0):
k=Position
L[Position]="-"
x=Dés() # Dés() est ma fonction qui génère aléatoirement un entier entre 2 et 12
if (Position<28):
L[k+x]=1
Position=k+x
AffichageListe(L)
else: # Cette condition permet d'éviter "list index out of range"
k=0
L[k+x]=1
Position=k+x
AffichageListe(L)
return Position
a=Avancement(Aj1,0) # Ici, je simule le parcours sur 20 lancés de dés
for k in range(20):
b=a
a=Avancement(Aj1,b) |
Et ce qui apparait dans la console ( Je remplacerai par la suite les "-" par des "0" ) :
( - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - )
( - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - )
( - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - )
( - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - )
( - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - )
( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - )
( - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - )
( - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - ) etc ...
Mon problème, c'est qu'avec cette méthode, la probabilité de tomber sur les 12 dernières cases du Monopoly est moins importante.
Comment puis-je donc faire ?
Je vous remercie par avance de votre aide ;)