コード例 #1
0
ファイル: BlockPair.cs プロジェクト: VaughanJ/TDDBlocks
        public BlockPair(int percentageChanceOfPowerBlock1, int percentageChanceOfPowerBlock2)
        {
            Block1 = new Block(percentageChanceOfPowerBlock1);
            Block2 = new Block(percentageChanceOfPowerBlock2);

            BlockPairDefaultConfig();
        }
コード例 #2
0
ファイル: BlockPair.cs プロジェクト: VaughanJ/TDDBlocks
        public BlockPair(Block.BlockTypeEnum blockType1, Block.BlockTypeEnum blockType2)
        {
            Block1 = new Block(blockType1);
            Block2 = new Block(blockType2);

            BlockPairDefaultConfig();
        }
コード例 #3
0
ファイル: Block.cs プロジェクト: VaughanJ/TDDBlocks
        public void Test2()
        {
            var testBlock = new Block(Block.BlockTypeEnum.Green);

            //Change the block status to stopped
            testBlock.Status = Block.BlockStatusEnum.Stopped;

            Assert.AreEqual(testBlock.Status, Block.BlockStatusEnum.Stopped);
        }
コード例 #4
0
ファイル: Block.cs プロジェクト: VaughanJ/TDDBlocks
        public void Test4()
        {
            var testBlock = new Block(100);

            Assert.AreNotEqual(testBlock.Type, Block.BlockTypeEnum.Blue);
            Assert.AreNotEqual(testBlock.Type, Block.BlockTypeEnum.Green);
            Assert.AreNotEqual(testBlock.Type, Block.BlockTypeEnum.Orange);
            Assert.AreNotEqual(testBlock.Type, Block.BlockTypeEnum.Purple);
            Assert.AreNotEqual(testBlock.Type, Block.BlockTypeEnum.Red);
        }
コード例 #5
0
ファイル: Block.cs プロジェクト: VaughanJ/TDDBlocks
        public void Test3()
        {
            var testBlock = new Block(0);

            Assert.AreNotEqual(testBlock.Type, Block.BlockTypeEnum.DelayedExplosion);
            Assert.AreNotEqual(testBlock.Type, Block.BlockTypeEnum.BigExplosion);
            Assert.AreNotEqual(testBlock.Type, Block.BlockTypeEnum.InIce);
            Assert.AreNotEqual(testBlock.Type, Block.BlockTypeEnum.MorphingBlock);
            Assert.AreNotEqual(testBlock.Type, Block.BlockTypeEnum.Rock);
        }
コード例 #6
0
ファイル: Arena.cs プロジェクト: VaughanJ/TDDBlocks
        public void Init()
        {
            _arena = new Arena();
            _block1 = new Block(Block.BlockTypeEnum.Green) {ArenaXPosition = 2, ArenaYPosition = 1};
            _arena.AddBlock(_block1, Block.BlockStatusEnum.Stopped);

            _block2 = new Block(Block.BlockTypeEnum.Green) {ArenaXPosition = 3, ArenaYPosition = 1};
            _arena.AddBlock(_block2, Block.BlockStatusEnum.Stopped);

            _block3 = new Block(Block.BlockTypeEnum.Green) {ArenaXPosition = 4, ArenaYPosition = 1};
            _arena.AddBlock(_block3, Block.BlockStatusEnum.Stopped);

            _block4 = new Block(Block.BlockTypeEnum.Green) {ArenaXPosition = 3, ArenaYPosition = 2};
            _arena.AddBlock(_block4, Block.BlockStatusEnum.Stopped);

            _block5 = new Block(Block.BlockTypeEnum.Green) {ArenaXPosition = 3, ArenaYPosition = 3};
            _arena.AddBlock(_block5, Block.BlockStatusEnum.Stopped);
        }
コード例 #7
0
ファイル: Block.cs プロジェクト: VaughanJ/TDDBlocks
 public StatusChangedHandlerArgs(Block.BlockStatusEnum previousStatus, Block.BlockStatusEnum newStatus, int x,
                                 int y)
 {
     PreviousStatus = previousStatus;
     NewStatus = newStatus;
     X = x;
     Y = y;
 }
