/// <summary> /// The start simulation_ click. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The e. /// </param> private void StartSimulation(object sender, RoutedEventArgs e) { double swicthToUnfairChance = (double)this.ChangeToSwitchToUnfair.Value; double switchToFairChance = (double)this.ChanceToSwitchToFair.Value; int numberOfRolls = (int)this.NumberOfRolls.Value; var casinoSimulation = new Casino(this.DiceSides.ToList(), switchToFairChance, swicthToUnfairChance); this.steps = casinoSimulation.Simulate(numberOfRolls); var alfaBeta = new AlfaBeta(this.steps, switchToFairChance, swicthToUnfairChance, this.DiceSides.ToList()); var alfaBetaResult = alfaBeta.Calculate(); double alfaPass = 0; for (int i = 0; i < alfaBetaResult.Length; ++i) { if (alfaBetaResult[i] == this.steps[i].DiceState) { ++alfaPass; } } var viterbi = new Viterbi(this.steps, switchToFairChance, swicthToUnfairChance, this.DiceSides.ToList()); var viterbiResult = viterbi.Calculate(); double viterbiPass = 0; for (int i = 0; i < viterbiResult.Length; ++i) { if (viterbiResult[i] == this.steps[i].DiceState) { ++viterbiPass; } } int a = 0; }