public void DirectionU2RTest() { var snake = new SnakeObject(6, 6); snake.Direction = SnakeDirection.Down; for (var i = 0; i < 15; i++) { snake.Movement(); } snake.Direction = SnakeDirection.Left; for (var i = 0; i < 15; i++) { snake.Movement(); } snake.Direction = SnakeDirection.Up; for (var i = 0; i < 15; i++) { snake.Movement(); } snake.Direction = SnakeDirection.Right; for (var i = 0; i < 15; i++) { snake.Movement(); } Assert.AreEqual(SnakeDirection.Right, snake.Direction, "Snake failed to turn right"); }
private static void DrawSnake(SnakeObject s) { foreach (var parts in s.SnakePos) { SwinGame.FillRectangle(S_CLR, parts.Item1 * _snake_part_length + _snake_offset_x + OFFSET * 2, parts.Item2 * _snake_part_length + _snake_offset_y, _snake_part_length, _snake_part_length); SwinGame.DrawRectangle(BG_CLR, parts.Item1 * _snake_part_length + _snake_offset_x + OFFSET * 2, parts.Item2 * _snake_part_length + _snake_offset_y, _snake_part_length, _snake_part_length); } foreach (var itm in _grid.Items) { SwinGame.FillRectangle(S_CLR, itm.X * _snake_part_length + _snake_offset_x + OFFSET * 2, itm.Y * _snake_part_length + _snake_offset_y, _snake_part_length, _snake_part_length); } SwinGame.FillRectangle(Color.Black, _snake_offset_x - _snake_part_length + OFFSET * 2, _snake_offset_y - _snake_part_length, (_grid.Width + 2) * _snake_part_length, _snake_part_length); SwinGame.FillRectangle(Color.Black, _snake_offset_x - _snake_part_length + OFFSET * 2, _snake_offset_y - _snake_part_length, _snake_part_length, (_grid.Height + 2) * _snake_part_length); SwinGame.FillRectangle(Color.Black, _snake_offset_x - _snake_part_length + OFFSET * 2, _grid.Height * _snake_part_length + _snake_offset_y, (_grid.Width + 2) * _snake_part_length, _snake_part_length); SwinGame.FillRectangle(Color.Black, _grid.Width * _snake_part_length + _snake_offset_x + OFFSET * 2, _snake_offset_y - _snake_part_length, _snake_part_length, (_grid.Height + 2) * _snake_part_length); SwinGame.DrawText("SCORE", FONT_CLR, N_FONT, 30, _winY - 210); SwinGame.DrawText(_grid.Score_String, FONT_CLR, T_FONT, 30, _winY - 200); }
private static List <double> TransferToDirectional(SnakeObject snake, List <double> outputs) { for (int i = (int)snake.Orientation; i >= 0; i--) { Shift(outputs); } return(outputs); }
public void RestrictedDirectionR2LTest() { var snake = new SnakeObject(6, 6); snake.Direction = SnakeDirection.Left; Assert.AreNotEqual(SnakeDirection.Left, snake.Direction, "Snake accidentally turned into itself"); }
public static List <double> FindSnakeOrientation(SnakeObject snake) { return(new double[] { snake.Orientation == Orientation.Top ? 1 :0, snake.Orientation == Orientation.Down ? 1 :0, snake.Orientation == Orientation.Left ? 1 :0, snake.Orientation == Orientation.Right ? 1 :0 }.ToList()); }
public TailSegment(SnakeObject parent) : base(parent.position, parent.GameInstance) { Parent = parent; Facing = parent.Facing; DrawColor = GameInstance.SnakeColor; parent.Child = this; AdjustPosition(); DrawTexture = GameInstance.SpriteSheet; }
// Check if the snake hit itself public bool SnakeHitsItself(SnakeObject head) { for (int i = 1; i < head.snake.Length; i++) { if (head.snake[0].X == head.snake[i].X && head.snake[0].Y == head.snake[i].Y) { return(true); } } return(false); }
public void StartGameTest() { var grid = new Grid(new Tuple <int, int>(10, 10)); grid.CommenceGame(15); var snake = new SnakeObject(5, 5); Assert.IsNotNull(grid.SnakeObj, "Where's the snake?"); Assert.IsTrue(grid.Items.Count > 0, "No items here"); Assert.IsTrue(grid.SnakeObj.X == 5 && grid.SnakeObj.Y == 5); }
public override void CollideWith(SnakeObject obj) { if (obj is SnakesHead sh) { sh.AddNewTailSegment(); sh.score += 10; Game1.playSound("coin"); } Destroy(); GameInstance.Board.SpawnCollectible(); }
public void LengthTest() { var snake = new SnakeObject(6, 6); snake.Grow = true; for (var i = 0; i < 60; i++) { snake.Movement(); } Assert.AreEqual(4, snake.Length); }
public void DirectionR2DTest() { var snake = new SnakeObject(6, 6); snake.Direction = SnakeDirection.Down; for (var i = 0; i < 15; i++) { snake.Movement(); } Assert.AreEqual(SnakeDirection.Down, snake.Direction, "Snake failed to turn down"); }
public void MovementTest() { var snake = new SnakeObject(6, 6); snake.Direction = SnakeDirection.Down; for (var i = 0; i < 15; i++) { snake.Movement(); } Assert.IsTrue(snake.X == 3 && snake.Y == 4); }
public void RestrictedDirectionD2UTest() { var snake = new SnakeObject(6, 6); snake.Direction = SnakeDirection.Down; for (var i = 0; i < 15; i++) { snake.Movement(); } snake.Direction = SnakeDirection.Up; Assert.AreNotEqual(SnakeDirection.Up, snake.Direction, "Snake accidentally turned into itself"); }
public GameForm() { InitializeComponent(); AdjustGame(); // Create new head object do { // Make sure the head is on the screen head = new SnakeObject(STARTINGTOTAL); } while (head.snake[0].X < 0); food = new Food(randomFood); do { // Create the new food an make sure it doesn't overlap food.randomizeLocation(randomFood); } while (head.snake[0].X == Food.FoodBlock.X || head.snake[0].X == Food.FoodBlock.X); gameArea = new Rectangle(0, 0, screenWidth, screenHeight); }
public static List <double> FindWallDirectionaly(SnakeObject snake) { return(TransferToDirectional(snake, FindWallIn4Directions(snake.CurrentSnakeBlocks[0]))); }
public bool IsColliding(SnakeObject o) { return(Math.Abs(position.X - o.position.X) < 1 && Math.Abs(position.Y - o.position.Y) < 1); }
public void CommenceGame(int aSpeed = 15) { SnakeObj = new SnakeObject(_gridSize, aSpeed); CreateNewItem(); }
// Snake hits right ball public bool SnakeHitsRightWall(SnakeObject head, int w) { return(head.snake[0].X + 25 >= w); }
public double getDistanceFromOrigin(SnakeObject s) { return(getDistance(Vector2.Zero, s.position)); }
public static List <double> FindAppleDirectionaly(List <Apple> apples, SnakeObject snake) { return(TransferToDirectional(snake, FindAppleIn4Directions(apples, snake.CurrentSnakeBlocks[0]))); }
// Snake hits bottom ball public bool SnakeHitsBottomWall(SnakeObject head, int h) { return(head.snake[0].Y + 50 > h); }
// Keydown method public void Form1_KeyDown(object sender, KeyEventArgs e) { // Check for change of direction switch (e.KeyData.ToString()) { case "Space": { // BELOW ARE CURRENTLY USED AS FEATURE TESTING //food.randomizeLocation(randomFood); //head.addTail(1); if (boolGameOver) { head = new SnakeObject(STARTINGTOTAL); food = new Food(randomFood); if (head.snake[0].X == Food.FoodBlock.X) { food.randomizeLocation(randomFood); } boolGameOver = false; this.Text = this.titleText + 0; this.tailCount = 0; } else { animationTimer.Start(); } // TODO: Add level scaling with increased speed. if (boolLevelComplete) { } break; } case "Left": { if (rightDirection == false) { leftDirection = true; rightDirection = false; upDirection = false; downDirection = false; } break; } case "Right": { if (animationTimer.Enabled == false) { animationTimer.Start(); } if (leftDirection == false) { rightDirection = true; leftDirection = false; upDirection = false; downDirection = false; } break; } case "Up": { if (animationTimer.Enabled == false) { animationTimer.Start(); } if (downDirection == false) { upDirection = true; downDirection = false; leftDirection = false; rightDirection = false; } break; } case "Down": { if (animationTimer.Enabled == false) { animationTimer.Start(); } if (upDirection == false) { downDirection = true; upDirection = false; rightDirection = false; leftDirection = false; } break; } } // Repaint Invalidate(); }
// Snake hits left ball public bool SnakeHitsLeftWall(SnakeObject head, int w) { return(head.snake[0].X < 0); }
public void SpawnTest() { var snake = new SnakeObject(6, 6); Assert.IsTrue(snake.X == 3 && snake.Y == 3); }
public void Add(SnakeObject obj) { Objects.Add(obj); }
public void DirectionDefaultTest() { var snake = new SnakeObject(6, 6); Assert.AreEqual(SnakeDirection.Right, snake.Direction, "Default direction is not working"); }
public void Remove(SnakeObject obj) { Objects.Remove(obj); }
public virtual void CollideWith(SnakeObject obj) { /*if (obj != this && obj is SnakesHead && Child != obj) * GameInstance.SetupBoard();*/ }
// Snake hits top ball public bool SnakeHitsTopWall(SnakeObject head, int h) { return(head.snake[0].Y < 0); }