コード例 #8
0
ファイル: Arena.cs プロジェクト: VaughanJ/TDDBlocks
        private void RemoveBlock(Block blockToRemove)
        {
            if (
                _blockArena[(blockToRemove.ArenaXPosition - ArrayOffset), (blockToRemove.ArenaYPosition - ArrayOffset)] ==
                null)
            {
                throw new Exception("There is no block to remove at this location.");
            }

            _blockArena[blockToRemove.ArenaXPosition - ArrayOffset, blockToRemove.ArenaYPosition - ArrayOffset] = null;
        }
コード例 #9
0
ファイル: Arena.cs プロジェクト: VaughanJ/TDDBlocks
        private void AddBlockBase(Block blockToAdd)
        {
            if (_blockArena[(blockToAdd.ArenaXPosition - ArrayOffset), (blockToAdd.ArenaYPosition - ArrayOffset)] !=
                null)
            {
                Debugger.Break();
                Log.Instance.Error("There is already a block present at this location.");
                throw new Exception("There is already a block present at this location.");
            }

            Log.Instance.Trace("AddBlockBase [BlockNo] [" + blockToAdd.ArenaXPosition.ToString(CultureInfo.InvariantCulture) + "," +
                               blockToAdd.ArenaYPosition.ToString(CultureInfo.InvariantCulture) + "]");

            _blockArena[blockToAdd.ArenaXPosition - ArrayOffset, blockToAdd.ArenaYPosition - ArrayOffset] = blockToAdd;
        }
コード例 #10
0
ファイル: Arena.cs プロジェクト: VaughanJ/TDDBlocks
 public void DropBlock(Block blockToDrop)
 {
     if (CanBlockDrop(blockToDrop))
     {
         RemoveBlock(blockToDrop);
         blockToDrop.ArenaYPosition -= 1;
         AddBlock(blockToDrop);
     }
 }
コード例 #11
0
ファイル: Arena.cs プロジェクト: VaughanJ/TDDBlocks
        public short ChangeStatusOfLinkedBlocks(Block.BlockTypeEnum checkingForBlockType,
                                                Block.BlockStatusEnum changeToBlockStatus, Block testBlock,
                                                short currentConnectionCount)
        {
            if (testBlock != null)
            {
                if (testBlock.Type == checkingForBlockType)
                {
                    if (testBlock.Status != changeToBlockStatus)
                    {
                        testBlock.Status = changeToBlockStatus;
                        currentConnectionCount++;

                        if (testBlock.ArenaXPosition < _blockArena.GetLength(0))
                        {
                            currentConnectionCount = ChangeStatusOfLinkedBlocks(checkingForBlockType,
                                                                                changeToBlockStatus,
                                                                                _blockArena[
                                                                                    testBlock.ArenaXPosition -
                                                                                    ArrayOffset + 1,
                                                                                    testBlock.ArenaYPosition -
                                                                                    ArrayOffset],
                                                                                currentConnectionCount);
                        }

                        if (testBlock.ArenaXPosition > 1)
                        {
                            currentConnectionCount = ChangeStatusOfLinkedBlocks(checkingForBlockType,
                                                                                changeToBlockStatus,
                                                                                _blockArena[
                                                                                    testBlock.ArenaXPosition -
                                                                                    ArrayOffset - 1,
                                                                                    testBlock.ArenaYPosition -
                                                                                    ArrayOffset],
                                                                                currentConnectionCount);
                        }

                        if (testBlock.ArenaYPosition < _blockArena.GetLength(1))
                        {
                            currentConnectionCount = ChangeStatusOfLinkedBlocks(checkingForBlockType,
                                                                                changeToBlockStatus,
                                                                                _blockArena[
                                                                                    testBlock.ArenaXPosition -
                                                                                    ArrayOffset,
                                                                                    testBlock.ArenaYPosition -
                                                                                    ArrayOffset + 1],
                                                                                currentConnectionCount);
                        }

                        if (testBlock.ArenaYPosition > 1)
                        {
                            currentConnectionCount = ChangeStatusOfLinkedBlocks(checkingForBlockType,
                                                                                changeToBlockStatus,
                                                                                _blockArena[
                                                                                    testBlock.ArenaXPosition -
                                                                                    ArrayOffset,
                                                                                    testBlock.ArenaYPosition -
                                                                                    ArrayOffset - 1],
                                                                                currentConnectionCount);
                        }
                    }
                }
            }

            return currentConnectionCount;
        }
