Cacher des valeurs avec php (filtres)

WRInaute impliqué
Salut à tous,

Voilà, j'ai un soucis sur lequel je sèche.
Je génère des grilles de sudoku entièrement remplies.
Mais avant de les stocker dans ma bdd, il faut que j'applique un filtre qui va cacher aléatoirement un certain nombre de chiffres par rapport à la difficulté choisie. Ensuite, je stockerai la chaîne de caractères générée dans la bdd et je la récupèrerai ensuite avec un explode + insertion des chiffres et des cases vides (jouables) dans un formulaire html.

Comment créer ce fameux filtre ?
 
Nouveau WRInaute
Si j'ai bien compris, tu stocke ta grille remplie sous forme de chaine de caractere (163795842...) ?
Dans ce cas, pourquoi ne pas remplacer les chiffres "cachées" par des lettres ? 1 -> a, 2 -> b, etc...
 
WRInaute impliqué
Non, avant de la stocker, je dois arriver à enlever un certain nombre de chiffres par rapport à la difficulté choisie.

Ce que je n'arrive pas à faire avant de stocker la grille, c'est d'enlever une partie des chiffres afin que la grille devienne jouable. Il ne me reste plus que cela à faire pour que je puisse tout mettre en route.

Exemple :

Il y a 81 chiffres dans un sudoku, je pourrais enlever 20 chiffres aléatoirement et ensuite stocker la grille.

Mais, comment enlever ces foutu 20 chiffres ?
 
WRInaute discret
Mais, comment enlever ces foutu 20 chiffres ?
Si c'est le script que tu veux, tu récupères la chaines et change aléatoirement 20 chiffre par une lettre.

Code:
<?php

$aGrille = '954786241954786241954786241954786241954786241954786241954786241954786241954786241';
$sChoisi = array();
for($i=0;$i<20;$i++){
	$nb = rand(1,81);
	if(!in_array($nb, $sChoisi)){
		$sChoisi[] = $nb;
		$aGrille = substr($aGrille,0,($nb-1)).'X'.substr($aGrille,$nb);
	}else{
		$i--;
	}
}
echo $aGrille;

?>

Si j ai tout compris :)
 
WRInaute passionné
Il ne suffit pas d'enlever des chiffres, il faut aussi que tu arrives à évaluer la difficulté de ta grille ensuite.
Tu peux enlever 20 chiffres et avoir une grille tres facile ou au contraire tres dure.
 
WRInaute discret
J'ai jamais fais de sudoku de ma vie, donc je saivais pas trop :) donc il faudrait que ca te retire des chiffre et évalue la difficulté de la grille? A part lancer un script qui essaye complèter la grille pour la finir et selon le nombre d essais en déduis la difficulter (et solicite bien le serveur), il ne reste que les joueurs humains qui pourraient évaluer la difficulté.
 
WRInaute passionné
sureau a dit:
J'ai jamais fais de sudoku de ma vie, donc je saivais pas trop :) donc il faudrait que ca te retire des chiffre et évalue la difficulté de la grille? A part lancer un script qui essaye complèter la grille pour la finir et selon le nombre d essais en déduis la difficulter (et solicite bien le serveur), il ne reste que les joueurs humains qui pourraient évaluer la difficulté.

Tu as des stratégies pour résoudre le sudoku et des librairies php déja faites :)
 
Discussions similaires
Haut