CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

sudoku

butagaz
butagaz
Niveau 9
06 janvier 2006 à 23:13:34

Je programme un sudoku en java (en fait en C++ aussi).
L´interface est OK, je peux résoudre les grilles automatiqument (algorithme "dancing links" de Knuth) mais j´ai un problème pour générer des grilles de départ (à solution unique).
Quelqu´un aurait une idée ?

dnob700
dnob700
Niveau 10
06 janvier 2006 à 23:25:34

marrant, tout le monde utilise cet algo en ce moment pour ça...

Pour générer une grille de départ, tu pourrais remplir quelques cases aléatoirement, puis tu résout intégralement le sudoku si possible. S´il y a plusieurs solution, tu rajoutte des cases dans tes conditions de départ (et vice versa s´il n´y en a pas).

Jusqu´à arriver à une conditions de départ qui ne permet de trouver qu´une seule solution.
A ce moment là, tu peut enlever de ta conditions de départ le plus de case possible mais en permettant quand même de résoudre le sudoku.

Pour évaluer la difficulté du jeu, ce que je fait c´est de compté le nombre d´hypothèse que doit faire le logiciel pour résoudre la grille. Bien sûr c´est pas terrible car les heuristique que j´utilise sont assez mauvaise donc mon programme fait bien plus d´hypothèse que l´humain le plus stupide, mais c´est quand même une approximation de la difficulté.

butagaz
butagaz
Niveau 9
06 janvier 2006 à 23:37:40

Je faisais à peu près ça sauf que je n´enlevais pas de cases après avoir trouvé ma grille de départ qui était quasi pleine.

Je pensais aussi à une autre solution. A partir d´une grille de départ quasi vide, je rajoute uniquement des hypothèses qui minimise le nombre de solutions possibles.

J´ai eu beau cherché sur le net mais je n´ai pas trouvé d´heuristique éprouvée pour ce problème.

En ce qui concerne le "dancing links", il est vraiment pas mal. L´heuristique est bidon (trial and error) mais l´implémentation est vraiment rapide. Même en Java, ça tourne en un temps tout à fait acceptable sur ma vieille machine. Je te le conseille.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment