Bonsoir,
Je sors un peu de ma réserve, n'ayant pas le même niveau de compétences que certains ici, du moins je le crois, je ne peux pas apporter grand chose en terme de contribution pour le moment, ajoutez à cela un zeste de timidité mal contrôlée, même en étant anonyme planqué derrière son écran,si si ça existe ...
mais cela ne m'empêche pas de suivre très régulierement les discussions qui ont lieu et j'apprends d'ailleurs beaucoup de choses ... beaucoup de pistes à creuser.
Donc mon projet avance tout doucement mais je n'ai toujours rien de bien concret à présenter.
Je réfléchis et j'écris beaucoup et code très peu pour le moment.
Ceci étant dit j'aurais besoin de quelques conseils éclairés et si possible d'un exemple éclairant.
Voilà ce qui m'occupe actuellement:
Je réfléchis à un système de craft qui soit un tant soit peu ludique et pour ça j'aimerais donner la possibilité aux joueurs de créer des objets "uniques" ou du moins fortement personnalisés.
Pour ce faire ils auraient à leur disposition de nombreuses ressources elles aussi ayant des caractéristiques plus ou moins uniques ou du moins non déterminées à l'avance.
Un même type de ressource pouvant donc avoir des caractéristiques différentes.
Un exemple:
Un artisan qui craft des bâtons ou des manches d'outils peu importe a besoin de bois.
Nous avons donc un bucheron qui coupe du bois pour lui.
dans la foret du coin on trouve différentes essences de bois:
- Certaines sont plus rares que d'autres.
- Chaque essence à la particularité d'être associée à un des quatre éléments - terre - feu -air - eau - (qui donnera certaines propriétés aux objets craftés avec cette essence).
Cette "charge élémentaire" peut être plus ou moins élevée.
- enfin indépendamment des essences on trouve dans cette foret des bois de plus ou moins bonne qualité.
Notre bucheron lui a certaines capacités qui sont développées par le joueur et évoluent donc dans le temps.
- La force : un bucheron ne peut pas couper un arbre ayant une "charge élémentaire" supérieure à sa force.
- L' observation: détermine la probabilité de trouver une essence rare.
- L'endurance: détermine le nombre de coupes réalisables en un tour
Notre bucheron est géré comme un bâtiment de production a chaque tour il remplis sa réserve avec ce qu'il a récolté.
Donc pour l'exemple notre bucheron a:
force : 110 points
observation : 40%
endurance : 5 donc 5 coupes par tour.
donc pour calculer sa production je ferais une boucle
je vous demanderais plus tard s'il n'y a pas une meilleur solution parce que tel que pensé là ça fait beaucoup de requêtes je trouve
En français ou presque:
donc pour l'insertion dans la bdd il faut d'abord rechercher si c'est le cas et updater le champ quantité ou dans le cas contraire créer une nouvelle entrée.
a priori la table réserve ressemblerait à ça
id
id_essence
id_element
charge_element
qualite
quantite.
Ce qui fait 15 requêtes dans cette malheureuse boucle et beaucoup plus si notre bucheron est très endurant.
Si en plus il y a plusieurs bucherons ...
De plus " on ne fait pas de requêtes dans une boucle malheureux !!!"
Du coup je ne vois pas trop comment procéder pour faire proprement cette mise à jour de production.
Je ne demande pas qu'on le code à ma place mais qu'on m'explique quelle est la meilleure méthode.
je pressens que la solution pourrait avoir un rapport avec ça quoi que je ne suis pas sure que ça convienne dans ce cas:
De plus si c'est bien dans ce sens là qu'il faut creuser, un petit exemple concret ne serait pas de refus car j'ai beau y réfléchir je ne comprend pas comment faire.
Et ça ne règle pas la question de l'update qui vient se claquer en plein milieu :heuuu: enfin à vrai dire je n'en sais rien puisque je ne comprends pas.
je vous remercie pour votre aide.
Et pardon pour le pavé.
Je sors un peu de ma réserve, n'ayant pas le même niveau de compétences que certains ici, du moins je le crois, je ne peux pas apporter grand chose en terme de contribution pour le moment, ajoutez à cela un zeste de timidité mal contrôlée, même en étant anonyme planqué derrière son écran,si si ça existe ...
mais cela ne m'empêche pas de suivre très régulierement les discussions qui ont lieu et j'apprends d'ailleurs beaucoup de choses ... beaucoup de pistes à creuser.
Donc mon projet avance tout doucement mais je n'ai toujours rien de bien concret à présenter.
Je réfléchis et j'écris beaucoup et code très peu pour le moment.
Ceci étant dit j'aurais besoin de quelques conseils éclairés et si possible d'un exemple éclairant.
Voilà ce qui m'occupe actuellement:
Je réfléchis à un système de craft qui soit un tant soit peu ludique et pour ça j'aimerais donner la possibilité aux joueurs de créer des objets "uniques" ou du moins fortement personnalisés.
Pour ce faire ils auraient à leur disposition de nombreuses ressources elles aussi ayant des caractéristiques plus ou moins uniques ou du moins non déterminées à l'avance.
Un même type de ressource pouvant donc avoir des caractéristiques différentes.
Un exemple:
Un artisan qui craft des bâtons ou des manches d'outils peu importe a besoin de bois.
Nous avons donc un bucheron qui coupe du bois pour lui.
dans la foret du coin on trouve différentes essences de bois:
- Certaines sont plus rares que d'autres.
- Chaque essence à la particularité d'être associée à un des quatre éléments - terre - feu -air - eau - (qui donnera certaines propriétés aux objets craftés avec cette essence).
Cette "charge élémentaire" peut être plus ou moins élevée.
- enfin indépendamment des essences on trouve dans cette foret des bois de plus ou moins bonne qualité.
Notre bucheron lui a certaines capacités qui sont développées par le joueur et évoluent donc dans le temps.
- La force : un bucheron ne peut pas couper un arbre ayant une "charge élémentaire" supérieure à sa force.
- L' observation: détermine la probabilité de trouver une essence rare.
- L'endurance: détermine le nombre de coupes réalisables en un tour
Notre bucheron est géré comme un bâtiment de production a chaque tour il remplis sa réserve avec ce qu'il a récolté.
Donc pour l'exemple notre bucheron a:
force : 110 points
observation : 40%
endurance : 5 donc 5 coupes par tour.
donc pour calculer sa production je ferais une boucle
je vous demanderais plus tard s'il n'y a pas une meilleur solution parce que tel que pensé là ça fait beaucoup de requêtes je trouve
En français ou presque:
Citation :tant que $nb_coupe < 5Il est donc possible et fortement probable d'avoir 5 bouts de bois dont les caractéristiques sont différentes mais il est également possible qu'il y en ai plusieurs pareils tout comme il est possible qu'il y ai déjà des essences aux caractéristiques similaires dans la réserve.
{
// on détermine si l'essence trouvée est rare ou non (40% de chance)
On génère un nombre au hasard entre 1 et 100
if le nombre est compris entre 1 et 40
{
on va piocher une essence rare dans la bdd => un cèdre du Liban
}
else
{
on pioche une essence courante => un bouleau élément eau
// notre bucheron n'a pas trouvé d'essence rare et a pioché un bouleau
$essence=bouleau
$element=eau
}
$charge_elementaire=un nombre au hasard entre 1 et $forcedubucheron
ex : $charge=52
$qualité = un nombre au hasard entre 1 et 100
ex: $qualité= 60%
on a donc un bouleau de charge élémentaire 52 et de qualité 60%
et on recommence 5 fois
}
donc pour l'insertion dans la bdd il faut d'abord rechercher si c'est le cas et updater le champ quantité ou dans le cas contraire créer une nouvelle entrée.
a priori la table réserve ressemblerait à ça
id
id_essence
id_element
charge_element
qualite
quantite.
Ce qui fait 15 requêtes dans cette malheureuse boucle et beaucoup plus si notre bucheron est très endurant.
Si en plus il y a plusieurs bucherons ...
De plus " on ne fait pas de requêtes dans une boucle malheureux !!!"
Du coup je ne vois pas trop comment procéder pour faire proprement cette mise à jour de production.
Je ne demande pas qu'on le code à ma place mais qu'on m'explique quelle est la meilleure méthode.
je pressens que la solution pourrait avoir un rapport avec ça quoi que je ne suis pas sure que ça convienne dans ce cas:
Citation :Il faut en fait construire la chaîne de caractère de la requête à l'aide d'une boucle et ensuite la donner en argument à un mysql_query() : ça te permet de garder un nombre correct de requête pour la mise à jour puisque deux suffisent.
Citation :Ce qu'il veut dire c'est qu'il faut éviter de mettre une requête dans la boucle. Car çà feras en fait n requête si la boucle est exécutè n fois...
Pour ce faire il te propose de créer une unique grosse requête avec ta boucle et de l'exécuter après celle ci. La requête généré par la boucle étant une chaine de caractere
De plus si c'est bien dans ce sens là qu'il faut creuser, un petit exemple concret ne serait pas de refus car j'ai beau y réfléchir je ne comprend pas comment faire.
Et ça ne règle pas la question de l'update qui vient se claquer en plein milieu :heuuu: enfin à vrai dire je n'en sais rien puisque je ne comprends pas.
je vous remercie pour votre aide.
Et pardon pour le pavé.