|
|
|
|
- Sagramor
- Président du Conseil Royal
Un Chti renseignement
Je suis en train de refaire un simulateur de bataille que je mettrai en ligne, bientôt, j'espère. Je ne sais plus où trouver le % de risque de faire occire son chevalier?
Tant qu'à Faire, Faire le Mieux Så länge att göra, göra det bästa ho guégrapha guégrapha Maison Sagramor
Re : Un Chti renseignement
Tu l'as dans l'onglet bataille de l'aide en ligne de Fullmet je pense...
Kalan: "Tour 1. Pffff, je vais encore devoir céder mon trône à Saori" Silent, De Carpat, Ozric, Jacques de Rèze:"On reste uniquement pour Saori" Omar Bricedad:"Aaaargh, Saori m'a encore TUER hyper facilement!"
- Sagramor
- Président du Conseil Royal
Re : Un Chti renseignement
Tu as le résultat Mais pas la formule
Tant qu'à Faire, Faire le Mieux Så länge att göra, göra det bästa ho guégrapha guégrapha Maison Sagramor
Re : Un Chti renseignement
Il y a un "bouton" qui lance l'opération, je suppose que c'est une macro. Voilà le détail (je suis pas du tout un spécialiste):
Sub SimuBataille()' Simule autant de batailles qu'indiqué dans la cellule D12 et donne la moyenne des résultats Dim Ren1 As Double, Ren2 As Double Dim Arm1 As Double, Arm2 As Double Dim Rep1 As Double, Rep2 As Double Dim Vic1 As Double, Vic2 As Double Dim Arm1Tmp As Double, Arm2Tmp As Double Dim Ren1Tmp As Double, Ren2Tmp As Double Dim Ren1Tot As Double, Ren2Tot As Double Dim Arm1Tot As Double, Arm2Tot As Double Dim Mor1Tot As Double, Mor2Tot As Double Dim NbSim As Long Dim Compteur As Long Dim fini As Boolean Dim coef1 As Double, coef2 As Double, coef3 As Double, coef4 As Double Dim Al1 As Double, Al2 As Double Dim def1 As Double, def2 As Double Randomize Ren1 = CDbl(Range("C6").Value) Ren2 = CDbl(Range("F6").Value) Arm1 = CDbl(Range("C7").Value) Arm2 = CDbl(Range("F7").Value) Rep1 = CDbl(Range("C8").Value) Rep2 = CDbl(Range("F8").Value) NbSim = CLng(Range("D12").Value) Vic1 = 0 Vic2 = 0 Arm1Tot = 0 Arm2Tot = 0 Mor1Tot = 0 Mor2Tot = 0 Compteur = 0 def1 = 0 def2 = 0 If (CLng(Range("D5").Value) = 1) Then def1 = 0.1 def2 = 0.1 End If If (CLng(Range("D5").Value) = 2) Then def1 = 0.25 def2 = 0.2 End If If (CLng(Range("D5").Value) = 3) Then def1 = 0.65 def2 = 0.7 End If For Compteur = 1 To NbSim fini = False Arm1Tmp = Arm1 Arm2Tmp = Arm2 Ren1Tmp = Ren1 Ren2Tmp = Ren2 While (fini = False) If (Ren2Tmp = 0) Then Ren2Tmp = 1 End If If (Ren1Tmp = 0) Then Ren1Tmp = 1 End If coef1 = Arm1Tmp * Ren1Tmp / Ren2Tmp coef2 = Arm2Tmp * Ren2Tmp / Ren1Tmp coef3 = coef1 * (1 - def2) coef4 = coef2 * (1 + def1) Al1 = (1 + coef1 * Rnd) Al2 = (1 + coef4 * Rnd) If (Al1 = Al2) Then Arm1Tmp = Round(Arm1Tmp - 0.1 * coef2) Arm2Tmp = Round(Arm2Tmp - 0.1 * coef3) If (Arm1Tmp < 0) Then Arm1Tmp = 0 End If If (Arm2Tmp < 0) Then Arm2Tmp = 0 End If Else If (Al1 > Al2) Then Arm2Tmp = Round(Arm2Tmp - 0.1 * coef3) If (Arm2Tmp <= 0) Then Arm2Tmp = 0 Else Arm1Tmp = Round(Arm1Tmp - 0.1 * Arm2Tmp * Ren2Tmp / Ren1Tmp) End If Ren1Tmp = Round(Ren1Tmp + 0.01 * Ren2Tmp) Ren2Tmp = Round(Ren2Tmp - 0.01 * Ren1Tmp) Else ' Al1 < Al2 Arm1Tmp = Round(Arm1Tmp - 0.1 * coef2) If (Arm1Tmp <= 0) Then Arm1Tmp = 0 Else Arm2Tmp = Round(Arm2Tmp - 0.1 * (1 - def2) * Arm1Tmp * Ren1Tmp / Ren2Tmp) End If If (Arm2Tmp <= 0) Then Arm2Tmp = 0 End If Ren2Tmp = Round(Ren2Tmp + 0.01 * Ren1Tmp) Ren1Tmp = Round(Ren1Tmp - 0.01 * Ren2Tmp) End If End If If (Arm1Tmp <= Rep1) Then fini = True Vic2 = Vic2 + 1 Ren2Tot = Ren2Tot + Ren2Tmp If Arm1Tmp = 0 Then Mor1Tot = Mor1Tot + 1 Else Ren1Tot = Ren1Tot + Ren1Tmp - Ren2Tmp * 0.1 End If Else If (Arm2Tmp <= Rep2) Then fini = True Vic1 = Vic1 + 1 Ren1Tot = Ren1Tot + Ren1Tmp + Ren2Tmp * 0.1 If Arm2Tmp = 0 Then Mor2Tot = Mor2Tot + 1 Else Ren2Tot = Ren2Tot + Ren2Tmp End If End If End If Wend Arm1Tot = Arm1Tot + Arm1Tmp Arm2Tot = Arm2Tot + Arm2Tmp Next Compteur Range("F14").FormulaR1C1 = Vic1 / NbSim Range("F15").FormulaR1C1 = Mor1Tot / NbSim Range("F16").FormulaR1C1 = Mor2Tot / NbSim If (Mor1Tot = NbSim) Then Range("C19").FormulaR1C1 = 1 Range("C20").FormulaR1C1 = 0 Else Range("C19").FormulaR1C1 = Ren1Tot / (NbSim - Mor1Tot) Range("C20").FormulaR1C1 = Arm1Tot / (NbSim - Mor1Tot) End If If (Mor2Tot = NbSim) Then Range("F19").FormulaR1C1 = 1 Range("F20").FormulaR1C1 = 0 Else Range("F19").FormulaR1C1 = Ren2Tot / (NbSim - Mor2Tot) Range("F20").FormulaR1C1 = Arm2Tot / (NbSim - Mor2Tot) End IfEnd Sub
Dernière modification par Princesse Saori (26/10/2014 11:54:36)
Kalan: "Tour 1. Pffff, je vais encore devoir céder mon trône à Saori" Silent, De Carpat, Ozric, Jacques de Rèze:"On reste uniquement pour Saori" Omar Bricedad:"Aaaargh, Saori m'a encore TUER hyper facilement!"
Re : Un Chti renseignement
Bon c'est pas lisible, je te l'envoie par mail.
Kalan: "Tour 1. Pffff, je vais encore devoir céder mon trône à Saori" Silent, De Carpat, Ozric, Jacques de Rèze:"On reste uniquement pour Saori" Omar Bricedad:"Aaaargh, Saori m'a encore TUER hyper facilement!"
- Sagramor
- Président du Conseil Royal
Re : Un Chti renseignement
Je vais pouvoir mettre en ligne un simulateur d'ici une semaine, j'espère
Tant qu'à Faire, Faire le Mieux Så länge att göra, göra det bästa ho guégrapha guégrapha Maison Sagramor
Re : Un Chti renseignement
Cool! J'ai hâte de voir ca!
|
|
|
|
Version des règles : 2.12.1
Gloire et Pouvoir est membre du
|
|