当前位置: 首页>>代码示例>>C#>>正文


C# IPlayer.MakeMove方法代码示例

本文整理汇总了C#中IPlayer.MakeMove方法的典型用法代码示例。如果您正苦于以下问题:C# IPlayer.MakeMove方法的具体用法?C# IPlayer.MakeMove怎么用?C# IPlayer.MakeMove使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IPlayer的用法示例。


在下文中一共展示了IPlayer.MakeMove方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: MinmaxTest

        public static void MinmaxTest(IPlayer white, IPlayer black)
        {
            int wynik = 0, wht = 0, draw = 0, blc = 0, total = 0;
            int size = 100;
            Move m;

            for (int i = 0; i < size; i++)
            {
                //                int now = DateTime.Now.Second;
                bool kto = true;
                Plansza p = new Plansza();
                p.rozpoczecie();
                wynik = 0;
                while ((wynik = p.GameEnded()) == 2)
                {
                    if (kto)
                    {
                        m = white.MakeMove(p, 1);
                        if (m == null)
                        {
                            wynik = 1;
                            break;
                        }
                    }
                    else
                    {
                        m = black.MakeMove(p, 2);
                        if (m == null)
                        {
                            wynik = -1;
                            break;
                        }
                    }
                    p.ExecuteMove(m);
                    kto = !kto;
                }
                switch (wynik)
                {
                    case -1:
                        wht++;
                        break;
                    case 0:
                        draw++;
                        break;
                    case 1:
                        blc++;
                        break;
                    default:
                        break;
                }
                //              Console.WriteLine(wynik + "   \t" + (DateTime.Now.Second-now) + " sec.");
                total++;
            }
            Console.WriteLine(white.MyName() + ":\t" + wht);// + "," + Math.Round(((double)wht/(double)total * 100.0), 2));
            Console.WriteLine("remis:\t" + draw);
            Console.WriteLine(black.MyName() + ":\t" + blc);// + "," + Math.Round(((double)blc / (double)total * 100.0), 2));
            Console.WriteLine();
        }
开发者ID:szubster,项目名称:warcaby,代码行数:58,代码来源:Program.cs

示例2: GameWindow

        internal GameWindow(Board board)
            : this()
        {
            this.board = board;
            player0 = board.CurrentPlayer;
            player1 = board.OpposingPlayer;

            p0Series.ItemsSource = p0Points;
            p0Series.Title = player0.Name;
            p1Series.ItemsSource = p1Points;
            p1Series.Title = player1.Name;

            ShowBoard();
            moveWatch = Stopwatch.StartNew();
            if (!(board.CurrentPlayer is HumanPlayer))
                player0.MakeMove(board, null, Move);
        }
开发者ID:Kha,项目名称:nusski-cs-client,代码行数:17,代码来源:GameWindow.xaml.cs

示例3: TestFunction

        public static void TestFunction(int size, IPlayer white, IPlayer black)
        {
            StreamWriter sw = new StreamWriter("final_test.csv", true, System.Text.Encoding.UTF8);
            int wynik = 0, wht = 0, draw = 0, blc = 0, total = 0;
            Move m;

            for (int i = 0; i < size; i++)
            {
            //                int now = DateTime.Now.Second;
                bool kto = true;
                Plansza p = new Plansza();
                p.rozpoczecie();
                wynik = 0;
                while ((wynik = p.GameEnded()) == 2)
                {
                    if (kto)
                    {
                        m = white.MakeMove(p, 1);
                        if (m == null)
                        {
                            wynik = 1;
                            break;
                        }
                    }
                    else
                    {
                        m = black.MakeMove(p, 2);
                        if (m == null)
                        {
                            wynik = -1;
                            break;
                        }
                    }
                    p.ExecuteMove(m);
                    kto = !kto;
                }
                switch (wynik)
                {
                    case -1:
                        wht++;
                        break;
                    case 0:
                        draw++;
                        break;
                    case 1:
                        blc++;
                        break;
                    default:
                        break;
                }
              //              Console.WriteLine(wynik + "   \t" + (DateTime.Now.Second-now) + " sec.");
                total++;
            }
            sw.WriteLine(white.MyName() + "," + black.MyName() + "," + (double)wht / (double)total * 100.0 + "," + (double)draw / (double)total * 100.0 + "," + (double)blc / (double)total * 100.0 + "," + total);
            sw.Close();
        }
开发者ID:szubster,项目名称:warcaby,代码行数:56,代码来源:Program.cs

示例4: ConstructGame

        void ConstructGame(Action<IGame> gameOverHandler, IPlayer someIPlayer, IPlayer someOtherIPlayer, IPlayer firstIPlayer)
        {
            GameOverEvent += gameOverHandler;

            Board = new IPlayer[BoardWidth, BoardLength];
            SomePlayer = someIPlayer;
            SomeOtherPlayer = someOtherIPlayer;
            NextPlayer = firstIPlayer;

            NextPlayer.MakeMove(this);
        }
开发者ID:seanbiefeld,项目名称:Undefeated-TicTacToe,代码行数:11,代码来源:Game.cs

示例5: MakeMove

 private void MakeMove(IPlayer player)
 {
     if (delayInSeconds != 0)
     {
         Thread.Sleep(1000 * delayInSeconds);
     }
     var player1Move = player.MakeMove(board);
     CheckMove(player1Move);
     board.SetPosition(player1Move.Item1, player1Move.Item2, player.GetCharacterType());
     CheckForWinner();
 }
开发者ID:zarzavat,项目名称:TicTacToe,代码行数:11,代码来源:Game.cs


注:本文中的IPlayer.MakeMove方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。