Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Math] Calcul impossible a résoudre

Je n'arrive pas a trouver la solution a ce calcul

13 octobre 2009 à 18:27:26

Bonjour a tous,

Je travaille depuis un moment sur un jeu a la ogame et je suis confronté au gros problème de la gestion de l'attaque.
J'explique ici vite fait le principe du calcul.

Imaginer 3 unité d'attaque :
- les lancier avec 10 de def
- les cavalerie avec 50 de def
- les volant avec 70 de def

Lors d'une attaque j'envois 1000 lancier + 2478 cavalerie + 500 volant. Cela fait donc un total de 1000+2478+500 = 3978 unité d'attaque.
leurs défenses totale est donc de (1000*10) + (2478*50) + (500*70) = 168900 de défense total.

Suite a une grosse attaque de la part des enemis, un script de ma création me renvoit la defense total restante aprés attaque. Ici imaginons qu'il nous revienne 15874 def

Cela nous revient a dire qu'on a eu une perte de 100 - (168900*15874)/100 = 90 % environ

c'est a dire qu'il nous resterais 3978 -90% = 374 environ

Mon but serez de savoir sur c'est 374 combien reste t-il de lancier de cavalerie et de volant sachant que d'apres la def de chacun, le volant et plus resistante que la cavalerie qui est plus resistante que le lancier ????
  • Partager sur Facebook
  • Partager sur Twitter
13 octobre 2009 à 18:40:19

Tu calcules la part de chaque type d'unité...

Les lanciers représentent 6% du total de défense
Les cavaliers représentent 73% du total de défense
Les volants représentent 21% du total de défense

Donc si l'attaque a fait perdre 15346 points de defense, ca a donc enlevé :
15346*6% = 921 points de def = 93 lanciers
15346*73% = 11202 points de def = 224 cavaliers
15346*21% = 3223 points de def = 46 volants
  • Partager sur Facebook
  • Partager sur Twitter
13 octobre 2009 à 21:56:46

merci beaucoup de ta réponse :p, je vais mettre ca en pratique ^^


edit : je vient de mettre en pratique et a ce moment la j'ai remarquer que quelquchose n'allait pas :s si on attaque par exemple avec 1000 lancier 1000 cavelrie et 1000 vol, les 3 partis perte exactement le meme nombre d'unité.

un exemple j'ai 1000 lancier +1000 cavelerie +1000 volant en attaque = 130000 de def total (selon les coeficient du dessus)
apres attaque il revient 53000 de def total.

En suivant ton calcul on, retrouve que il revient 407 lancier , 407 cavelrie et 407 volant ce qui n'st pas logique ^^ puisque les volant sont censé resister plus que les cavalerie qui sont censer resister plus que les lancier^^.

Si quelqu'un a une idée je suis tout preneur :p
  • Partager sur Facebook
  • Partager sur Twitter
14 octobre 2009 à 18:15:32

Il existe une solution, mais je ne sais pas si elle te conviendrait:

Supposons, que tu ai X points de def à faire disparaitre, tu fais d'abord disparaitre tes lanciers, s'il t'en reste encore et que t'as fais disparaitre le bon nombre de pts, tant mieux, sinon tu fais disparaitre la cavalerie du nombre de poins qu'il faut.S'il en reste tant mieux, sinon tant pis, c'est les volants qui prendront.
  • Partager sur Facebook
  • Partager sur Twitter
14 octobre 2009 à 18:48:37

C'est assez peu interessant, car il faut que l'armée soit quasiement détruite pour perdre un exemplaire de l'unité la plus forte, tandis que l'unité la plus faible est réduite a néant a chaque combat

Par contre après tu peux faire des systèmes plus complexes, ou chaque unité a une initiative différente, ou les dégats sont distribués selon les zones (avant, arrière, ciel), avec des types (percant, contondant, feu...) et avec des modificateurs de role (+x% d'attaque contre le type X)

Tu peux même rajouter des "generaux" qui vont donner des caractéristiques particulières a ton armée

C'est interessant d'avoir a faire autre chose que de masser le plus possible de points d'attaque et de defense :ninja:

  • Partager sur Facebook
  • Partager sur Twitter
15 octobre 2009 à 8:52:41

Ce que tu me dit Floooder est intéressant mais pour le moment j'essaye déjà de finir ce simple système d'attaque afin de renouveler mon jeu ^^.


  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
15 octobre 2009 à 21:26:49

Je ne sais pas si les deux autres on dit ce que je pense (désoler pour ne pas dire les pseudos :-° )

Tu récupères le pourcentage de chaque groupe d'unité :
- Cavalerie : 2478 / 3978 * 100 =~ 62% (arrondit à l'unité ^^)
- Lancier : 1000 / 3978 * 100 =~ 25%
- Volant : 500 / 3978 * 100 =~ 13%

Ce qui te restera de tes groupes d'unités : le reste : X = 374 :
- Cavalerie : 62 * X / 100 = 232
- Lancier : 25 * X / 100 = 94
- Volant 13 * X / 100 = 49
Bon tu gagnes une unité ... :p

Désolé si ça ne ta pas aidé :euh:
Oups, c'est vrai que j'ai pas pensé à prendre en compte ceux qui sont plus résistants.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
15 octobre 2009 à 23:25:27

Salut,
D'après tes coeffs :
5 lancier = 1 cavalier
7 lancier = 1 volant

Donc au total c'est comme si t'as 1000 lancier + 2478*5 cavalerie + 500*7 volant, avec le même def de 10. C'est ça ?

Je ne connais pas la logique de ce genre de jeux, mais si ce que j'ai dis plus haut est correcte, il est facile de connaitre le nombre d'unité de chaque type à la fin, en faisant comme a fait Floooder ...
++
  • Partager sur Facebook
  • Partager sur Twitter
16 octobre 2009 à 11:05:12

X.Lewandowski le problème de ton système et que si on a 1000 uniter de chaque alors les perte de chaque groupe d'uniter seront equitable or cela ne doit pas être le cas ^^

MeCaK ton idée de séparer comme ca est interessante mais je ne voit vraiment pas comment effectuer le calcul pour savoir le nombre d'uniter final

  • Partager sur Facebook
  • Partager sur Twitter
8 octobre 2019 à 0:07:41

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)