Ejemplo n.º 1
0
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);
            bricks = new Brick[bricksWidth, bricksHeight];
            for (int i = 0; i < bricksHeight; i++)
            {
                for (int j = 0; j < bricksWidth; j++)
                {
                    bricks[j, i] = new Brick(Content, j * (105), i * 25);
                }
            }

            ball = new Ball(Content, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);
            paddle = new Paddle(Content, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);
            // TODO: use this.Content to load your game content here
        }
        // Initializor=============================================
        public override void Initialize()
        {
            // Initialize the Camera
            camera = new ShakedCamera(this);
            camera.Position = new Vector3(0, 13, 17);
            camera.Target = new Vector3(0, 0, 3);

            if (!Engine.Services.ContainsService(typeof(Camera)))
                Engine.Services.AddService(typeof(Camera), (ShakedCamera)camera);

            // Initialize the keyboard
            keyboard = Engine.Services.GetService<KeyboardDevice>();

            // Initialize the sounds

            music = Engine.Content.Load<Song>("Content\\Sounds\\music1");
            MediaPlayer.Play(music);
            MediaPlayer.Volume = 0.2f;
            MediaPlayer.IsRepeating = true;

            // Inistialize tha black Texture
            black = new Entity2D(Engine.Content.Load<Texture2D>("Content\\Textures\\black"),
                    Vector2.Zero, this);

            // Initialize tha Radar
            radar = new Radar(Engine.Content.Load<Model>("Content\\Models\\Radar"), Vector3.One, this);
            radar.Visible = false;

            // Initialize the Ball
            ball = new Ball(Engine.Content.Load<Model>("Content\\Models\\GameBall"),
                            new Vector3(0f,0f,5f), this);
            ball.defaultLightingEnabled = true;

            // Initialize the Bricks List
            brickLenghtLine = 3;
            brickLenghtColumn = 10;
            totalOfBricks = brickLenghtLine * brickLenghtColumn;
            totalOfBricksLeft = totalOfBricks;
            brickMapArray=new int[brickLenghtLine, brickLenghtColumn];
            brickObjectArray = new Brick[brickLenghtLine, brickLenghtColumn];

            for (int i = 0; i < brickLenghtLine; i++)
            {
                for (int j = 0; j < brickLenghtColumn; j++)
                {
                    brickMapArray[i, j] = Util.random.Next(0, 3);
                }
            }

            // Initialize the Released Object array
            ReleasedObjectArray = new ReleasedObject[totalOfBricks];
            for (int i = 0; i < totalOfBricks; i++)
                ReleasedObjectArray[i] = null;

            ReleasedObjectArrayIndex = 0;

            // initialize the ObjectArray of bricks
            for (int i = 0; i < brickLenghtLine; i++)
            {
                for (int j = 0; j < brickLenghtColumn; j++)
                {
                    Brick brick;
                    Model model;
                    // Type of Brick
                    Vector3 brikPos = new Vector3(-7f + j * 1.5f, 0f, -4f + i*1.5f);
                    switch (brickMapArray[i,j])
                    {
                        case 0:
                            // Type Normal
                            model = Engine.Content.Load<Model>("Content\\Models\\GameBrick1");
                            brick = new Brick(model, brikPos, this);
                            brick.BrickReleaseType = BrickReleaseType.Normal;
                            brickObjectArray[i, j] = brick;

                            model = Engine.Content.Load<Model>("Content\\Models\\ReleasedNormObject");
                            ReleasedObjectArray[brickLenghtColumn * i + j] = new NormalObject(model, brikPos, this);
                            break;
                        case 1:
                            // Type Score
                            model = Engine.Content.Load<Model>("Content\\Models\\GameBrick1");
                            brick = new Brick(model, brikPos, this);
                            brick.BrickReleaseType = BrickReleaseType.Money;
                            brickObjectArray[i, j] = brick;

                            model = Engine.Content.Load<Model>("Content\\Models\\ReleasedMoneyObject");
                            ReleasedObjectArray[brickLenghtColumn * i + j] = new MoneyObject(model, brikPos, this);
                            break;
                        case 2:
                            // Type Life
                            model = Engine.Content.Load<Model>("Content\\Models\\GameBrick1");
                            brick = new Brick(model, brikPos, this);
                            brick.BrickReleaseType = BrickReleaseType.Danger;
                            brickObjectArray[i, j] = brick;

                            model = Engine.Content.Load<Model>("Content\\Models\\ReleasedDangerObject");
                            ReleasedObjectArray[brickLenghtColumn * i + j] = new DangerObject(model, brikPos, this);
                            break;

                        default:
                            // Type Normal
                            model = Engine.Content.Load<Model>("Content\\Models\\GameBrick1");
                            brick = new Brick(model, brikPos, this);
                            brick.BrickReleaseType = BrickReleaseType.Normal;
                            brickObjectArray[i, j] = brick;

                            model = Engine.Content.Load<Model>("Content\\Models\\ReleasedNormObject");
                            ReleasedObjectArray[brickLenghtColumn * i + j] = new NormalObject(model, brikPos, this);
                            break;
                    }

                    // Update the ReleasedObjectArrayIndex
                    if (ReleasedObjectArrayIndex >= totalOfBricks)
                        ReleasedObjectArrayIndex = 0;
                    else
                        ReleasedObjectArrayIndex++;
                }
            }

            // Initialize the Paddle
            paddle = new Paddle(Engine.Content.Load<Model>("Content\\Models\\GamePaddle"), Vector3.Zero, this);
            paddle.defaultLightingEnabled = true;

            // Iniotialize the spiralRod
            paddleSupport = new PaddleSupport(Engine.Content.Load<Model>("Content\\Models\\SpiralRod"),
                                     new Vector3(0f, 0.6f, 9f), this);
            //paddleSupport.Rotation = Matrix.CreateRotationZ(MathHelper.ToRadians(90f));
            paddleSupport.defaultLightingEnabled = true;

            // Initialize the Blur
            blur = new GaussianBlur(Engine.Viewport.Width, Engine.Viewport.Height, this);
            blur.Visible = false;

            // Initialize HUD
            hud = new Hud(this);

            // Initialize the gameMap
            gameMap = new Entity3D(Engine.Content.Load<Model>("Content\\Models\\GameMap"), Vector3.Zero, this);
            gameMap.defaultLightingEnabled = true;

            base.Initialize();
        }
