public void SignalCollisionIfTouchingBottom(int padding, bool expected) { var shape = new TetriminoJ(); var bottomStack = new BottomStack(); Call.Action(Game.Height - padding, shape.MoveDown); bottomStack.WillCollideBottom(shape).Should().Be(expected); }
public void SignalCollisionIfTouchingOtherBlock(int padding, bool expected) { var bottomStack = new BottomStack(); var shape1 = new TetriminoJ(); var shape2 = new TetriminoL(); shape1.Turn(); Call.Action(Game.Height, shape1.MoveDown); bottomStack.Add(shape1); Call.Action(Game.Height - padding, shape2.MoveDown); bottomStack.WillCollideBottom(shape2).Should().Be(expected); }
public static void PushBottom(this BottomStack stack, Tetrimino shape) { Call.ActionUntil(() => !stack.WillCollideBottom(shape), shape.MoveDown); stack.Add(shape); }