コード例 #12
0
ファイル: Arena.cs プロジェクト: VaughanJ/TDDBlocks
        public bool CanBlockDrop(Block blockToTest)
        {
            bool canDrop =
                !((blockToTest.ArenaYPosition == ArenaFloor) ||
                  ((_blockArena[
                      blockToTest.ArenaXPosition - ArrayOffset, blockToTest.ArenaYPosition - ArrayOffset - BlockBelow] !=
                    null)));

            Log.Instance.Trace(string.Format("CanBlockDrop [BlockNo] [{0},{1}] = {2}", blockToTest.ArenaXPosition.ToString(CultureInfo.InvariantCulture), blockToTest.ArenaYPosition.ToString(CultureInfo.InvariantCulture), canDrop.ToString()));

            return canDrop;
        }
コード例 #13
0
ファイル: Arena.cs プロジェクト: VaughanJ/TDDBlocks
        public void AddBlock(Block blockToAdd, Block.BlockStatusEnum newBlockStatus)
        {
            AddBlockBase(blockToAdd);

            blockToAdd.Status = newBlockStatus;
        }
コード例 #14
0
ファイル: Game1.cs プロジェクト: VaughanJ/TDDBlocks
        private Texture2D GetImage(Block.BlockTypeEnum type)
        {
            Texture2D returnTexture = null;

            switch (type)
            {
                case Block.BlockTypeEnum.Red:
                    returnTexture = _redBlock;
                    break;
                case Block.BlockTypeEnum.Green:
                    returnTexture = _greenBlock;
                    break;
                case Block.BlockTypeEnum.Blue:
                    returnTexture = _blueBlock;
                    break;
                case Block.BlockTypeEnum.Orange:
                    returnTexture = _orangeBlock;
                    break;
                case Block.BlockTypeEnum.Purple:
                    returnTexture = _purpleBlock;
                    break;
               // case Block.BlockTypeEnum.BigExplosion:
               //     break;
               // case Block.BlockTypeEnum.DelayedExplosion:
               //     break;
               // case Block.BlockTypeEnum.Rock:
               //     break;
               // case Block.BlockTypeEnum.InIce:
               //     break;
               // case Block.BlockTypeEnum.MorphingBlock:
               //     break;
            }

            return returnTexture;
        }
コード例 #15
0
ファイル: Block.cs プロジェクト: VaughanJ/TDDBlocks
        public void Test1()
        {
            var testBlock = new Block(Block.BlockTypeEnum.Green);

            Assert.AreEqual(testBlock.Type, Block.BlockTypeEnum.Green);
        }
コード例 #16
0
ファイル: Arena.cs プロジェクト: VaughanJ/TDDBlocks
 private void AddBlock(Block blockToAdd)
 {
     AddBlockBase(blockToAdd);
 }
コード例 #17
0
ファイル: Block.cs プロジェクト: VaughanJ/TDDBlocks
        public void Test5()
        {
            for (int i = 0; i < 50; i++)
            {

                var testBlock = new Block(20);

                Console.WriteLine(testBlock.Type.ToString());

            }
        }
コード例 #18
0
ファイル: BlockPair.cs プロジェクト: VaughanJ/TDDBlocks
 public BothBlocksStoppedHandlerArgs(Block block1, Block block2)
 {
     Block1 = block1;
     Block2 = block2;
 }