JeuWeb - Crée ton jeu par navigateur
pillage et repartition ressources - 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 : pillage et repartition ressources (/showthread.php?tid=4825)



pillage et repartition ressources - php_addict - 17-05-2010

bonjour

je sèche sur un problème tout bête, celui du pillage de ressource et de la repartition:

imaginons que je pille un joueur il a comme ressource:

tomate : 6000
pomme : 6000
poire : 6000
patate : 6000


avec une capacité de transport = 400

c'est simple:

tomate pillée: 100
pomme pillée : 100
poire pillée : 100
patate pillée : 100


maintenant, imaginons que je pille un joueur il a comme ressource:


tomate : 10
pomme : 200
poire : 20
patate : 6000


avec une capacité de transport = 400

c'est moins simple:

tomate pillée: 10
pomme pillée : 100
poire pillée : 20
patate pillée : 270


OU:


tomate pillée: 10
pomme pillée : 200
poire pillée : 20
patate pillée : 170



d'où mon questionnement: je fais comment pour repartir les pillages? de préférence avec une jolie formule mathémathique sans utiliser de vilaines boucles...?

:$ j'ai un peu honte, mais les maths et les stats ce n'est pas mon fort...

auriez vous une piste svp :idee:?

merci de m'avoir lu une fois de plus

bonne fin de journée.


RE: pillage et repartition ressources - Allwise - 17-05-2010

Logiquement, c'est la ressource qui a le plus de valeur qui devrait être pillée en priorité, ou celle dont le joueur manque le plus.
Par exemple, si le joueur A pille 100 patates au joueur B, et que derrière il va piller le joueur C, c'est pas dit qu'il se reprenne 100 patates, il préfèrera prendre des oranges parce qu'il se dira que les féculents ça va un moment mais qu'il faut pas déconner avec son apport en vitamines C.

Donc tu peux quantifier le besoin que le pilleur a au moment il fait son rapt, en fonction de ses possessions, de la ressource elle-même et d'autres paramètres... Et choisir les ressources en fonction.

Après pour ce qui est de l'algo, ça dépend de si tu inclues la notion de poids ou pas. Mais au final, je verrais bien une petite bouclette Smile


RE: pillage et repartition ressources - Argorate - 17-05-2010

Pourquoi ne pas laisser le choix au joueur de la répartition (même aproximative, une préférences en somme)?


RE: pillage et repartition ressources - php_addict - 17-05-2010

merci pour ces pistes ca me donne tout plein d'idée...

j'ai testé un truc:

Code :
1er passage:

tomate : si > 1/4 de la capacité de transport: j'en prend 1/4
         sinon je prend tout
pomme : idem
poire : idem
patate : idem

2eme passage:

tomate : si il me reste de la place, je complete
pomme : idem
poire : idem
patate : idem

les tomates seront donc plus pillées...

mais piller en fonction des besoin me plait assez Wink

merci pour vos avis...


RE: pillage et repartition ressources - Allwise - 17-05-2010

Tiens, un mini algo basé sur le produit en croix ^^ qui détermine le nombre d'items à piller en fonction de leur poids ( en js ), où max est le nombre d'items max à piller :
Code :
var max = 400;
var poidsTomates = 15;
var poidsPatates = 10;
var poidsCacahuetes = 5;

var coeff = max /  (poidsTomates+poidsPatates+poidsCacahuetes);

var nbTomates = Math.round(coeff*poidsTomates);
var nbPatates = Math.round(coeff*poidsPatates);
var nbCacahuetes = Math.round(coeff*poidsCacahuetes);
console.log(nbTomates, nbPatates, nbCacahuetes)



RE: pillage et repartition ressources - Th3kid - 17-05-2010

Personnellement j'ai bien l'idée de pouvoir choisir ce que je vais piller chez l'autre. Si j'ai besoin de patate, j'vais pas aller piller des tomates.



Après, il y a plein d'algorithme possible selon tes besoins et ce que tu veux. C'est juste une question de choix.

perso j'prendrais l'algorithme que tu as fait mais avec une boucle jusqu'a ce que les ressources soit complètes.

Parce que dans ton exemple si le joueur à 400 de charges et celui qu'il attaque à
10tomate
2000pomme
10poire
2000patate

tu vas repartir avec
10tomate
280pomme
10poire
100patate

alors que je trouverais ca plus normal de repartir avec
10tomate
190pomme
10poire
190patate


RE: pillage et repartition ressources - Anthor - 17-05-2010

(17-05-2010, 09:09 PM)Th3kid a écrit : Personnellement j'ai bien l'idée de pouvoir choisir ce que je vais piller chez l'autre. Si j'ai besoin de patate, j'vais pas aller piller des tomates.



Après, il y a plein d'algorithme possible selon tes besoins et ce que tu veux. C'est juste une question de choix.

perso j'prendrais l'algorithme que tu as fait mais avec une boucle jusqu'a ce que les ressources soit complètes.

Parce que dans ton exemple si le joueur à 400 de charges et celui qu'il attaque à
10tomate
2000pomme
10poire
2000patate

tu vas repartir avec
10tomate
280pomme
10poire
100patate

alors que je trouverais ca plus normal de repartir avec
10tomate
190pomme
10poire
190patate

Dans ce cas il suffit juste de dynamiser le poids avec le pourcentage de répartitions des 4 ressources.


RE: pillage et repartition ressources - php_addict - 19-05-2010

(17-05-2010, 08:59 PM)Allwise a écrit : Tiens, un mini algo basé sur le produit en croix ^^ qui détermine le nombre d'items à piller en fonction de leur poids ( en js )

merci beaucoup pour le code JS, ce n'est pas ce qui me pose probleme de le faire en php mais si je reprends ton exemple:

(17-05-2010, 08:59 PM)Allwise a écrit :
Code :
var max = 400;
var poidsTomates = 25;
var poidsPatates = 25;
var poidsCacahuetes = 5;
var poidsChoux = 45;

et ben je fais comment pour determiner les poids ci dessus dans le cas suivant où les ressources pillables sont :

Citation :capacité de transport = 400

tomate : 100
Patates: 200
Cacahuetes: 20
Choux: 6000

en fait c'est là toute ma question...


RE: pillage et repartition ressources - Anthor - 20-05-2010

Comme dit juste au dessus, tu fais un poids sur le pourcentage des ressources.


RE: pillage et repartition ressources - keke - 21-05-2010

(17-05-2010, 09:09 PM)Th3kid a écrit : Après, il y a plein d'algorithme possible selon tes besoins et ce que tu veux. C'est juste une question de choix.

... et de sa capacité à mettre en action ses choix ^^.

kéké