Bien le bonjour amis codeur
Je bute sur un soucis et j'arrive pas à trouver de solution sur le net pour obtenir ce que je cherche à faire
je m'explique je cherche à obtenir une chaine de 65 535 caractère avec
- tout plein de "0"
- 1 "a"
- 2 "b"
- 30 "f"
- 76 "g"
- 127 "k"
- 764 "m"
et tout ça placer aléatoirement dans ma chaine et en étant sur de pas écraser les lettres précédemment incluse.
pourquoi me direz-vous ?
mes 65 535 caractère représente un grille de 256x256 dans la quelle je cherche a placer 1000 étoiles selon leur catégorie et leur représentation dans l'univers, cette grille ne représente qu'un "cadran" d'une galaxie qui comprend 242 cadrans (le nombre de cadrans peut changer selon la galaxie)
Alors niveau code voila ce que j'ai pondu c'est sans doute brutal (trop pour le serveur en tout cas )
Il doit y avoir une manière plus simple de le faire mais je vois pas de fonction qui me permettrais ce genre de chose et j'ai franchement pas la motive de placer 242 000 étoiles à la main
PS : quand j'affiche le résultat dans une page ça passe, ça fait bien ce que je veut mais quand je cherche a rentrer le résultat en BDD ça crashes
Modifié par Exter (11 May 2021 - 08:44)
Je bute sur un soucis et j'arrive pas à trouver de solution sur le net pour obtenir ce que je cherche à faire
je m'explique je cherche à obtenir une chaine de 65 535 caractère avec
- tout plein de "0"
- 1 "a"
- 2 "b"
- 30 "f"
- 76 "g"
- 127 "k"
- 764 "m"
et tout ça placer aléatoirement dans ma chaine et en étant sur de pas écraser les lettres précédemment incluse.
pourquoi me direz-vous ?
mes 65 535 caractère représente un grille de 256x256 dans la quelle je cherche a placer 1000 étoiles selon leur catégorie et leur représentation dans l'univers, cette grille ne représente qu'un "cadran" d'une galaxie qui comprend 242 cadrans (le nombre de cadrans peut changer selon la galaxie)
Alors niveau code voila ce que j'ai pondu c'est sans doute brutal (trop pour le serveur en tout cas )
function etoile() {
$taille = 256*256;
$etoile = '';
for ($e=0;$e<$taille;$e++) {$etoile .= "0";}
$etoile[rand(0, $taille-1)] = 'a';
$ok = 0;
while ($ok < 2) {
$rand = rand(0, $taille-1);
if ($etoile[$rand] == '0') {
$etoile[$rand] = 'b';
$ok ++;
}
}
$ok = 0;
while ($ok < 30) {
$rand = rand(0, $taille-1);
if ($etoile[$rand] == '0') {
$etoile[$rand] = 'f';
$ok ++;
}
}
$ok = 0;
while ($ok < 76) {
$rand = rand(0, $taille-1);
if ($etoile[$rand] == '0') {
$etoile[$rand] = 'g';
$ok ++;
}
}
$ok = 0;
while ($ok < 127) {
$rand = rand(0, $taille-1);
if ($etoile[$rand] == '0') {
$etoile[$rand] = 'k';
$ok ++;
}
}
$ok = 0;
while ($ok < 764) {
$rand = rand(0, $taille-1);
if ($etoile[$rand] == '0') {
$etoile[$rand] = 'm';
$ok ++;
}
}
return $etoile;
}
Il doit y avoir une manière plus simple de le faire mais je vois pas de fonction qui me permettrais ce genre de chose et j'ai franchement pas la motive de placer 242 000 étoiles à la main
PS : quand j'affiche le résultat dans une page ça passe, ça fait bien ce que je veut mais quand je cherche a rentrer le résultat en BDD ça crashes
Modifié par Exter (11 May 2021 - 08:44)