Mi sto dannando con il meteo postato il 07/10/2015 01:02:38 nel forum programmazione, gdrcd, open source, hosting
Salve tutti, sto cercando di sistemare un problema con il meteo della land, vorrei impostare un massimo di temperatura che di tanto in tanto mi impazzisce e mi arrivano 52 gradi ( probabilmente essendo io ancora non esperto di programmazione ho toppato qualcosa ) c'è un modo per risolvere?
vi posto qui quello che ho attualmente tralasciando vento, lune che funziona tutto a meraviglia e la prima parte che è solo l'apertura del css
<?
$ore=strftime("%H");
$minuti=strftime("%M");
$mese=strftime("%m");
$giorno=strftime("%j");
$caso=((floor($giorno/3))%2)+1;
switch ($mese)
{
case 1: $minima=0; break;
case 2: $minima=4; break;
case 3: $minima=8; break;
case 4: $minima=12; break;
case 5: $minima=16; break;
case 6: $minima=12; break;
case 7: $minima=24; break;
case 8: $minima=22; break;
case 9: $minima=20; break;
case 10: $minima=20; break;
case 11: $minima=4; break;
case 12: $minima=0; break;
}
if($ore<14){$gradi=$minima+(floor($ore/3)*$caso);}
else{ $gradi=$minima+(4*$caso)-((floor($ore/3)*$caso))+(3*$caso);}
$caso=($giorno+($ora/4))%12;
switch ($caso)
{
case 0: $meteo="<img src="img/meteo/sereno4.png" width="25" height="32" title="Sereno. Vento debole di Scirocco (S-E)" align="center">"; break;
case 1: $meteo="<img src="img/meteo/sereno4.png" width="25" height="32" title="Sereno. Vento debole di Maestrale (N-O)" align="center">"; break;
case 2: $meteo="<img src="img/meteo/variabile.png" width="25" height="32" title="Variabile. Vento forte di Libeccio (S-O)" align="center">"; break;
case 3: $meteo="<img src="img/meteo/variabile.png" width="25" height="32" title="Variabile. Vento debole di Grecale (N-E)" align="center">"; break;
case 4: $meteo="<img src="img/meteo/pioggia.png" width="25" height="32" title="Pioggia. Vento Assente" align="center">"; break;
case 5: $meteo="<img src="img/meteo/nuvoloso.png" width="25" height="32" title="Nuvoloso. Vento forte di Mezzogiorno (S)" align="center">"; break;
case 6: $meteo="<img src="img/meteo/sereno4.png" width="25" height="32" title="Sereno. Vento forte di Mezzogiorno (S)" align="center">"; break;
case 7: $meteo="<img src="img/meteo/variabile.png" width="25" height="32" title="Variabile. Vento forte di Maestrale (N-O)" align="center">"; break;
case 8: $meteo="<img src="img/meteo/pioggia.png" width="25" height="32" title="Pioggia. Vento debole di Maestrale (N-O)" align="center">"; break;
case 9: $meteo="<img src="img/meteo/sereno4.png" width="25" height="32" title="Sereno. Vento debole di Libeccio (S-W)" align="center">"; break;
case 10: $meteo="<img src="img/meteo/sereno4.png" width="25" height="32" title="Sereno. Vento forte di Grecale (N-E)"align="center">"; break;
case 11: $meteo="<img src="img/meteo/temporale.png" width="25" height="32" title="Temporale. Vento forte di Maestrale (N-O)" align="center">"; break;
case 12: $meteo="<img src="img/meteo/sereno4.png" width="25" height="32" title="Sereno. Vento Assente" align="center">"; break;
case 13: $meteo="<img src="img/meteo/sereno4.png" width="25" height="32" title="Sereno. Vento forte di Scirocco (S-E)" align="center">"; break;
case 14: $meteo="<img src="img/meteo/sereno4.png" width="25" height="32" title="Sereno. Vento debole di Ponente (O)" align="center">"; break;
case 15: $meteo="<img src="img/meteo/variabile.png" width="25" height="32" title="Variabile. Vento deboe di Levante (E)" align="center">"; break;
case 16: $meteo="<img src="img/meteo/pioggia.png" width="25" height="32" title="Pioggia. Vento debole di Mezzogiorno (S)" align="center">"; break;
case 17: $meteo="<img src="img/meteo/nuvoloso.png" width="25" height="32" title="Nuvoloso. Vento debole di Scirocco (S-E)" align="center">"; break;
case 18: $meteo="<img src="img/meteo/sereno4.png" width="25" height="32" title="Sereno. Vento forte di Ponente (O)" align="center">"; break;
case 19: $meteo="<img src="img/meteo/neve.png" width="25" height="32" title="Neve. Vento fortissimo di Tramontana (N)" align="center">"; break;
case 20: $meteo="<img src="img/meteo/pioggia.png" width="25" height="32" title="Pioggia. Vento forte di Levante (E)" align="center">"; break;
case 21: $meteo="<img src="img/meteo/nuvoloso.png" width="25" height="32" title="Nuvoloso. Vento Assente" align="center">"; break;
case 22: $meteo="<img src="img/meteo/sereno4.png" width="25" height="32" title="Sereno. Vento debole di Mezzogiorno (S)"align="center">"; break;
case 23: $meteo="<img src="img/meteo/tempesta.png" width="25" height="32" title="Tempesta. Vento fortissimo di Maestrale (N-O)" align="center">"; break;
}
$_SESSION['Meteo_S'] = $meteo;
grazie dell'attenzione. e spero che qualcuno ci capisca più di me e possa aiutarmi.
Pagine → 1
07/10/2015 09:57:08
potresti diminuire il valore di $caso cambiando la formula oppure potresti diminuire il valore di minima oppure potresti creare un valore di massima e poi sviluppare un codice che peschi un numero tra minima e massima
07/10/2015 10:47:11
il problema sta quando usi questa roba:
floor($ore/3)*$caso)
Perche'? Nel peggiore dei casi $ore sara' 23, poi lo dividi per 3 ce fa 7 (prendi il floor) e poi lo moltiplichi per caso che, nel peggiore dei casi fa 3. Tutta sta cosa puo' arrivare a 21 che, sommate con quelle minime, arriva a un numero allucinante.
Nella mia land io uso un approccio totalmente diverso per il meteo.
Un consiglio che ti posso dare e' quello di cambiare TOTALMENTE approccio. Imposta dei valori di temperatura minima (gia' fatto) e massima e, anziche' fare tutta sta roba, estrai un numero causale da una distribuzione di Gauss. Qui trovi una funzione che ti fa questa cosa:
http://www.eboodevelopment.com/php-random-number-generator-with-normal-distribution-bell-curve/
Passi min e max e la deviazione standard: piu' ampia e' la deviazione standard, piu' grande sara' lo scostamento di temperatura. Da quel che ho capito, min e max non sono valori vincolanti, ma il generatore di numeri puo' (con una certa probabilita') prendere valori al di fuori del range.
A presto
07/10/2015 15:17:19
intanto grazie, vedo se riesco a fare le soluzioni che proponete, vedrò di spulciare la guida di gdr cd e cosa riesco a produrre.
Però almeno mi avete chiarito un dubbio che l'errore fosse sull'algoritmo e non da altre parti.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
I dati del generatore di rank sono stati aggiornati!