Ejemplo n.º 3
0
        private void StartBricks()
        {
            bricks = new Brick[BricksWide, BricksHigh];
            for (int y = 0; y < BricksHigh; y++)
            {
                Color col = Color.White;
                switch (y)
                {
                    case 0:
                        {
                            col = Color.Gold;
                            break;
                        }
                    case 1:
                        {
                            col = Color.Silver;
                            break;
                        }
                    case 2:
                        {
                            col = Color.Indigo;
                            break;
                        }
                    case 3:
                        {
                            col = Color.BlueViolet;
                            break;
                        }
                    case 4:
                        {
                            col = Color.Blue;
                            break;
                        }
                    case 5:
                        {
                            col = Color.Green;
                            break;
                        }
                    case 6:
                        {
                            col = Color.GreenYellow;
                            break;
                        }
                    case 7:
                        {
                            col = Color.Yellow;
                            break;
                        }
                    case 8:
                        {
                            col = Color.Orange;
                            break;
                        }
                    case 9:
                        {
                            col = Color.OrangeRed;
                            break;
                        }
                    case 10:
                        {
                            col = Color.Red;
                            break;
                        }
                }
                for (int x = 0; x < BricksWide; x++)
                {
                    bricks[x, y] = new Brick(bricksTex, new Rectangle(x * bricksTex.Width,
                                             y * bricksTex.Height, bricksTex.Width, bricksTex.Height),col);
                    bricks[x, y].CheckColor();
                }

            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Loads the values from the xml file.
        /// </summary>
        private void LoadValuesFromFile()
        {
            #region PresetValues

            lifePoint = 3;
            scoreValue = 0;
            gameInSession = false;
            gameIsPaused = false;
            gameOver = false;
            gameOverStatus = "";
            mapName = "notfound";
            bonusSpeed = 1;
            mapMaxNumber = 5;
            timeSpan = 3;
            ballHorizontalMovement = 5;
            ballVerticalMovement = 5;
            racketHorizontalMovement = 10;
            ballSpeed = 1;
            speedScale = 1;
            brickWidth = 27.7;
            brickHeight = 8;
            racketWidth = 80;
            racketHeight = 8;
            bonusWidth = 24;
            bonusHeigth = 24;
            ballRadius = 5;
            smallBall = 3;
            bigBall = 15;
            ballExaminationProximity = 4;
            horizontalScaleNumber = 1;
            verticalScaleNumber = 1;
            racketMaxSize = 160;
            racketMinSize = 40;
            racketDifference = 16;

            if (bonusList.Count != 0)
            {
                bonusList.Clear();
            }
            if (racketList.Count != 0)
            {
                racketList.Clear();
            }
            if (ballList.Count != 0)
            {
                ballList.Clear();
            }
            if (brickList.Count != 0)
            {
                brickList.Clear();
            }

            optionsSettings = new OptionsSettings("", "", "", "", "", 0, false, false, 0, false);
            timeOfGame = new DateTime();
            movingTimer = new DispatcherTimer();
            mPlayer = new MediaPlayer();
            rnd = new Random();

            #endregion PresetValues

            #region OptionsHandler

            try
            {
                if (!File.Exists(@"..\..\Resources\OptionsSettings.xml"))
                {
                    if (MessageBox.Show("Couldn't find the xml file for the settings. \n Would you like to create a new with default settings?", "Error", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                    {
                        XElement mouseElement = new XElement("mouse", "true");
                        XElement keyboardElement = new XElement("keyboard", "true");
                        XElement soundElement = new XElement("sound", "true");
                        XElement resolutionElement = new XElement("resolution", "1024x768");
                        XElement leftkeyElement = new XElement("leftkey", "Left");
                        XElement rightkeyElement = new XElement("rightkey", "Right");
                        XElement firekeyElement = new XElement("firekey", "Space");
                        XElement pausekeyElement = new XElement("pausekey", "P");
                        XElement difficultyElement = new XElement("difficulty", "1");
                        XElement mapElement = new XElement("map", "1");
                        XAttribute newAttribute = new XAttribute("id", 1);
                        XElement newElements = new XElement("option", newAttribute, mouseElement, keyboardElement, soundElement, resolutionElement, leftkeyElement, rightkeyElement, firekeyElement, pausekeyElement, difficultyElement, mapElement);
                        XElement newOptions = new XElement("Options", newElements);
                        XDocument newDocument = new XDocument(newOptions);
                        newDocument.Save(@"..\..\Resources\OptionsSettings.xml");
                    }
                    // If the OptionsSettings xml doesn't exist, then send message.
                }

                if (File.Exists(@"..\..\Resources\OptionsSettings.xml"))
                {
                    XDocument settingsFromXml = XDocument.Load(@"..\..\Resources\OptionsSettings.xml");
                    var readDataFromXml = settingsFromXml.Descendants("option");
                    var fromXml = from x in readDataFromXml
                                  select x;
                    // Load the values stored in the xml.

                    foreach (var oneElement in fromXml)
                    {
                        optionsSettings.GraphicsResolution = (string)oneElement.Element("resolution");
                        optionsSettings.LeftKey = (string)oneElement.Element("leftkey");
                        optionsSettings.RightKey = (string)oneElement.Element("rightkey");
                        optionsSettings.PauseKey = (string)oneElement.Element("pausekey");
                        optionsSettings.FireKey = (string)oneElement.Element("firekey");
                        optionsSettings.DifficultyLevel = (int)oneElement.Element("difficulty");
                        optionsSettings.MouseIsOn = (bool)oneElement.Element("mouse");
                        optionsSettings.KeyboardIsOn = (bool)oneElement.Element("keyboard");
                        optionsSettings.MapNumber = (int)oneElement.Element("map");
                        optionsSettings.SoundIsOn = (bool)oneElement.Element("sound");
                    }
                    // Gives the values from the xml to the OptionSettings object, thus sets the object with the default values.
                }
            }
            catch
            {

            }

            #endregion OptionsHandler

            #region SetScaling

            switch (optionsSettings.GraphicsResolution)
            {
                case "640x480":
                    horizontalScaleNumber = 1;
                    verticalScaleNumber = 1;
                    break;
                case "800x600":
                    horizontalScaleNumber = 1.25;
                    verticalScaleNumber = 1.25;
                    break;
                case "1024x768":
                    horizontalScaleNumber = 1.6;
                    verticalScaleNumber = 1.6;
                    break;
            }

            switch (optionsSettings.DifficultyLevel)
            {
                case 1:
                    speedScale = 1;
                    break;
                case 2:
                    speedScale = 1.2;
                    break;
                case 3:
                    speedScale = 1.4;
                    break;
            }

            bonusWidth *= horizontalScaleNumber;
            bonusHeigth *= verticalScaleNumber;
            racketWidth *= horizontalScaleNumber;
            racketHeight *= verticalScaleNumber;
            brickWidth *= horizontalScaleNumber;
            brickHeight *= verticalScaleNumber;
            ballHorizontalMovement *= speedScale;
            ballVerticalMovement *= speedScale;
            ballRadius *= horizontalScaleNumber;
            smallBall *= horizontalScaleNumber;
            bigBall *= horizontalScaleNumber;
            bonusSpeed *= speedScale;
            ballSpeed *= speedScale;
            racketHorizontalMovement *= speedScale;
            ballExaminationProximity *= horizontalScaleNumber;
            racketMaxSize *= horizontalScaleNumber;
            racketMinSize *= horizontalScaleNumber;
            racketDifference *= horizontalScaleNumber;
            // Set the scaling.

            #endregion SetScaling

            #region MapSelection

            try
            {
                if (optionsSettings.MapNumber > 0 && optionsSettings.MapNumber < 6)
                {
                    switch (optionsSettings.MapNumber)
                    {
                        case 1:
                            if (!File.Exists(@"..\..\Resources\maps\FirstMap.txt"))
                            {
                                mapName = "notfound";
                            }
                            else
                            {
                                mapName = @"..\..\Resources\maps\FirstMap.txt";
                            }
                            break;
                        case 2:
                            if (!File.Exists(@"..\..\Resources\maps\SecondMap.txt"))
                            {
                                mapName = "notfound";
                            }
                            else
                            {
                                mapName = @"..\..\Resources\maps\SecondMap.txt";
                            }
                            break;
                        case 3:
                            if (!File.Exists(@"..\..\Resources\maps\ThirdMap.txt"))
                            {
                                mapName = "notfound";
                            }
                            else
                            {
                                mapName = @"..\..\Resources\maps\ThirdMap.txt";
                            }
                            break;
                        case 4:
                            if (!File.Exists(@"..\..\Resources\maps\FourthMap.txt"))
                            {
                                mapName = "notfound";
                            }
                            else
                            {
                                mapName = @"..\..\Resources\maps\FourthMap.txt";
                            }
                            break;
                        case 5:
                            if (!File.Exists(@"..\..\Resources\maps\FifthMap.txt"))
                            {
                                mapName = "notfound";
                            }
                            else
                            {
                                mapName = @"..\..\Resources\maps\FifthMap.txt";
                            }
                            break;
                    }
                    // Based on the selected map sets the name of the map that will open if it exists.
                }
                // Only switch if the number is correct.
            }
            catch
            {

            }

            #endregion MapSelection

            #region BrickListFill

            try
            {
                if (!String.IsNullOrEmpty(mapName) && mapName != "notfound")
                {
                    double X = 0;
                    double Y = 0;
                    FileStream fs = new FileStream(mapName, FileMode.Open, FileAccess.Read, FileShare.None);
                    BinaryReader rd = new BinaryReader(fs);

                    while (rd.BaseStream.Position != rd.BaseStream.Length)
                    {
                        char[] oneLine = rd.ReadChars(24);

                        for (int i = 0; i < oneLine.Length; i++)
                        {
                            switch (oneLine[i])
                            {
                                case '.':
                                    break;
                                case '1':
                                    Brick brick1 = new Brick(X, Y, brickHeight, brickWidth, Brick.brickType.Easy, @"..\..\Resources\media\brick\easybrick.jpg");
                                    brick1.ScorePoint = 10;
                                    brick1.BreakNumber = 1;
                                    brickList.Add(brick1);
                                    canvasLayer.Children.Add(brick1.GetRectangle());
                                    break;
                                case '2':
                                    Brick brick2 = new Brick(X, Y, brickHeight, brickWidth, Brick.brickType.Medium, @"..\..\Resources\media\brick\mediumbrick.jpg");
                                    brick2.ScorePoint = 20;
                                    brick2.BreakNumber = 2;
                                    brickList.Add(brick2);
                                    canvasLayer.Children.Add(brick2.GetRectangle());
                                    break;
                                case '3':
                                    Brick brick3 = new Brick(X, Y, brickHeight, brickWidth, Brick.brickType.Hard, @"..\..\Resources\media\brick\hardbrick.jpg");
                                    brick3.ScorePoint = 30;
                                    brick3.BreakNumber = 5;
                                    brickList.Add(brick3);
                                    canvasLayer.Children.Add(brick3.GetRectangle());
                                    break;
                                case '4':
                                    Brick brick4 = new Brick(X, Y, brickHeight, brickWidth, Brick.brickType.Steel, @"..\..\Resources\media\brick\steelbrick.jpg");
                                    brick4.ScorePoint = 40;
                                    brick4.BreakNumber = 1;
                                    brickList.Add(brick4);
                                    canvasLayer.Children.Add(brick4.GetRectangle());
                                    break;
                            }

                            X += brickWidth;
                        }

                        X = 0;
                        Y += brickHeight;
                    }

                    rd.Close();
                    fs.Close();
                    // Adds the bricks as they are stored in the map file.
                }
                // If the map name is valid, then load map.
            }
            catch
            {

            }

            #endregion BrickListFill

            #region SetValues

            mPlayer.Open(new Uri(@"..\..\Resources\media\sounds\play_this.mp3", UriKind.Relative));

            Width = int.Parse(optionsSettings.GraphicsResolution.Split('x')[0]);
            Height = int.Parse(optionsSettings.GraphicsResolution.Split('x')[1]);
            canvasLayer.Width = int.Parse(optionsSettings.GraphicsResolution.Split('x')[0]) - 30;
            canvasLayer.Height = int.Parse(optionsSettings.GraphicsResolution.Split('x')[1]) - 50;
            // Set resolution.

            Racket racket = new Racket((canvasLayer.Width / 2) - (racketWidth / 2), canvasLayer.Height - racketHeight, racketHeight, racketWidth, @"..\..\Resources\media\racket\normalracket.jpg");
            racketList.Add(racket);
            canvasLayer.Children.Add(racket.GetRectangle());
            // First racket.

            Ball ball = new Ball((canvasLayer.Width / 2) - ballRadius, canvasLayer.Height - racketHeight - (ballRadius * 2), ballRadius, Ball.ballType.Normal, @"..\..\Resources\media\ball\normalball.jpg");
            ball.VerticalMovement = ballVerticalMovement > 0 ? ballVerticalMovement : -ballVerticalMovement;
            ball.HorizontalMovement = ballHorizontalMovement < 0 ? ballHorizontalMovement : -ballHorizontalMovement;
            ball.BallInMove = false;
            ballList.Add(ball);
            canvasLayer.Children.Add(ball.GetEllipse());
            // First ball.

            #endregion SetValues
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Adds a bonus.
        /// </summary>
        /// <param name="oneBrick">The one brick.</param>
        private void AddBonus(Brick oneBrick)
        {
            string bonusImage = "";
            Bonus.bonusType type = Bonus.bonusType.BallBigger;

            switch (rnd.Next(1, 11))
            {
                case 1:
                    type = Bonus.bonusType.BallBigger;
                    bonusImage = @"..\..\Resources\media\bonus\ballbigger.jpg";
                    break;
                case 2:
                    type = Bonus.bonusType.BallSmaller;
                    bonusImage = @"..\..\Resources\media\bonus\ballsmaller.jpg";
                    break;
                case 3:
                    type = Bonus.bonusType.HardBall;
                    bonusImage = @"..\..\Resources\media\bonus\hardball.jpg";
                    break;
                case 4:
                    type = Bonus.bonusType.LifeDown;
                    bonusImage = @"..\..\Resources\media\bonus\lifedown.jpg";
                    break;
                case 5:
                    type = Bonus.bonusType.LifeUp;
                    bonusImage = @"..\..\Resources\media\bonus\lifeup.jpg";
                    break;
                case 6:
                    type = Bonus.bonusType.NewBall;
                    bonusImage = @"..\..\Resources\media\bonus\newball.jpg";
                    break;
                case 7:
                    type = Bonus.bonusType.RacketLengthen;
                    bonusImage = @"..\..\Resources\media\bonus\racketlengthen.jpg";
                    break;
                case 8:
                    type = Bonus.bonusType.RacketShorten;
                    bonusImage = @"..\..\Resources\media\bonus\racketshorten.jpg";
                    break;
                case 9:
                    type = Bonus.bonusType.SteelBall;
                    bonusImage = @"..\..\Resources\media\bonus\steelball.jpg";
                    break;
                case 10:
                    type = Bonus.bonusType.StickyRacket;
                    bonusImage = @"..\..\Resources\media\bonus\stickyracket.jpg";
                    break;
            }

            Bonus bonus = new Bonus(oneBrick.PositionX + (oneBrick.Width / 2) - (bonusWidth / 2), oneBrick.PositionY + oneBrick.Height, bonusHeigth, bonusWidth, type, bonusImage);
            bonus.ScorePoint = 5;
            bonusList.Add(bonus);
            if (bonus.Descend(bonusSpeed, canvasLayer))
            {
                bonusList.Remove(bonus);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Brick is at contact with ball.
        /// </summary>
        /// <param name="oneBall">One ball.</param>
        /// <param name="oneBrick">One brick.</param>
        private void BrickContact(Ball oneBall, Brick oneBrick)
        {
            if (oneBall.TypeOfBall != Ball.ballType.Steel)
            {
                if (oneBrick.TypeOfBrick != Brick.brickType.Steel)
                {
                    if (oneBall.TypeOfBall != Ball.ballType.Hard)
                    {
                        if (oneBrick.BreakNumber == 1)
                        {
                            // If the brick is at breaking point.
                            scoreValue += oneBrick.ScorePoint;
                            // Add points to the score.
                            ScoreLabel.Content = "Score: " + scoreValue;
                            // Show the scorepints.

                            if (oneBrick.CalculateBonusChance())
                            {
                                // If the brick is lucky, then add bonus.
                                AddBonus(oneBrick);
                            }

                            brickList.Remove(oneBrick);
                        }
                        else
                        {
                            // If brick is not at breaking point, then decrement the breaking number.
                            oneBrick.BreakNumber -= 1;

                            if (oneBrick.TypeOfBrick == Brick.brickType.Hard)
                            {
                                oneBrick.BrickImage = @"..\..\Resources\media\brick\brokenhardbrick.jpg";
                            }
                            else if (oneBrick.TypeOfBrick == Brick.brickType.Medium)
                            {
                                oneBrick.BrickImage = @"..\..\Resources\media\brick\brokenmediumbrick.jpg";
                            }
                        }
                    }
                    else
                    {
                        scoreValue += oneBrick.ScorePoint;
                        // Add points to the score.
                        ScoreLabel.Content = "Score: " + scoreValue;
                        // Show the scorepints.

                        if (oneBrick.CalculateBonusChance())
                        {
                            // If the brick is lucky, then add bonus.
                            AddBonus(oneBrick);
                        }

                        brickList.Remove(oneBrick);
                    }
                }
            }
            else
            {
                // If the ball is steel then no breaknumber scan's needed, every brick breaks at first contact.
                scoreValue += oneBrick.ScorePoint;
                ScoreLabel.Content = "Score: " + scoreValue;

                if (oneBrick.CalculateBonusChance())
                {
                    // If the brick is lucky, then add bonus.
                    AddBonus(oneBrick);
                }

                brickList.Remove(oneBrick);
            }

            if (optionsSettings.SoundIsOn)
            {
                mPlayer.Position = new TimeSpan(0);
                mPlayer.Play();
            }
        }
Ejemplo n.º 7
0
 public void addBrick(Brick brick)
 {
     bricks.Add(brick);
 }
Ejemplo n.º 8
0
 public void removeBrick(Brick brick)
 {
     bricks.Remove(brick);
 }