コード例 #1
0
        public void genetateblock()     //generates a tetris block using the tetrisblock classes
        {
            Random rand = new Random(); //allows the creation of a Random number generator

            if (generated == -1 && nextgenerated == -1)
            {
                generated     = rand.Next(7); //generates a number between 0 and 7, this is used for all 7 tetris blocks
                nextgenerated = rand.Next(7); //generates a number between 0 and 7, this is used for all 7 tetris blocks
            }
            else
            {
                generated     = nextgenerated;
                nextgenerated = rand.Next(7);//generates a number between 0 and 7, this is used for all 7 tetris blocks
            }
            //generated = rand.Next(7);



            //generated = 6;
            regenerate(rand);
            //test case for tetris block zero


            int dot = 4;//dot is an intger used to map out the initial point of a falling block to make sure it's not on the edge

            switch (generated)
            {
            case 0:

                first = new TetrisBlock(0, dot, 0, dot - 1, 0, dot + 1, 1, dot);    //maps out the falling tetris block

                if (boardmatrix[0][dot] == 1 || boardmatrix[0][dot - 1] == 1 || boardmatrix[0][dot + 1] == 1 || boardmatrix[1][dot] == 1)
                {
                    setender(false);
                }

                break;

            case 1:
                first = new TetrisBlock(1, dot, 0, dot - 1, 1, dot + 1, 0, dot);

                if (boardmatrix[1][dot] == 1 || boardmatrix[0][dot - 1] == 1 || boardmatrix[1][dot + 1] == 1 || boardmatrix[0][dot] == 1)
                {
                    setender(false);
                }
                break;

            case 2:
                first = new TetrisBlock(1, dot, 1, dot - 1, 0, dot + 1, 0, dot);
                if (boardmatrix[1][dot] == 1 || boardmatrix[1][dot - 1] == 1 || boardmatrix[0][dot + 1] == 1 || boardmatrix[0][dot] == 1)
                {
                    setender(false);
                }
                break;

            case 3:
                first = new TetrisBlock(0, dot, 0, dot - 1, 0, dot + 1, 1, dot - 1);
                if (boardmatrix[0][dot] == 1 || boardmatrix[0][dot - 1] == 1 || boardmatrix[0][dot + 1] == 1 || boardmatrix[1][dot - 1] == 1)
                {
                    setender(false);
                }
                break;

            case 4:
                first = new TetrisBlock(0, dot, 0, dot - 1, 0, dot + 1, 1, dot + 1);
                if (boardmatrix[0][dot] == 1 || boardmatrix[0][dot - 1] == 1 || boardmatrix[0][dot + 1] == 1 || boardmatrix[1][dot + 1] == 1)
                {
                    setender(false);
                }
                break;

            case 5:
                first = new TetrisBlock(0, dot, 0, dot - 1, 0, dot + 1, 0, dot - 2);
                if (boardmatrix[0][dot] == 1 || boardmatrix[0][dot - 1] == 1 || boardmatrix[0][dot + 1] == 1 || boardmatrix[0][dot - 2] == 1)
                {
                    setender(false);
                }
                break;

            case 6:
                first = new TetrisBlock(0, dot, 0, dot - 1, 1, dot, 1, dot - 1);
                if (boardmatrix[0][dot] == 1 || boardmatrix[0][dot - 1] == 1 || boardmatrix[1][dot + 1] == 1 || boardmatrix[1][dot - 1] == 1)
                {
                    setender(false);
                }
                first.setvalid(false);    //prevents tetris block from rotating because it is the square block
                break;

            default:
                break;
            }
        }