예제 #1
0
 public override void InitializeRound(IWorldContext context)
 {
     m_context.Cycle = context.Cycle;
     m_roundBot      = context.GetBotsWithKindOfAbility <ISortingBotAbility> () [0];
     m_ability       = context.GetBotAbility <ISortingBotAbility> (m_roundBot);
     m_ability.Initialize(m_context);
 }
예제 #2
0
        /// <summary>
        /// Initializes the round.
        /// </summary>
        /// <param name="context">The world context.</param>
        public override void InitializeRound(IWorldContext context)
        {
            m_board = new TicTacToeBoard();
            m_noughtBotEnviromentContext = new TicTacToeEnvironmentContext();
            m_crossBotEnviromentContext  = new TicTacToeEnvironmentContext();
            m_upateResult = new TicTacToeEnvironmentUpdateResult();

            var bots = context.GetBotsWithKindOfAbility <ITicTacToeBotAbility>();

            m_crossBot        = bots[0];
            m_crossBotAbility = (ITicTacToeBotAbility)context.GetBotAbility <ITicTacToeBotAbility>(m_crossBot);
            m_crossBotEnviromentContext.Board             = m_board;
            m_crossBotEnviromentContext.MySpaceType       = SpaceType.Cross;
            m_crossBotEnviromentContext.OpponentSpaceType = SpaceType.Nought;

            m_noughtBot        = bots[1];
            m_noughtBotAbility = (ITicTacToeBotAbility)context.GetBotAbility <ITicTacToeBotAbility>(m_noughtBot);
            m_noughtBotEnviromentContext.Board             = m_board;
            m_noughtBotEnviromentContext.MySpaceType       = SpaceType.Nought;
            m_noughtBotEnviromentContext.OpponentSpaceType = SpaceType.Cross;

            m_winnerSpaces = new ITicTacToeBoardSpace[0];
        }
예제 #3
0
        public override void InitializeRound(IWorldContext context)
        {
            var bots = context.GetBotsWithKindOfAbility <IPongBotAbility>();

            ResetBallPosition();

            m_leftPaddleBot                 = bots[0];
            m_leftPaddleBotAbility          = (IPongBotAbility)context.GetBotAbility <IPongBotAbility>(m_leftPaddleBot);
            m_leftPaddleContext             = new PongEnvironmentContext();
            m_leftPaddleContext.TableWidth  = TableSize.Width;
            m_leftPaddleContext.TableHeight = TableSize.Height;

            m_rightPaddleBot                 = bots[1];
            m_rightPaddleBotAbility          = (IPongBotAbility)context.GetBotAbility <IPongBotAbility>(m_rightPaddleBot);
            m_rightPaddleContext             = new PongEnvironmentContext();
            m_rightPaddleContext.TableWidth  = TableSize.Width;
            m_rightPaddleContext.TableHeight = TableSize.Height;

            LeftPaddle  = new Paddle(m_leftPaddleBot, 2, (TableSize.Height / 2) - (PaddleHeight / 2), PaddleWidth, PaddleHeight);
            RightPaddle = new Paddle(m_rightPaddleBot, TableSize.Width - LeftPaddle.Width - 2, LeftPaddle.Y, PaddleWidth, PaddleHeight);

            m_leftPaddleBotAbility.Initialize(m_leftPaddleContext);
            m_rightPaddleBotAbility.Initialize(m_rightPaddleContext);
        }
예제 #4
0
        /// <summary>
        /// Initializes the round.
        /// </summary>
        /// <param name="context">The world context.</param>
        public override void InitializeRound(IWorldContext context)
        {
            MarkAllCellsUnknown();
            MarkBornAndTargetCells();

            m_environmentContext = new MazeEnvironmentContext(m_map);
            m_environmentContext.SetCellState(m_bornCell.Y, m_bornCell.X, CellState.Visited);
            m_environmentContext.MyCell = m_bornCell;

            m_roundBot        = context.GetBotsWithKindOfAbility <IMazeBotAbility>()[0];
            m_roundBotAbility = (IMazeBotAbility)context.GetBotAbility <IMazeBotAbility>(m_roundBot);
            m_roundBotAbility.Initialize(m_environmentContext);

            m_botRank = null;
        }