私は戦いのために次のコードを持っていますが、ユーザーは約99.9%の確率で勝ちます(5000回のランダムループでテスト済み)
戦闘に影響を与える次の変数があります
強度 | 防御 | 器用さ | ダメージ | ポータルの難易度 (常に + 1 で停止 * 0 ずつ) | 致命的
これは私がこれまでに持っているものです
//player variable
//(int) player.itemDamage = 20
//(int) player.itemStr = 2
//(int) player.itemDex = 4
int defense = (int)Math.Round((((portal + 1) * ((rand.NextDouble() + 0.5))) + 5) / 2, 0);
int damage = (int)Math.Round((((portal + 1) * ((rand.NextDouble() + 0.5))) + player.itemDamage), 0);
int str = (int)Math.Round((((portal + 1) * ((rand.NextDouble() + 0.5))) + player.itemStr), 0);
int dex = (int)Math.Round((((portal + 1) * ((rand.NextDouble() + 0.5))) + player.itemDex), 0);
while(true)
{
for (int i = 0; i < 10; i++)
{
critical += rand.NextDouble();
}
eHP -= (int)Math.Round((((player.itemDamage + player.itemStr) - defense) * critical) / 2, 0);
critical = 1;
for (int i = 0; i < 10; i++)
{
critical += rand.NextDouble();
}
HP -= (int)Math.Round((((damage + str) - 5) * critical) / 2, 0);
if (eHP <= 0)
{
return;
}
else if (HP <= 0)
{
return;
}
}
ユーザー (HP) が 70% の確率で勝てるようにするには、次のコードで何を変更すればよいでしょうか? 私はアルゴリズムがひどい 編集: ユーザーに 70% の確率で勝つことを望んでいますが、単純な if(0 > 70) win else Loose ステートメントを使用しないで、ダメージに基づいて丸めたいと思っています。非常に興味深い戦い。