Ejemplo n.º 1
0
        private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            var test = e.ProgressPercentage;

            if (e.UserState is int)
            {
                PgrBarDepth.Value = (double)test * 100 / (int)e.UserState;
            }
            else if (e.UserState != null)
            {
                TxtPlayer1.AppendText(e.UserState.ToString() + Environment.NewLine);
            }
        }
Ejemplo n.º 2
0
        public void Actualize()
        {
            ViewBox.Text = Visualizer.Visualize(CurrentGame);

            while (CurrentGame.Logs.Count > 0)
            {
                var logEntry = CurrentGame.Logs.Dequeue();
                if (logEntry.Level <= LogLevel.INFO)
                {
                    TxtPlayLog.Text += $"[{logEntry.BlockType}] - {logEntry.Location}: {logEntry.Text}\n";
                }
            }


            TxtPlayLog.ScrollToEnd();

            if (CurrentGame.State == State.RUNNING && !BtnStart.IsEnabled)
            {
                TxtPlayer1.Text = $"* Calculating solutions *** {CurrentGame.CurrentPlayer} ***" + Environment.NewLine;
                TxtPlayer1.AppendText(
                    $"... with depth: {(int)SlidMaxDepth.Value} and width: {(int)SlidMaxWidth.Value} ..." +
                    Environment.NewLine);
                var worker = new BackgroundWorker {
                    WorkerReportsProgress = true
                };
                worker.DoWork             += worker_DoWork;
                worker.ProgressChanged    += worker_ProgressChanged;
                worker.RunWorkerCompleted += worker_RunWorkerCompleted;
                var scoring = CurrentGame.CurrentPlayer == CurrentGame.Player1
                                        ? GuiHelper.GetScoring((Strategy)CboxAi1.SelectedValue)
                                        : GuiHelper.GetScoring((Strategy)CboxAi2.SelectedValue);
                worker.RunWorkerAsync(new List <object> {
                    (int)SlidMaxDepth.Value, (int)SlidMaxWidth.Value, scoring
                });
                BtnStart.Content = $"{CurrentGame.CurrentPlayer} Move!";
            }
            else if (CurrentGame.State == SabberStoneCore.Enums.State.COMPLETE)
            {
                TxtPlayer1.Text = ".. Game is finished!" + Environment.NewLine +
                                  $"P1: {CurrentGame.Player1} => {CurrentGame.Player1.PlayState}" + Environment.NewLine +
                                  $"P2: {CurrentGame.Player2} => {CurrentGame.Player2.PlayState}" + Environment.NewLine;
                BtnStart.IsEnabled = true;
                BtnStart.Content   = "Finished!" + Environment.NewLine + "..new game?";

                CboxDeck1.IsEnabled = true;
                CboxDeck2.IsEnabled = true;
                CboxAi1.IsEnabled   = true;
                CboxAi2.IsEnabled   = true;
            }
        }
Ejemplo n.º 3
0
 private void ShowCurrentSolution()
 {
     TxtPlayer1.Text = $"* Best Moves *** {CurrentGame.CurrentPlayer.Name} ***" + Environment.NewLine;
     CurrentSolution.ForEach(
         p => TxtPlayer1.AppendText(CurrentSolution.IndexOf(p) + ") " + p.FullPrint() + Environment.NewLine));
 }