成功率に基づいた犯罪機能を持つゲームを作成しています。プレイヤーがアクションを実行すると、成功率が上昇します。
現在、成功したアクションと失敗したアクションに基づいてランダムな % を生成します。ただし、これにより、ページをロードするたびにパーセンテージが変化します。アクションがコミットされた後、このパーセンテージを静的にする方法はありますか?
これは私のコードです:
コントローラ:
private ViewModelCrime GetChances(UserGangster gangster) {
var cm = new ViewModelCrime();
for (int i = 1; i < 10; i++) {
cm.SelectedCrime = (ViewModelCrime.Crime)i;
double d6 = (cm.ChanceMultiplier * gangster.GansterStatistic.CrimesSuccess * (_rnd.Next(90, 105) / 100)) + ((cm.ChanceMultiplier * gangster.GansterStatistic.CrimesFailed / (_rnd.Next(380, 420) / 100)));
double finalD2 = LimitSuccesPercentage(cm.SelectedCrime, d6);
cm.SuccesPercentage.Add((ViewModelCrime.Crime)i, finalD2);
モデル:
public double ChanceMultiplier {
get {
switch (SelectedCrime) {
case Crime.Crime01:
return 0.1;
case Crime.Crime02:
return 0.08;
case Crime.Crime03:
return 0.04;
case Crime.Crime04:
return 0.0035;
case Crime.Crime05:
return 0.0015;
case Crime.Crime06:
return 0.0008;
case Crime.Crime07:
return 0.0005;
case Crime.Crime08:
return 0.0002;
case Crime.Crime09:
return 0.0001;
default:
return 0.0001;
}
}
}
public Dictionary<Crime, double> SuccesPercentage{
get { return _succesPercentage; }
set { _succesPercentage = value; }
ビューでは、1 行を使用して % を表示します
意見:
@string.Format("{0:P0}",Model.SuccesPercentage[(ViewModelCrime.Crime)9])
どんな助けでも大歓迎です!