par
cicom » 01 mai 2007, 16:14
Re,
Pour passer le temps et pour continuer sur le sujet de l'optimisation que nous avions entamé voici la dernière version de la fonction météo, je l'ai encore optimisée et j'ai rajouté un nuage différent, qu'en pensez vous?
Merci à tous, et on verra si le webcron marche cette nuit mais je suis sceptique...
function meteo ()
{
$ndf = 2; //nombre de figures rentrées en array
$figs = array();
//syntaxe level x y
//le rond
$figs[0] = array();
//zone noire
$figs[0][0] = array(5, 0, 0);
//zone bleue
$figs[0][1] = array(4, -1, -1);
$figs[0][2] = array(4, 0, -1);
$figs[0][3] = array(4, -2, 0);
$figs[0][4] = array(4, -1, 0);
$figs[0][5] = array(4, 1, 0);
$figs[0][6] = array(4, -2, 1);
$figs[0][7] = array(4, -1, 1);
$figs[0][8] = array(4, 0, 1);
$figs[0][9] = array(4, 1, 1);
$figs[0][10] = array(4, -1, 2);
$figs[0][11] = array(4, 0, 2);
//zone rouge
$figs[0][12] = array(3, -1, -2);
$figs[0][13] = array(3, 0, -2);
$figs[0][14] = array(3, 1, -1);
$figs[0][15] = array(3, 2, 0);
$figs[0][16] = array(3, 2, 1);
$figs[0][17] = array(3, 1, 2);
$figs[0][18] = array(3, 0, 3);
$figs[0][19] = array(3, -1, 3);
$figs[0][20] = array(3, -2, 2);
$figs[0][21] = array(3, -3, 1);
$figs[0][22] = array(3, -3, 0);
$figs[0][23] = array(3, -2, -1);
//zone jaune
$figs[0][24] = array(2, -1, -3);
$figs[0][25] = array(2, 0, -3);
$figs[0][26] = array(2, 1, -2);
$figs[0][27] = array(2, 2, -1);
$figs[0][28] = array(2, 3, 0);
$figs[0][29] = array(2, 3, 1);
$figs[0][30] = array(2, 2, 2);
$figs[0][31] = array(2, 1, 3);
$figs[0][32] = array(2, 0, 4);
$figs[0][33] = array(2, -1, 4);
$figs[0][34] = array(2, -2, 3);
$figs[0][35] = array(2, -3, 2);
$figs[0][36] = array(2, -4, 1);
$figs[0][37] = array(2, -4, 0);
$figs[0][38] = array(2, -3, -1);
$figs[0][39] = array(2, -3, -2);
//zone verte
$figs[0][40] = array(1, -1, -4);
$figs[0][41] = array(1, 0, -4);
$figs[0][42] = array(1, 1, -3);
$figs[0][43] = array(1, 2, -2);
$figs[0][44] = array(1, 3, -1);
$figs[0][45] = array(1, 4, 0);
$figs[0][46] = array(1, 4, 1);
$figs[0][47] = array(1, 3, 2);
$figs[0][48] = array(1, 2, 3);
$figs[0][49] = array(1, 1, 4);
$figs[0][50] = array(1, 0, 5);
$figs[0][51] = array(1, -1, 5);
$figs[0][52] = array(1, -2, 4);
$figs[0][53] = array(1, -3, 3);
$figs[0][54] = array(1, -4, 2);
$figs[0][55] = array(1, -5, 1);
$figs[0][56] = array(1, -5, 0);
$figs[0][57] = array(1, -4, -1);
$figs[0][58] = array(1, -3, -2);
$figs[0][59] = array(1, -2, -3);
//le carré
$figs[1] = array();
//zone noire
$figs[1][0] = array(5, 0, 0);
//zone bleue
$figs[1][1] = array(4, -1, -1);
$figs[1][2] = array(4, 0, -1);
$figs[1][3] = array(4, 1, -1);
$figs[1][4] = array(4, 1, 0);
$figs[1][5] = array(4, 1, 1);
$figs[1][6] = array(4, 0, 1);
$figs[1][7] = array(4, -1, 1);
$figs[1][8] = array(4, -1, 0);
//zone rouge
$figs[1][9] = array(3, -2, -2);
$figs[1][10] = array(3, -1, -2);
$figs[1][11] = array(3, 0, -2);
$figs[1][12] = array(3, 1, -2);
$figs[1][13] = array(3, 2, -2);
$figs[1][14] = array(3, 2, -1);
$figs[1][15] = array(3, 2, 0);
$figs[1][16] = array(3, 2, 1);
$figs[1][17] = array(3, 2, 2);
$figs[1][18] = array(3, 1, 2);
$figs[1][19] = array(3, 0, 2);
$figs[1][20] = array(3, -1, 2);
$figs[1][21] = array(3, -2, 2);
$figs[1][22] = array(3, -2, 1);
$figs[1][23] = array(3, -2, 0);
$figs[1][24] = array(3, -2, -1);
//zone jaune
$figs[1][25] = array(2, -3, -3);
$figs[1][26] = array(2, -2, -3);
$figs[1][27] = array(2, -1, -3);
$figs[1][28] = array(2, 0, -3);
$figs[1][29] = array(2, 1, -3);
$figs[1][30] = array(2, 2, -3);
$figs[1][31] = array(2, 3, -3);
$figs[1][32] = array(2, 3, -2);
$figs[1][33] = array(2, 3, -1);
$figs[1][34] = array(2, 3, 0);
$figs[1][35] = array(2, 3, 1);
$figs[1][36] = array(2, 3, 2);
$figs[1][37] = array(2, 3, 3);
$figs[1][38] = array(2, 2, 3);
$figs[1][39] = array(2, 1, 3);
$figs[1][40] = array(2, 0, 3);
$figs[1][41] = array(2, -1, 3);
$figs[1][42] = array(2, -2, 3);
$figs[1][43] = array(2, -3, 3);
$figs[1][44] = array(2, -3, 2);
$figs[1][45] = array(2, -3, 1);
$figs[1][46] = array(2, -3, 0);
$figs[1][47] = array(2, -3, -1);
$figs[1][48] = array(2, -3, -2);
//zone verte
$figs[1][49] = array(1, -2, -4);
$figs[1][50] = array(1, -1, -4);
$figs[1][51] = array(1, 0, -4);
$figs[1][52] = array(1, 1, -4);
$figs[1][53] = array(1, 2, -4);
$figs[1][54] = array(1, 2, 4);
$figs[1][55] = array(1, 1, 4);
$figs[1][56] = array(1, 0, 4);
$figs[1][57] = array(1, -1, 4);
$figs[1][58] = array(1, -2, 4);
$figs[1][59] = array(1, -4, 0);
//SUITE DEV FINIR ZONES
$sql = mysql_query("SELECT count(*) FROM map");
$result = mysql_result($sql, 0, 0);
$nbact = $result?floor(($result / 60) /1.3 ):0;
$arid = array();
for ($curseur = 0; $curseur<$nbact; $curseur++)
{
$sql = mysql_query("SELECT x, y FROM meteo ORDER BY rand() LIMIT 1"); //tirage d'une météo
$result = mysql_fetch_array($sql);
switch(rand(0, 3)){
case 1: $temps = 'neige'; break;
case 2: $temps = 'pluie'; break;
case 3: $temps = 'pluie'; break;
default: $temps = 'brouillard'; break; //0
}
$rdf = rand(0, $ndf-1); //tirage d'une figure
for($c=0; $c < 59; $c++)
{
$xf = $result['x'] + $figs[$rdf][$c][1];
$yf = $result['y'] + $figs[$rdf][$c][2];
mysql_query("UPDATE meteo SET temps = '".$temps."', level = '".$figs[$rdf][$c][0]."' WHERE y = '".$yf."' AND x = '".$xf."'");
$arid["$yf-$xf"] = "'$yf-$xf'"; //mémorise les xy traités et évite les doublons éventuels
}
}
mysql_query("UPDATE meteo SET temps = 'beau', level = '0' WHERE Concat(y,'-',x) NOT IN (".implode(",", $arid).")");
//test fichier pour fonction nocturne, effacer si ca marche
$fp = fopen('exec.log', 'a+');
fputs($fp, date('d/m/Y - H:i:s')."\n");
fclose($fp);
}
Re,
Pour passer le temps et pour continuer sur le sujet de l'optimisation que nous avions entamé voici la dernière version de la fonction météo, je l'ai encore optimisée et j'ai rajouté un nuage différent, qu'en pensez vous?
Merci à tous, et on verra si le webcron marche cette nuit mais je suis sceptique...
[php]
function meteo ()
{
$ndf = 2; //nombre de figures rentrées en array
$figs = array();
//syntaxe level x y
//le rond
$figs[0] = array();
//zone noire
$figs[0][0] = array(5, 0, 0);
//zone bleue
$figs[0][1] = array(4, -1, -1);
$figs[0][2] = array(4, 0, -1);
$figs[0][3] = array(4, -2, 0);
$figs[0][4] = array(4, -1, 0);
$figs[0][5] = array(4, 1, 0);
$figs[0][6] = array(4, -2, 1);
$figs[0][7] = array(4, -1, 1);
$figs[0][8] = array(4, 0, 1);
$figs[0][9] = array(4, 1, 1);
$figs[0][10] = array(4, -1, 2);
$figs[0][11] = array(4, 0, 2);
//zone rouge
$figs[0][12] = array(3, -1, -2);
$figs[0][13] = array(3, 0, -2);
$figs[0][14] = array(3, 1, -1);
$figs[0][15] = array(3, 2, 0);
$figs[0][16] = array(3, 2, 1);
$figs[0][17] = array(3, 1, 2);
$figs[0][18] = array(3, 0, 3);
$figs[0][19] = array(3, -1, 3);
$figs[0][20] = array(3, -2, 2);
$figs[0][21] = array(3, -3, 1);
$figs[0][22] = array(3, -3, 0);
$figs[0][23] = array(3, -2, -1);
//zone jaune
$figs[0][24] = array(2, -1, -3);
$figs[0][25] = array(2, 0, -3);
$figs[0][26] = array(2, 1, -2);
$figs[0][27] = array(2, 2, -1);
$figs[0][28] = array(2, 3, 0);
$figs[0][29] = array(2, 3, 1);
$figs[0][30] = array(2, 2, 2);
$figs[0][31] = array(2, 1, 3);
$figs[0][32] = array(2, 0, 4);
$figs[0][33] = array(2, -1, 4);
$figs[0][34] = array(2, -2, 3);
$figs[0][35] = array(2, -3, 2);
$figs[0][36] = array(2, -4, 1);
$figs[0][37] = array(2, -4, 0);
$figs[0][38] = array(2, -3, -1);
$figs[0][39] = array(2, -3, -2);
//zone verte
$figs[0][40] = array(1, -1, -4);
$figs[0][41] = array(1, 0, -4);
$figs[0][42] = array(1, 1, -3);
$figs[0][43] = array(1, 2, -2);
$figs[0][44] = array(1, 3, -1);
$figs[0][45] = array(1, 4, 0);
$figs[0][46] = array(1, 4, 1);
$figs[0][47] = array(1, 3, 2);
$figs[0][48] = array(1, 2, 3);
$figs[0][49] = array(1, 1, 4);
$figs[0][50] = array(1, 0, 5);
$figs[0][51] = array(1, -1, 5);
$figs[0][52] = array(1, -2, 4);
$figs[0][53] = array(1, -3, 3);
$figs[0][54] = array(1, -4, 2);
$figs[0][55] = array(1, -5, 1);
$figs[0][56] = array(1, -5, 0);
$figs[0][57] = array(1, -4, -1);
$figs[0][58] = array(1, -3, -2);
$figs[0][59] = array(1, -2, -3);
//le carré
$figs[1] = array();
//zone noire
$figs[1][0] = array(5, 0, 0);
//zone bleue
$figs[1][1] = array(4, -1, -1);
$figs[1][2] = array(4, 0, -1);
$figs[1][3] = array(4, 1, -1);
$figs[1][4] = array(4, 1, 0);
$figs[1][5] = array(4, 1, 1);
$figs[1][6] = array(4, 0, 1);
$figs[1][7] = array(4, -1, 1);
$figs[1][8] = array(4, -1, 0);
//zone rouge
$figs[1][9] = array(3, -2, -2);
$figs[1][10] = array(3, -1, -2);
$figs[1][11] = array(3, 0, -2);
$figs[1][12] = array(3, 1, -2);
$figs[1][13] = array(3, 2, -2);
$figs[1][14] = array(3, 2, -1);
$figs[1][15] = array(3, 2, 0);
$figs[1][16] = array(3, 2, 1);
$figs[1][17] = array(3, 2, 2);
$figs[1][18] = array(3, 1, 2);
$figs[1][19] = array(3, 0, 2);
$figs[1][20] = array(3, -1, 2);
$figs[1][21] = array(3, -2, 2);
$figs[1][22] = array(3, -2, 1);
$figs[1][23] = array(3, -2, 0);
$figs[1][24] = array(3, -2, -1);
//zone jaune
$figs[1][25] = array(2, -3, -3);
$figs[1][26] = array(2, -2, -3);
$figs[1][27] = array(2, -1, -3);
$figs[1][28] = array(2, 0, -3);
$figs[1][29] = array(2, 1, -3);
$figs[1][30] = array(2, 2, -3);
$figs[1][31] = array(2, 3, -3);
$figs[1][32] = array(2, 3, -2);
$figs[1][33] = array(2, 3, -1);
$figs[1][34] = array(2, 3, 0);
$figs[1][35] = array(2, 3, 1);
$figs[1][36] = array(2, 3, 2);
$figs[1][37] = array(2, 3, 3);
$figs[1][38] = array(2, 2, 3);
$figs[1][39] = array(2, 1, 3);
$figs[1][40] = array(2, 0, 3);
$figs[1][41] = array(2, -1, 3);
$figs[1][42] = array(2, -2, 3);
$figs[1][43] = array(2, -3, 3);
$figs[1][44] = array(2, -3, 2);
$figs[1][45] = array(2, -3, 1);
$figs[1][46] = array(2, -3, 0);
$figs[1][47] = array(2, -3, -1);
$figs[1][48] = array(2, -3, -2);
//zone verte
$figs[1][49] = array(1, -2, -4);
$figs[1][50] = array(1, -1, -4);
$figs[1][51] = array(1, 0, -4);
$figs[1][52] = array(1, 1, -4);
$figs[1][53] = array(1, 2, -4);
$figs[1][54] = array(1, 2, 4);
$figs[1][55] = array(1, 1, 4);
$figs[1][56] = array(1, 0, 4);
$figs[1][57] = array(1, -1, 4);
$figs[1][58] = array(1, -2, 4);
$figs[1][59] = array(1, -4, 0);
//SUITE DEV FINIR ZONES
$sql = mysql_query("SELECT count(*) FROM map");
$result = mysql_result($sql, 0, 0);
$nbact = $result?floor(($result / 60) /1.3 ):0;
$arid = array();
for ($curseur = 0; $curseur<$nbact; $curseur++)
{
$sql = mysql_query("SELECT x, y FROM meteo ORDER BY rand() LIMIT 1"); //tirage d'une météo
$result = mysql_fetch_array($sql);
switch(rand(0, 3)){
case 1: $temps = 'neige'; break;
case 2: $temps = 'pluie'; break;
case 3: $temps = 'pluie'; break;
default: $temps = 'brouillard'; break; //0
}
$rdf = rand(0, $ndf-1); //tirage d'une figure
for($c=0; $c < 59; $c++)
{
$xf = $result['x'] + $figs[$rdf][$c][1];
$yf = $result['y'] + $figs[$rdf][$c][2];
mysql_query("UPDATE meteo SET temps = '".$temps."', level = '".$figs[$rdf][$c][0]."' WHERE y = '".$yf."' AND x = '".$xf."'");
$arid["$yf-$xf"] = "'$yf-$xf'"; //mémorise les xy traités et évite les doublons éventuels
}
}
mysql_query("UPDATE meteo SET temps = 'beau', level = '0' WHERE Concat(y,'-',x) NOT IN (".implode(",", $arid).")");
//test fichier pour fonction nocturne, effacer si ca marche
$fp = fopen('exec.log', 'a+');
fputs($fp, date('d/m/Y - H:i:s')."\n");
fclose($fp);
}
[/php]