Beispiel #1
0
 public Snake(ISnakeField field, IBodyFactory bodyFactory, IFoodFactory foodFactory, int step)
 {
     Step         = step;
     Field        = field;
     _bodyFactory = bodyFactory;
     _foodFactory = foodFactory;
 }
Beispiel #2
0
        private void InitSnake(ISnakeField snakeField, IBodyFactory bodyFactory, IFoodFactory foodFactory)
        {
            Snake = new Snake(snakeField, bodyFactory, foodFactory, STEP);
            snakeField.Clear();
            _field.Snake     = Snake;
            Snake.OnCrashed += GameOver;
            Snake.OnEat     += SnakeOnOnEat;

            Snake.InitSnake(new Position(5 * STEP, 5 * STEP), 3);
        }
Beispiel #3
0
        public SnakeGame(ISnakeField field, IBodyFactory bodyFactory, IFoodFactory foodFactory, int countOfItemsInRow, int snakeSpeed)
        {
            _field             = field;
            _bodyFactory       = bodyFactory;
            _countOfItemsInRow = countOfItemsInRow;
            _snakeSpeed        = snakeSpeed;
            _foodFactory       = foodFactory;
            _snakeSpeed        = snakeSpeed;

            InitGame(field, bodyFactory, foodFactory);
        }
        protected Object CreateAndPopulateFrame(ByteBuffer input)
        {
            byte   type     = input.GetByte();
            ushort channel  = input.GetUInt16();
            uint   bodySize = input.GetUInt32();

            IBodyFactory bodyFactory = (IBodyFactory)_supportedBodies[type];

            if (bodyFactory == null)
            {
                throw new AMQFrameDecodingException("Unsupported body type: " + type);
            }
            AMQFrame frame = new AMQFrame();

            frame.PopulateFromBuffer(input, channel, bodySize, bodyFactory);

            byte marker = input.GetByte();

            if (marker != 0xCE)
            {
                throw new FormatException("marker is not 0xCE");
            }
            return(frame);
        }
Beispiel #5
0
 private void InitGame(ISnakeField snakeField, IBodyFactory componentFactory, IFoodFactory foodFactory)
 {
     STEP = AdjustGameField();
     InitSnake(snakeField, componentFactory, foodFactory);
 }
 /// <summary>
 /// Populates the frame instance data from the supplied buffer.
 /// </summary>
 /// <param name="buffer">The buffer.</param>
 /// <param name="channel">The channel.</param>
 /// <param name="bodySize">Size of the body in bytes</param>
 /// <param name="bodyFactory">The body factory.</param>
 /// <exception cref="AMQFrameDecodingException">Thrown if the buffer cannot be decoded</exception>
 public void PopulateFromBuffer(ByteBuffer buffer, ushort channel, uint bodySize, IBodyFactory bodyFactory)
 {
     _channel   = channel;
     _bodyFrame = bodyFactory.CreateBody(buffer);
     _bodyFrame.PopulateFromBuffer(buffer, bodySize);
 }
Beispiel #7
0
 /// <summary>
 /// Populates the frame instance data from the supplied buffer.
 /// </summary>
 /// <param name="buffer">The buffer.</param>
 /// <param name="channel">The channel.</param>
 /// <param name="bodySize">Size of the body in bytes</param>
 /// <param name="bodyFactory">The body factory.</param>
 /// <exception cref="AMQFrameDecodingException">Thrown if the buffer cannot be decoded</exception>
 public void PopulateFromBuffer(ByteBuffer buffer, ushort channel, uint bodySize, IBodyFactory bodyFactory)            
 {
     _channel = channel;
     _bodyFrame = bodyFactory.CreateBody(buffer);
     _bodyFrame.PopulateFromBuffer(buffer, bodySize);
 }