public int GetColorOfPoint(Point point) { /*if (point > Offset) * return this.Figure.CurrentRotation.GetColorOfPoint(point - this.Offset);*/ ITetrisCup cloneCup = this.Cup.Clone(-2); cloneCup.CopyFrom(Figure.CurrentRotation, Offset, this.Figure.Color); return(cloneCup.GetColorOfPoint(point)); }
public void Rotate_When_BottomObstacle_Should_Move_Up() { _scene.Offset = new Offset(1, 1); ITetrisCup cup = A.Fake <ITetrisCup>(); A.CallTo(() => _scene.Figure.PeekNextRotation()) .Returns(cup); A.CallTo(() => cup.Fits2(_scene.Cup, new Offset(1, 1))) .Returns(FitsResult.BottomObstacle); _scene.Rotate(); _scene.Offset.Y.Should().Be(0); }
public void CopyFrom(ITetrisCup upperLayer1, Offset offset, int color) { var upperLayer = (TetrisCup)upperLayer1; foreach (var point in upperLayer.AllCells) { if (upperLayer[point] != 0) { this[point + offset] = color; } } }
public void Rotate_When_Fits2_Returns_RightObstacle_Should_MoveLeft() { _scene.Offset = new Offset(1, 2); ITetrisCup cup = A.Fake <ITetrisCup>(); A.CallTo(() => _scene.Figure.PeekNextRotation()) .Returns(cup); A.CallTo(() => cup.Fits2(_scene.Cup, new Offset(1, 2))) .Returns(FitsResult.RightObstacle); A.CallTo(() => cup.Fits2(_scene.Cup, new Offset(0, 2))) .Returns(FitsResult.Fits); _scene.Rotate(); _scene.Offset.X.Should().Be(0); }
public FitsResult Fits2(ITetrisCup lowerCup, Offset offset) { var lowerCup1 = (TetrisCup)lowerCup; if (lowerCup1._size.Width < (this._size.Width + offset.X)) { return(FitsResult.RightObstacle); } if (!this.Fits(lowerCup1, offset)) { return(FitsResult.BottomObstacle); } return(FitsResult.Fits); }
public bool Fits(ITetrisCup intoCup1, Offset offset) { var intoCup = (TetrisCup)intoCup1; if (intoCup._size.StrictlyLess(this._size + offset)) { return(false); } if (offset.X < 0) { return(false); } foreach (var point in AllCells) { if (this[point] != 0 && intoCup[point + offset] != 0) { return(false); } } return(true); }
public FitsResult Fits2(ITetrisCup lowerCup, Offset offset) { var lowerCup1 = (TetrisCup)lowerCup; if (lowerCup1._size.Width < (this._size.Width + offset.X)) return FitsResult.RightObstacle; if (!this.Fits(lowerCup1, offset)) return FitsResult.BottomObstacle; return FitsResult.Fits; }
public bool Fits(ITetrisCup intoCup1, Offset offset) { var intoCup = (TetrisCup)intoCup1; if (intoCup._size.StrictlyLess(this._size + offset)) return false; if (offset.X < 0) return false; foreach (var point in AllCells) if (this[point] != 0 && intoCup[point + offset] != 0) return false; return true; }
public void CopyFrom(ITetrisCup upperLayer1, Offset offset, int color) { var upperLayer = (TetrisCup)upperLayer1; foreach (var point in upperLayer.AllCells) if (upperLayer[point] != 0) this[point + offset] = color; }