示例#1
0
        public override void RandomTurn(GameBotView game, out Figure who, out Point where)
        {
            int canBeSelected = 0;

            for (int i = 0; i < game.CurrentField.FigureCount; i++)
            {
                if (game.CurrentField.GetFigureBy(i).Team == game.CurrentPlayerTeam)
                {
                    canBeSelected++;
                }
            }
            if (canBeSelected > 0)
            {
ReRoll:
                Random rnd = new Random(DateTime.Now.Millisecond); Figure figureSelected;
                List <Point> whereCanWeGo = new List <Point>(); int tr = 0;
                do
                {
                    tr++;
                    figureSelected = game.CurrentField.GetFigureBy(rnd.Next(game.CurrentField.FigureCount));
                    whereCanWeGo   = game.WhereToGo(figureSelected);
                } while ((whereCanWeGo.Count <= 1 && tr < 100) || figureSelected.Team != game.CurrentPlayerTeam);
                //select a key
                Point goTo = new Point(-1, -1); int tryes = 0;
                do
                {
                    tryes++;
                    if (whereCanWeGo.Count <= 0)
                    {
                        goto ReRoll;
                    }
                    goTo = whereCanWeGo[0 + rnd.Next(whereCanWeGo.Count - 0)];
                }while ((goTo.X < 0 || goTo.Y < 0 || goTo.X > 7 || goTo.Y > 7) && tryes < 100);
                if (goTo.X < 0 || goTo.Y < 0 || goTo.X > 7 || goTo.Y > 7)
                {
                    goto ReRoll;
                }
                //goTo = figureSelected.Position;


                game.SelectedPointsSet = whereCanWeGo;
                who   = figureSelected;
                where = goTo;

                return;
            }
            //if there is NO wawkis
            who   = null;
            where = new Point(-1, -1); return;
        }
示例#2
0
 public abstract void RandomTurn(GameBotView game, out Figure who, out Point where);