Bonjour,
À la base j'ai ce code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # -*- coding : utf-8 -*- from random import randint class Terrain: def __init__(self, largeur, hauteur): self.largeur = largeur self.hauteur = hauteur self.terrain = [[0] * self.largeur] * self.hauteur def display(self): for ligne in self.terrain: print(ligne) def place_mines(self, nombre=10): for y in range(self.hauteur): for x in range(self.largeur): self.terrain[y][x] = 9 if randint(0, 9) == 9 else 0 t = Terrain(6, 6) t.display() print("----------------") t.place_mines() t.display() |
J'aimerais obtenir quelque chose comme ça, où les 9 sont disposés aléatoirement à travers le Terrain
, qu'il puisse y en avoir plusieurs par lignes/colones:
1 2 3 4 5 6 7 8 9 10 11 12 13 | [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] ---------------- [9, 0, 0, 9, 0, 0] [0, 0, 0, 0, 9, 0] [9, 0, 0, 9, 0, 0] [9, 0, 0, 0, 0, 9] [0, 9, 0, 0, 0, 0] [0, 0, 9, 0, 0, 0] |
Mais à la place j'obtiens toujours les 9
sur une même colonne, ou pas de 9
du tout (ce qui est quand même assez improbable au vu du nombre de case):
1 2 3 4 5 6 7 8 9 10 11 12 13 | [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0] ---------------- [9, 0, 0, 0, 0, 0] [9, 0, 0, 0, 0, 0] [9, 0, 0, 0, 0, 0] [9, 0, 0, 0, 0, 0] [9, 0, 0, 0, 0, 0] [9, 0, 0, 0, 0, 0] |
Ai-je mal compris un fonctionnement du module random ? De ce je pense comprendre, je ne suis pas censé obtenir le résultat que j'ai, donc il y a probablement une erreur dans mon raisonnement mais où (telle est la question ) ?
Merci d'avance
+0
-0