Programmation sudoku
Résolu/Fermé
bibimul
Messages postés
30
Date d'inscription
mercredi 6 décembre 2017
Statut
Membre
Dernière intervention
18 mars 2022
-
Modifié le 16 févr. 2019 à 11:14
Utilisateur anonyme - 16 févr. 2019 à 22:42
Utilisateur anonyme - 16 févr. 2019 à 22:42
A voir également:
- Programmation sudoku
- Application de programmation - Guide
- Sudoku gratuit - Télécharger - Jeux vidéo
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Programmation carte à puce vierge ✓ - Forum Matériel & Système
2 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
16 févr. 2019 à 11:51
16 févr. 2019 à 11:51
Bonjour
Si tu veux qu'il reste identique.... il faut retirer le random.
Si tu veux qu'il reste identique.... il faut retirer le random.
Utilisateur anonyme
16 févr. 2019 à 12:10
16 févr. 2019 à 12:10
Bonjour
Il ne faut pas retirer le random, sinon plus rien ne marche.
Il faut le remplacer par une fonction qui redonne toujours la même liste de nombres (pseudo-) aléatoires.
Personnellement, pour faire la même chose, j'utilise la fonction Mash qu'on trouve dans ce site :
https://www.grc.com/otg/uheprng.htm
En changeant la 'graine' du générateur, tu peux obtenir d'autres séries de nombres aléatoires et donc d'autres parties de sudoku, toutes reproductibles si tu prends note de la graine utilisée.
Il ne faut pas retirer le random, sinon plus rien ne marche.
Il faut le remplacer par une fonction qui redonne toujours la même liste de nombres (pseudo-) aléatoires.
Personnellement, pour faire la même chose, j'utilise la fonction Mash qu'on trouve dans ce site :
https://www.grc.com/otg/uheprng.htm
En changeant la 'graine' du générateur, tu peux obtenir d'autres séries de nombres aléatoires et donc d'autres parties de sudoku, toutes reproductibles si tu prends note de la graine utilisée.
bibimul
Messages postés
30
Date d'inscription
mercredi 6 décembre 2017
Statut
Membre
Dernière intervention
18 mars 2022
>
Tsubi
16 févr. 2019 à 21:42
16 févr. 2019 à 21:42
et tu mettrais ça comment dans le code?
implémenter = ajouter
où mettre quoi? comment ?
Pour sauvegarder il faut que les valeurs existent, donc mettre ça après la création de données.
Pour charger il faut vérifier qu'il y ait bien une sauvegarde donc au lancement du programme à priori.
...ça c'est pour le code mais il faut bien sûr implémenter le bouton sauvegarder où le faire à chaque tour du joueur(quand il rajoute une réponse);le quoi et le comment c'est à vous de le définir. éventuellement renseignez vous sur la sérialisation et les formats comme JSon.
où mettre quoi? comment ?
Pour sauvegarder il faut que les valeurs existent, donc mettre ça après la création de données.
Pour charger il faut vérifier qu'il y ait bien une sauvegarde donc au lancement du programme à priori.
...ça c'est pour le code mais il faut bien sûr implémenter le bouton sauvegarder où le faire à chaque tour du joueur(quand il rajoute une réponse);le quoi et le comment c'est à vous de le définir. éventuellement renseignez vous sur la sérialisation et les formats comme JSon.
bibimul
Messages postés
30
Date d'inscription
mercredi 6 décembre 2017
Statut
Membre
Dernière intervention
18 mars 2022
>
Tsubi
16 févr. 2019 à 22:09
16 févr. 2019 à 22:09
Mais ce que j'aurais bien voulu c'est en fait que le sudoku soit le même pour toute personne qui ouvre la page internet pas uniquement lorsque que l'on recharge la page
Tu recopies la fonction Mash au début de ton javascript :
Puis tu redéfinis la fonction Math.random pour qu'elle utilise mash :
Tu peux mettre ce que tu veux à la place du 'a10' : c'est la graine dont je parlais.
Tu n'as pas à modifier le reste de ton script.
Je n'ai pas essayé, car sans le CSS ton sudoku ne marche pas - en tous cas ne ressemble pas à un sudoku.
/* extrait de uheprng.js, script de génération de nombres aléatoires de haute qualité (uhe= Ultra High Entropy) trouvé sur le site https://www.grc.com/otg/uheprng.htm */ /* ============================================================================ This is based upon Johannes Baagoe's carefully designed and efficient hash function for use with JavaScript. It has a proven "avalanche" effect such that every bit of the input affects every bit of the output 50% of the time, which is good. See: http://baagoe.com/en/RandomMusings/hash/avalanche.xhtml ============================================================================ */ function Mash() { var n = 0xefc8249d; var mash = function(data) { if ( data ) { data = data.toString(); for (var i = 0; i < data.length; i++) { n += data.charCodeAt(i); var h = 0.02519603282416938 * n; n = h >>> 0; h -= n; h *= n; n = h >>> 0; h -= n; n += h * 0x100000000; // 2^32 } return (n >>> 0) * 2.3283064365386963e-10; // 2^-32 } else n = 0xefc8249d; }; return mash; }
Puis tu redéfinis la fonction Math.random pour qu'elle utilise mash :
Math.random = (function(graine){ let mash=Mash(); // récupère une instance return ()=> mash(graine); })('a10');
Tu peux mettre ce que tu veux à la place du 'a10' : c'est la graine dont je parlais.
Tu n'as pas à modifier le reste de ton script.
Je n'ai pas essayé, car sans le CSS ton sudoku ne marche pas - en tous cas ne ressemble pas à un sudoku.