Cacul incalculable ???

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
neoxen
Messages: 6
Enregistré le: 15 Oct 2009, 07:40

Cacul incalculable ???

par neoxen » 15 Oct 2009, 07:44

Bonjour a tous,

Je travaille depuis un moment sur un jeu que j'ai crée sur internet et je suis confronté au gros problème de la gestion de l'attaque entre plusieur unité.
J'explique ici vite fait le principe du calcul.

Imaginer 3 unité d'attaque :
- les lanciers avec 10 de def
- les cavaleries avec 50 de def
- les volants avec 70 de def

Lors d'une attaque j'envois 1000 lanciers + 2478 cavaleries + 500 volants . 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 un programme de ma création aprés l'attaque de c'est unité, le nombre de defense total restan m'est retourné. 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 % de défense environ

c'est a dire qu'il nous resterais 3978 -90% = 374 unité 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 ????

Merci d'avance :)



Finrod
Membre Irrationnel
Messages: 1944
Enregistré le: 24 Sep 2009, 11:00

par Finrod » 15 Oct 2009, 08:17

Tu fais de la simulation en gros.

Tu travailles avec des relations linéaires donc il a y proportionnalité...

Je vois deux solution : Ajouter une relation pour calculer la répartition finale. Je ne suis pas sur que ca sois facile à implémenter, à toi de voir.

Autre solution : ne plus linéariser. Pour cela il faut une relation non linéaire pour la défense, j'explique sur un exemple. Disons que tes unités (taille 1000, 2478,500) ont pour défense 1, 5 et 7 alors la défense totale est . si cette défense est diminué de 90% alors les unité de défense 1 sont diminué de 90%, les unités de défense 5 sont diminué de 90% puissance 5 soit 59% et les unités de puissance 7 de 90 pour cents puissance 7 soit 48%.

Dis moi si ça te plaît.

neoxen
Messages: 6
Enregistré le: 15 Oct 2009, 07:40

par neoxen » 16 Oct 2009, 09:18

ton raisonement est vraiment intéressant, j'ai tenter de faire comme tu m'a dit et donc si je te comprend bien suite a une attaque identique au premier exemple, on aurait:


1000 -90% = 100 uniter
2478 - 90%^5 = 1015 uniter
500 - 90%7 = 261 uniter

Ce qui nous fait un total de 100+1015+261 = 1376

Ce qui ne correspond pas vraiment car l'ont ne devrait avoir un total que de 374 unitée :s

Finrod
Membre Irrationnel
Messages: 1944
Enregistré le: 24 Sep 2009, 11:00

par Finrod » 16 Oct 2009, 09:42

Non ça correspond, puisque la perte de 90% est sur la défense et non sur le nombre d'unités !

Je trouve ça mieux perso. La perte d'unité est relativisée par la défense. Pour une perte de défense de 90% en imaginant que tu n'ai que des unités de défense 5,la perte enterme d'unité sera toujours de 90%^5 = 59%

c'est différent puisque non linéaire.

neoxen
Messages: 6
Enregistré le: 15 Oct 2009, 07:40

par neoxen » 16 Oct 2009, 11:24

donc si je recapitule bien :

si on attaque avec
1000 lanciers (def de 10)
2478 cavalerie (def de 50)
500 volante (def de 70)

nbr total avant attaque = 1000+2478+500 = 3978 uniter
Defense avant atatque = (1000*10) + (2478*50) + (500*70) = 168900 def

Aprés l'attaque les stats son :

defense apres attaque = 15874 def
perte en % = 100- (def apres attaque / def avant attaque)*100= 90,60 %
soit 9.40 % d'uniter restante

donc il restera apres attaque :
lancier = 1000*9,40% = 94 lancier restants
cavalerie = 2478*(9,40%^1/5) = 1544 cavaleries restantes
volant = 500*(9,40%^1/7)= 357 volants restants

on a donc eu une perte de
1000 -94 = 906 lanciers
2478 - 1544 = 934 cavalerie
500-357 = 143 volant

Ca me parait beaucoup en fait sachant que en theorie l'attaquant est censer avoir perdu 90 % de ses unitées

imagine maintenant les perte aurait été de 99 %
cela voudrait dire qu'il nous resterais
10 lancier restant
986 cavalerie restante
258 volant

Ce qui est totalement impossible puisque 99% de l'armée est censé être décimer^^

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 12:07

par Doraki » 16 Oct 2009, 11:26

Et c'est assez paradoxal que les unités ayant le mieux survécu sont celles avec le moins de défense.

Finrod
Membre Irrationnel
Messages: 1944
Enregistré le: 24 Sep 2009, 11:00

par Finrod » 16 Oct 2009, 11:37

Lol on se comprend pas.

Avec la méthode que je t'ai proposé, si il y a 90% de perte de défense,il n'y a pas 90% de perte d'unités, point. Ce n'est pas grave en soi.

Si tu veux absolument trouver les stats qui correspondentà uneperte d'unité de 90%, tu dois résoudre une équation de la forme ax+bx^{5}+cx^{7}=0,9 où a,b,c sont les proportions de chaque type d'unité et où x recherché est la proporton de défense perdue.

Bon ben c'est pas facile à résoudre...

Etje ne vois pas en quoi tu trouves ça indispensable.


Edit : tu peux considérer que une défense élevée correspond à des unités qui devraient être morte mais qui ont survécu grace à armure ou autre.

Ex défense 2 et perte de défense de 90% implique qu'il y a eu en fait 81% de morts soit 9% de sauvés.

neoxen
Messages: 6
Enregistré le: 15 Oct 2009, 07:40

par neoxen » 16 Oct 2009, 13:01

arf effectivement je ne t'avais pas bien compris désolé ^^.

Pour se qui est de la survie des unité oui ca peut être une bonne idée je vais étudier tout cas :)

Merci encore de t'etre pencher sur mon problème en tout cas :)

Finrod
Membre Irrationnel
Messages: 1944
Enregistré le: 24 Sep 2009, 11:00

par Finrod » 16 Oct 2009, 13:02

De rien, j'ai souvent essayé de créer des règles de jeux de rôle ou autre par le passé mais comme je ne fait pas d'info , je ne les ai jamais implémentées.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 27 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite