C'est une grille de 10x10 (ou moins pour les enfants, mais on va dire 10x10)
sur chaque ligne doivent se trouver autant de 0 que de 1 (= 5 de chaque)
pareil pour les colonnes
il ne doit pas y avoir plus de 2 0 ou 1 qui se suivent, en ligne ou en colonne
le but du jeu c'est de créer des grilles automatiques, en partie pré-remplies comme dans l'exemple joint
et aussi le solver permettant de les résoudre...
p'têt que ça existe, mais sans doute pas sous Excel
Y a-t-il un super programmeur ou un super formuliste (pour la partie résolution de grille) intéressé???
Merci Staple, c'est la grille qui figure dans mon classeur, la seule que j'ai trouvée puisque ce jeu génère toujours la même grille!
La grille proposée par Piga obtient le même décodage par mon classeur que par celui de PierreJean. Piga, peut-on savoir d'où provient cette grille ? ..
Sub grille()
Dim t$, tt$, i, j
t = "$B1$F1$I2$C3$D3$D4$H4$I4$G7$D9$I9B10D10I10"
tt = "$G3$B4$C6$H6$C8$G8"
For i = 1 To Len(t) Step 3
Range(Mid(t, i, 3)) = 0
Next i
For j = 1 To Len(tt) Step 3
Range(Mid(tt, j, 3)) = 1
Next j
End Sub
EDITION: version enregistreur de macro (finalement plus rapide )
Code:
Sub Macro3()
' Macro3 Macro
' Macro enregistrée le 29/07/2011 par EXCEL
Range("B1,F1,C3,D3,I2,D4,H4,I4,G7,D9,I9,B10,D10,I10") = "0"
Range("B4,G3,H6,C6,C8,G8") = "1"
End Sub
Ci-joint une nouvelle version incluant la génération de grille. La résolution a été améliorée et a passé le test pour les les 5 grilles proposées sur ce fil.
Il reste des points à améliorer.
Du nettoyage de code d'abord.
Surement des maladresses qui traînent.
J'ai l'impression que la résolution v2 examine, pour une grille de taille n, n^2 possibilités au lieu de n...
Il faudra trouver d'autres tests pour la résolution v1 ce qui entrainera automatiquement un plus grand intérêt aux grilles générées.
Je transmet quand même cette version, fonctionnelle, en pensant à la pauvre Cathy qui se morfond à Toulouse...
J'ai piqué à Pierre-Jean l'idée de la couleur et du RAZ.
@Staple : Je ne sais pas non. Sur mon fichier, à partir du moment ou tu as généré au moins une grille d'une certaine taille (disons 10), tu trouveras une feuille masquée nommée Taz10C. Celle ci contient déjà toutes les lignes (et donc colonne) possibles pour cette catégorie de jeu. Ça peut être un bon point de départ pour ce calcul. Pour info ce nombre est 14 pour les grilles de 6, 34 (8), 84 (10), 208 (12).
Mettre une grille vide et demander la résolution devrait théoriquement générer toutes les combinaisons (avec les réserve du post précédent). Hélas on est en dépassement de capacité (erreur 7)
Cordialement
KD
Edit : Ah oui, pardon, comment lire les feuilles TazNC :
Les colonnes de 1 à n/2 sont la position des 1 et donc les colonnes de n/2+1 à n sont les positions des 0.
Merci pour le lien. Je viens de me rendre compte que la résolution v2 de ta grille 'macro' du post 21 plaçait trois 1 côte à côte. Je serais (très) intéressé de savoir si tu sais si cette grille à une solution ou pas. J'aurais tendance à préférer à ce que ce résultat implique que la grille est impossible (ou à la rigueur à plusieurs résultat). Cordialement
KD
Ps : j'ai utilisé ton premier code pour la générer
Non pas 84 grilles, 84 schéma de lignes/colonnes différentes utilisées... D'un certain point de vue 42 même puisque par exemple le schéma 12468_35790 est le miroir du 35790_12468
Oups merci JCGL, déjà que je lui pique des idées.... Avec mes excuses Pierre-Jean. Je corrige le post en question.
Histoire de rester dans le sujet du jeu, je pense avoir un autre angle d'attaque pour la résolution. Plutôt que d'attaquer toujours par le nord et sur tout le front je vais tenter de cibler les points faibles en direct. Si ça marche je vais pouvoir supprimer les messages demandant de patienter.