JeuWeb - Crée ton jeu par navigateur
[Réglé]Varier la production si l'energie est insuffisante - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Réglé]Varier la production si l'energie est insuffisante (/showthread.php?tid=2183)



[Réglé]Varier la production si l'energie est insuffisante - yedow - 23-12-2007

Salut à tous !

Alors voila mon problème, je commence tout juste a dévelloper un jeu et j'ai un petit problème : quel est le calcul à faire pour que la production des batiments baisse ou atteigne 0 si je n'ai pas assez d'énergie ?
Pour le calcul de la consomation et de la prod j'ai fait ça :

Consommation d'un batiments :
Citation :$energie_conso = (($conso_batiments*bcpow($coef_prix, ($lvl_batiment-1), 10)))
Et pour la production des panneaux solaires :
Citation :$energie_dispo = (($prod_panneaux*bcpow($coef_prod_panneaux, ($lvl_panneaux-1), 10)))
Note : les calculs ne sont faits que si les batiments ne sont pas au niveau 0 (sinon ça donnerait quelquechose du style :
Citation :$energie_conso=((50*bcpow(1.5, -1, 10))) = 33.3333333333)

Mon problème est que je ne sais pas quels calculs faire pour mettre en relation énergie et production, j'avais pensé a quelquechose du style :
Si (consomation > production)
|-> consomation réelle du batiment = consommation normale - (energie manquante / nombre de batiments construits demandant de l'énergie)
puis
production réelle = production normale * (conso réelle / conso normale)

mais le problème c'est que si on a un batiment qui consomme 1000, un autre 500 et que l'on a que 500 d'énergie dispo, le manque sera de 1000, divisé par 2 = 500, et si on enleve 500 d'énergie a chacun ca fait le premier batiment qui a 500/1000 et qui produit a 50%, mais l'autre a 0/500 qui ne produit plus...
Ce que j'aimerais en fait c'est un (ou des) calcul(s) qui permetrait de faire en sorte que lorsqu'on manque d'énergie chaque batiment ait le meme pourcentage de production
-> Dans l'exemple du dessus ca donnerait quelquechose du style
-->Batiment 1 : energie = 333/1000 soit 33% de prod
-->Batiment 2 : energie = 166/500 soit 33% de prod

Merci d'avance pour vos réponses parce que la je vois pas trop...


RE: Varier la production si l'energie est insuffisante - Sephi-Chan - 24-12-2007

Bonjour,

À titre purement indicatif, nous sommes ici dans un forum communautaire, c'est à dire un lieu de partage. On commence généralement sa visite par la section Présentation avant de consommer. De plus, il est également de bon ton de contribuer.


Sephi-Chan


RE: Varier la production si l'energie est insuffisante - yedow - 24-12-2007

Ok ok, je pensais pas que la présentation était si importante:respect:

Pour ce qui est de la contribution, je veux bien aider mais je débute tout juste, alors bon... Mais je vais voir ce que je peux faire, en attendant je vais faire un petit tour aux présentations^^

edit : finalement j'ai trouvé tout seul, et c'était beaucoup plus simple, ca donne ça :
Citation :$energie_conso = $conso_batiment1 + $conso_batiment2...
$enregie_dispo = "le meme calcul que celui plus haut"
if ($energie_conso > $energie_dispo)
{ $facteur_diminution = $energie_dispo / $energie_conso }
else
{ $facteur_diminution = 1 }
Puis pour la production des batiments
Citation :$production_réelle = $production*$facteur_diminution

Voila, je l'ai mis au cas ou ca pourrait aider quelqu'un

PS : je ne dis pas ça en sous entendant "ben franchement, c'est pas grace a vous", au contraire c'est pour dire que je suis pas resté le bras croisés a attendre qu'on me réponde mais que j'ai continué a chercher en attendant

Amicalement


RE: Varier la production si l'energie est insuffisante - jo_link_noir - 24-12-2007

bonsoir,

tu peux réduire un peu cette partie :
Code PHP :
<?php 
if ($energie_conso > $energie_dispo)
{
$facteur_diminution = $energie_dispo / $energie_conso }
else
{
$facteur_diminution = 1 }
en fessant simplement :
Code PHP :
<?php 
$facteur_diminution
= min($energie_dispo / $energie_conso, 1)

min() retourne la plus petite valeur numérique parmi les valeurs passées en paramètres.


RE: Varier la production si l'energie est insuffisante - yedow - 24-12-2007

ah, je ne connaissais pas cette fonction (très pratique), merci a toi, je vais remplacer dessuite :respect::respect: