public void SplitOddLength() { var snake = new Snake(CurrentParams); var cell1 = new GrassCell(CurrentParams); var cell2 = new GrassCell(CurrentParams); var cell3 = new GrassCell(CurrentParams); var cell4 = new GrassCell(CurrentParams); var cell5 = new GrassCell(CurrentParams); var cell6 = new GrassCell(CurrentParams); var cell7 = new GrassCell(CurrentParams); snake.Locations.Enqueue(cell1); snake.Locations.Enqueue(cell2); snake.Locations.Enqueue(cell3); snake.Locations.Enqueue(cell4); snake.Locations.Enqueue(cell5); snake.Locations.Enqueue(cell6); snake.Locations.Enqueue(cell7); var splitSnake = snake.SplitSnake(); Assert.AreEqual(3, snake.Locations.Count); Assert.AreEqual(4, splitSnake.Locations.Count); Assert.AreEqual(cell5, snake.Locations.Dequeue()); Assert.AreEqual(cell6, snake.Locations.Dequeue()); Assert.AreEqual(cell7, snake.Locations.Dequeue()); Assert.AreEqual(cell1, splitSnake.Locations.Dequeue()); Assert.AreEqual(cell2, splitSnake.Locations.Dequeue()); Assert.AreEqual(cell3, splitSnake.Locations.Dequeue()); Assert.AreEqual(cell4, splitSnake.Locations.Dequeue()); }
public void SnakeDying() { var snake = new Snake(CurrentParams); var cell1 = new GrassCell(CurrentParams); var cell2 = new GrassCell(CurrentParams); var cell3 = new GrassCell(CurrentParams); cell3.EnteredBySnake(); snake.Locations.Enqueue(cell1); snake.Locations.Enqueue(cell2); Assert.That(!snake.IsStarving); snake.MoveSnake(cell3); Assert.That(snake.IsStarving); var starvingSnakeTurn = snake.StarvingSnakeTurn(); Assert.That(!starvingSnakeTurn); starvingSnakeTurn = snake.StarvingSnakeTurn(); Assert.That(starvingSnakeTurn); Assert.AreEqual(cell2, snake.Locations.Dequeue()); Assert.AreEqual(cell3, snake.Locations.Dequeue()); }
public void StarvingSnakeEating() { var snake = new Snake(CurrentParams); var cell1 = new GrassCell(CurrentParams); var cell2 = new GrassCell(CurrentParams); var cell3 = new GrassCell(CurrentParams); cell3.EnteredBySnake(); snake.Locations.Enqueue(cell1); snake.Locations.Enqueue(cell2); Assert.That(!snake.IsStarving); snake.MoveSnake(cell3); Assert.That(snake.IsStarving); cell3.UpdateGrowth(CurrentParams.NeededAliveNeighborsTurnsToGrow); snake.StarvingSnakeTurn(); Assert.That(!snake.IsStarving); }
public void SnakeGrows() { var snake = new Snake(CurrentParams); var cell1 = new GrassCell(CurrentParams); var cell2 = new GrassCell(CurrentParams); var cell3 = new GrassCell(CurrentParams); var cell4 = new GrassCell(CurrentParams); var cell5 = new GrassCell(CurrentParams); var cell6 = new GrassCell(CurrentParams); var cell7 = new GrassCell(CurrentParams); snake.Locations.Enqueue(cell1); snake.Locations.Enqueue(cell2); snake.Locations.Enqueue(cell3); snake.Locations.Enqueue(cell4); snake.MoveSnake(cell5); snake.MoveSnake(cell6); snake.MoveSnake(cell7); Assert.AreEqual(5, snake.Locations.Count); Assert.AreEqual(cell3, snake.Locations.Dequeue()); Assert.AreEqual(cell4, snake.Locations.Dequeue()); Assert.AreEqual(cell5, snake.Locations.Dequeue()); Assert.AreEqual(cell6, snake.Locations.Dequeue()); Assert.AreEqual(cell7, snake.Locations.Dequeue()); }
public void SnakeGetsToMinimalLength() { var snake = new Snake(CurrentParams); var cell1 = new GrassCell(CurrentParams); var cell2 = new GrassCell(CurrentParams); var cell3 = new GrassCell(CurrentParams); var cell5 = new GrassCell(CurrentParams); cell5.EnteredBySnake(); var cell6 = new GrassCell(CurrentParams); cell6.EnteredBySnake(); var cell7 = new GrassCell(CurrentParams); cell7.EnteredBySnake(); snake.Locations.Enqueue(cell1); snake.Locations.Enqueue(cell2); snake.Locations.Enqueue(cell3); snake.MoveSnake(cell5); snake.MoveSnake(cell6); snake.MoveSnake(cell7); Assert.AreEqual(CurrentParams.SnakeLengthToStop, snake.Locations.Count); Assert.That(snake.IsStarving); Assert.AreEqual(cell6, snake.Locations.Dequeue()); Assert.AreEqual(cell7, snake.Locations.Dequeue()); }
public void NewGrassCell() { var grassCell = new GrassCell(CurrentParams); Assert.That(grassCell.IsAlive); Assert.AreEqual(0, grassCell.NeededAliveNeighborsTurnsToGrow); }
public void CellsEqualByType() { var cell1 = new WaterCell(1, 1); var cell2 = new WaterCell(1, 1); var cell3 = new GrassCell(1, 1); // Assert (cell1 == cell2).Should().BeTrue(); (cell1 == cell3).Should().BeFalse(); }
public void UpdateBelowZero() { var grassCell = new GrassCell(CurrentParams); grassCell.EnteredBySnake(); Assert.That(!grassCell.IsAlive); Assert.AreEqual(CurrentParams.NeededAliveNeighborsTurnsToGrow, grassCell.NeededAliveNeighborsTurnsToGrow); grassCell.UpdateGrowth(CurrentParams.NeededAliveNeighborsTurnsToGrow + 1); Assert.That(grassCell.IsAlive); Assert.AreEqual(0, grassCell.NeededAliveNeighborsTurnsToGrow); }
/// <summary> /// color the maze /// </summary> /// <param name="mazewall2d">maze 2d</param> /// <param name="maze">maze 3d m</param> /// <param name="curr_layer">current layer</param> /// <param name="final_layer">final layer</param> /// <param name="s">name of maze</param> private void colorMazeWall(Grid mazewall2d, Maze maze, int curr_layer, int final_layer) { Maze2d maze2d = maze as Maze2d; for (int row = 0; row < maze2d.MX * 2 - 1; row++) { for (int column = 0; column < maze2d.MY * 2 - 1; column++) { if (curr_layer == 0 && maze2d.getStartPosition().X == row && maze2d.getStartPosition().Y == column) { StartControl StartCell = new StartControl(); Grid.SetColumn(StartCell, column); Grid.SetRow(StartCell, row); mazewall2d.Children.Add(StartCell); } else { if (curr_layer == final_layer - 1 && maze2d.getGoalPosition().X == row && maze2d.getGoalPosition().Y == column) { EndControl EndCell = new EndControl(); Grid.SetColumn(EndCell, column); Grid.SetRow(EndCell, row); mazewall2d.Children.Add(EndCell); } else { if (maze2d.MAZE2d[row, column] == 1) { MazeCell1 CellWall = new MazeCell1(); Grid.SetColumn(CellWall, column); Grid.SetRow(CellWall, row); mazewall2d.Children.Add(CellWall); } else { GrassCell grassCell = new GrassCell(); Grid.SetColumn(grassCell, column); Grid.SetRow(grassCell, row); mazewall2d.Children.Add(grassCell); } } } } } m_layerOfGrid[curr_layer] = mazewall2d; }
/// <summary> /// click help button /// </summary> /// <param name="view">View IVIEw</param> /// <param name="model">model IMOdel</param> public Help_w(IModel model, IView view) { InitializeComponent(); m_model = model; m_view = view; MazeCell1 wall = new MazeCell1(); GrassCell grass = new GrassCell(); StepsCell steps = new StepsCell(); ArrowControl jumper = new ArrowControl(); StartControl start = new StartControl(); EndControl end = new EndControl(); Grass.Children.Add(grass); Wall.Children.Add(wall); Steps.Children.Add(steps); Jumper.Children.Add(jumper); Start.Children.Add(start); Goal.Children.Add(end); }