Matrix pour binero
Leo
-
vortex -
vortex -
Bonjour tout le monde,
Je travailles pour la toute première fois sur du Python, je dois réaliser un jeu qui s'appelle (Binairo ou Binero en Français) ou bien Takuzo game.
je bloque sur la création de la matrix qui dois se faire avec les conditions suivantes:
Pas plus de deux 0 ou deux 1 consécutifs.
Chaque ligne et chaque colonne contiennent autant de 0 que de 1.
Deux lignes ou deux colonnes ne peuvent être identiques.
quelqu'un connaitrait une source ou une proposition pour réaliser la matrix?
Merci d'avance et excellente journée :)
Je travailles pour la toute première fois sur du Python, je dois réaliser un jeu qui s'appelle (Binairo ou Binero en Français) ou bien Takuzo game.
je bloque sur la création de la matrix qui dois se faire avec les conditions suivantes:
Pas plus de deux 0 ou deux 1 consécutifs.
Chaque ligne et chaque colonne contiennent autant de 0 que de 1.
Deux lignes ou deux colonnes ne peuvent être identiques.
quelqu'un connaitrait une source ou une proposition pour réaliser la matrix?
Merci d'avance et excellente journée :)
A voir également:
- Binero bloqué
- Code puk bloqué - Guide
- Téléphone bloqué code verrouillage - Guide
- Pavé tactile bloqué - Guide
- Compte gmail bloqué - Guide
- Windows update bloqué - Guide
3 réponses
Bonjour,
...la création de la matrice qui doit se faire ...
tu as essayé quelque chose ?
que sais tu faire en Python?
sais-tu faire une interface graphique ?
...la création de la matrice qui doit se faire ...
tu as essayé quelque chose ?
que sais tu faire en Python?
sais-tu faire une interface graphique ?
Bonjour Phil merci pour ta réponse,
j'ai essayé hier de générer une matrice en random en utilisant numpy:
parents = []
unique_found = False
while not unique_found:
candidate_array = np.random.choice([0, 1], size=(CELL,CELL))
if not any((candidate_array == x).all() for x in parents):
[(i, j) for i, j in enumerate(candidate_array)]
unique_found = True
parents.append(candidate_array)
ca retourne :
[[0 0 0 1 0 1]
[1 0 0 1 1 1]
[0 0 0 0 1 0]
[1 0 0 0 1 0]
[0 1 1 1 1 1]
[0 1 1 0 1 1]]
or ça ne remplis pas les conditions du jeu, j'essaye de trouver un moyen de le faire autrement car, j'ai l'impression que je dois passer par du backtracking pour ça.
si non pour l'interface graphique c'est en pygame pour cela pas de souci :)
j'ai essayé hier de générer une matrice en random en utilisant numpy:
parents = []
unique_found = False
while not unique_found:
candidate_array = np.random.choice([0, 1], size=(CELL,CELL))
if not any((candidate_array == x).all() for x in parents):
[(i, j) for i, j in enumerate(candidate_array)]
unique_found = True
parents.append(candidate_array)
ca retourne :
[[0 0 0 1 0 1]
[1 0 0 1 1 1]
[0 0 0 0 1 0]
[1 0 0 0 1 0]
[0 1 1 1 1 1]
[0 1 1 0 1 1]]
or ça ne remplis pas les conditions du jeu, j'essaye de trouver un moyen de le faire autrement car, j'ai l'impression que je dois passer par du backtracking pour ça.
si non pour l'interface graphique c'est en pygame pour cela pas de souci :)
Bonsoir,
Ton code est bien trop simple et ne gère pas les cas de figures, et oui, l'idéal et surtout pour des raisons de performances est d'utiliser du backtracking.
Car sans (j'ai rapidement fait un code à l'arrache), pour une grille de 8x8 ça doit tourner autour des 500 générations en moyenne pour trouver une grille valide, mais ça monte rapidement dans les tours pour les tailles supérieures, parfois plus de 100 000 pour du 12x12... Donc pas viable d'attendre aussi longtemps juste pour faire ça. La contrainte la plus élevée est surtout que le nombre de 0 et 1 doivent être identique dans chaque lignes et colonnes, sinon ça roulerait parfaitement en terme de perfs sans ça.
Ton code est bien trop simple et ne gère pas les cas de figures, et oui, l'idéal et surtout pour des raisons de performances est d'utiliser du backtracking.
Car sans (j'ai rapidement fait un code à l'arrache), pour une grille de 8x8 ça doit tourner autour des 500 générations en moyenne pour trouver une grille valide, mais ça monte rapidement dans les tours pour les tailles supérieures, parfois plus de 100 000 pour du 12x12... Donc pas viable d'attendre aussi longtemps juste pour faire ça. La contrainte la plus élevée est surtout que le nombre de 0 et 1 doivent être identique dans chaque lignes et colonnes, sinon ça roulerait parfaitement en terme de perfs sans ça.
"Pas plus de deux 0 ou deux 1 consécutifs.
Chaque ligne et chaque colonne contiennent autant de 0 que de 1.
Deux lignes ou deux colonnes ne peuvent être identiques."
Ok, mais comme tu remplis les cases avec des nombres tirés au hasard, remplir les conditions ne peut pas se faire tout seul ...
Chaque ligne et chaque colonne contiennent autant de 0 que de 1.
Deux lignes ou deux colonnes ne peuvent être identiques."
Ok, mais comme tu remplis les cases avec des nombres tirés au hasard, remplir les conditions ne peut pas se faire tout seul ...