Takuzu / Principes

Published on : 10/02/24

I recieved a Computer Science Assignment, it is a Takuzu for school and I will be working with another person on it.

Written by Aline | Co-authored by Olivier

Python's logo

Takuzu

NSI

Computer Science

French

Updated 05/04/24

Solveur Takuzu

Rappel des règles

Une grille incomplète de taille 4x4 à 12x12 constituée de 0 et de 1, a compléter suivant les principes suivants :


Formats

Grille

La grille est un fichier texte (.txt)

Constituée de 0, 1 ou 9 pour représenter une case vide
Une liste de liste représentant le fichier :
liste[[ligne1], [ligne2], [ligne...], [ligne n]]
Dans laquelle chaque sous liste représente une ligne et chaque élément des sous-listes représentent l’élément à l’emplacement liste colonne, le nombre de sous-listes équivaut au nombre de lignes (et de colonnes)

Fichiers :
1 Fichier pour le Generateur de Grille
1 Fichier pour le Solveur de Grille
1 Fichier pour le code partagé entre

Generateur de grille

La grille jouable est stockée dans un fichier texte (.txt) sous la forme de n lignes de n chiffres ou les chiffres sont soit des 0, des 1 ou des 9 (9 représentant une case vide) et n est la taille de la grille

Methode utilisée

On génère une grille vide de taille x*x puis on génère la liste de toutes les combinaisons possibles pour la grille ( 2**x possibilités ), on réduit la taille de la liste des combinaisons possible a une liste de toutes les combinaisons valides pour une grille de takuzu (vérification des règles). Remplissage de la grille avec cette methode. Puis on effectue des rotations de la grille pour vérifier les lignes/colonnes et modifier au besoin avec une ligne valide si la ligne est fausse. Le générateur fonctionne très bien avec des grilles 4 et 6, mais prends plus d’une minute 30 pour effectuer une grille 8. Le problème ne viens plus des vérifications et modifications mais d’optimisation du code.

Difficultées de la grille

Plusieures Difficultées :

IdLevelModifiers
1Easy ++retire 20% de la grille
2Easyretire 35% de la grille
3Medretire 50% de la grille
4Difficultretire 65% de la grille
5Hardretire 80% de la grille
6 (Bonus)HURT ME PLENTYretire 95% de la grille

Todolist générateur :

StatusTaskSous-tache ?
✔️(kinda)générateur
✔️grille vide✔️ (générateur)
✔️remplissage grille✔️ (générateur)
✔️ajout difficultee✔️ (générateur)

Solveur

Soon™

Fonctions partagées entre les fichiers

Stoqué dans le fichier shared.py