示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MyGame.Player"/> class. Adds all 21 blocks to the players blockset
        /// </summary>
        /// <param name="name">Name.</param>
        /// <param name="color">Color.</param>
        public Player(string name, Color color)
        {
            _name      = name;
            _color     = color;
            _playerSet = new BlockSet();
            _move      = 1;

            Block b1  = new Block_L(_color, 25, 425, 20, 3, 1);
            Block b2  = new Block_L(_color, 95, 425, 20, 4, 2);
            Block b3  = new Block_L(_color, 165, 425, 20, 5, 3);
            Block b4  = new Block_T(_color, 235, 425, 20, 4, 4);
            Block b5  = new Block_T(_color, 305, 425, 20, 5, 5);
            Block b6  = new Block_TSymmetric(_color, 375, 425, 20, 5, 6);
            Block b7  = new Block_Line(_color, 445, 425, 20, 1, 7);
            Block b8  = new Block_Line(_color, 515, 425, 20, 2, 8);
            Block b9  = new Block_Line(_color, 585, 425, 20, 3, 9);
            Block b10 = new Block_Line(_color, 655, 425, 20, 4, 10);
            Block b11 = new Block_Line(_color, 725, 425, 20, 5, 11);
            Block b12 = new Block_NoRotation(_color, 25, 515, 20, 4, 12);
            Block b13 = new Block_NoRotation(_color, 95, 515, 20, 5, 13);
            Block b14 = new Block_Z(_color, 165, 515, 20, 4, 14);
            Block b15 = new Block_Z(_color, 235, 515, 20, 5, 15);
            Block b16 = new Block_C(_color, 305, 515, 20, 5, 16);
            Block b17 = new Block_LSymmetric(_color, 375, 515, 20, 5, 17);
            Block b18 = new Block_M(_color, 445, 515, 20, 5, 18);
            Block b19 = new Block_ZSymmetric(_color, 515, 515, 20, 5, 19);
            Block b20 = new Block_N1(_color, 585, 515, 20, 5, 20);
            Block b21 = new Block_N2(_color, 655, 515, 20, 5, 21);

            _playerSet.AddBlock(b1);
            _playerSet.AddBlock(b2);
            _playerSet.AddBlock(b3);
            _playerSet.AddBlock(b4);
            _playerSet.AddBlock(b5);
            _playerSet.AddBlock(b6);
            _playerSet.AddBlock(b7);
            _playerSet.AddBlock(b8);
            _playerSet.AddBlock(b9);
            _playerSet.AddBlock(b10);
            _playerSet.AddBlock(b11);
            _playerSet.AddBlock(b12);
            _playerSet.AddBlock(b13);
            _playerSet.AddBlock(b14);
            _playerSet.AddBlock(b15);
            _playerSet.AddBlock(b16);
            _playerSet.AddBlock(b17);
            _playerSet.AddBlock(b18);
            _playerSet.AddBlock(b19);
            _playerSet.AddBlock(b20);
            _playerSet.AddBlock(b21);
        }
        /// <summary>
        /// Player Selects the Block
        /// </summary>
        /// <param name="player">Player.</param>
        public override void SelectBlock(Player player)
        {
            _BlokusBoard.BackgroundBox();
            _BlokusBoard.DrawPlayerDetails();
            _BlokusBoard.DrawShapeBox();
            _BlokusBoard.SingleBlockBox();
            _BlokusBoard.DrawBoard();
            player.PlayerSet.Draw();
            _BlokusBoard.GameInstructionDisplay(1);
            turnDisplay();
            Point2D rand = new Point2D();

            if (SwinGame.KeyTyped(KeyCode.vk_e))
            {
                _end = true;
                Play();
            }
            if (_p.Move != 1 && chosenblock == false)
            {
                if (player.PlayerSet.Blocks.Count == 0)
                {
                    _end = true;
                    Play();
                }
                else
                {
                    randomselection = choose.Next(player.PlayerSet.Blocks.Count);
                    rand            = player.PlayerSet.ReturnNum(_p.PlayerSet.GetBlockId(player.PlayerSet.Blocks [randomselection]));
                    if ((player.PlayerSet.Blocks [randomselection] is Block_NoRotation && player.PlayerSet.Blocks [randomselection].Size == 5) || (player.PlayerSet.Blocks [randomselection] is Block_M))
                    {
                        rand.X += 20;
                    }
                    player.PlayerSet.SelectBlockAt(rand);
                    chosenblock = true;
                    player.PlayerSet.DrawChosen();
                }
            }
            else
            {
                player.PlayerSet.DrawChosen();
            }

            if (_p.Move > 1)
            {
                foreach (Block b in player.PlayerSet.Blocks)
                {
                    if (player.PlayerSet.Blocks.IndexOf(b) == randomselection)
                    {
                        b.Draw();
                    }
                }
            }
            if (SwinGame.MouseClicked(MouseButton.LeftButton))
            {
                if (_p.Move == 1 && chosenblock == false)
                {
                    player.PlayerSet.SelectBlockAt(SwinGame.MousePosition());
                }
                foreach (Block b in player.PlayerSet.Blocks)
                {
                    if (b.Used == false)
                    {
                        if (b is Block_Line)
                        {
                            _temp    = new Block_Line(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_Line(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_Z)
                        {
                            _temp    = new Block_Z(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_Z(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_NoRotation)
                        {
                            _temp    = new Block_NoRotation(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_NoRotation(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_L)
                        {
                            _temp    = new Block_L(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_L(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_LSymmetric)
                        {
                            _temp    = new Block_LSymmetric(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_LSymmetric(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_M)
                        {
                            _temp    = new Block_M(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_M(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_T)
                        {
                            _temp    = new Block_T(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_T(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_C)
                        {
                            _temp    = new Block_C(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_C(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_TSymmetric)
                        {
                            _temp    = new Block_TSymmetric(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_TSymmetric(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_ZSymmetric)
                        {
                            _temp    = new Block_ZSymmetric(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_ZSymmetric(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_N1)
                        {
                            _temp    = new Block_N1(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_N1(Color.Black, 0, 0, 0, 0, 0);
                        }
                        else if (b is Block_N2)
                        {
                            _temp    = new Block_N2(Color.Black, 0, 0, 0, 0, 0);
                            _display = new Block_N2(Color.Black, 0, 0, 0, 0, 0);
                        }
                        _temp.X         = 200;
                        _temp.Y         = 190;
                        _temp.Length    = b.Length;
                        _temp.Size      = b.Size;
                        _temp.Color     = b.Color;
                        _temp.Number    = b.Number;
                        _display.Length = b.Length;
                        _display.Size   = b.Size;
                        _display.Color  = b.Color;
                        _play           = true;
                    }
                }
            }
        }
 /// <summary>
 /// Player Selects the Block
 /// </summary>
 /// <param name="player">Player.</param>
 public override void SelectBlock(Player player)
 {
     _BlokusBoard.BackgroundBox();
     _BlokusBoard.DrawPlayerDetails();
     _BlokusBoard.DrawShapeBox();
     _BlokusBoard.SingleBlockBox();
     _BlokusBoard.DrawBoard();
     player.PlayerSet.Draw();
     _BlokusBoard.GameInstructionDisplay(0);
     turnDisplay();
     if (SwinGame.KeyTyped(KeyCode.vk_e))
     {
         _end = true;
         Play();
     }
     if (SwinGame.MouseClicked(MouseButton.LeftButton))
     {
         player.PlayerSet.SelectBlockAt(SwinGame.MousePosition());
         foreach (Block b in player.PlayerSet.Blocks)
         {
             if (b.Used == false)
             {
                 if (b is Block_Line)
                 {
                     _temp    = new Block_Line(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_Line(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_Z)
                 {
                     _temp    = new Block_Z(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_Z(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_NoRotation)
                 {
                     _temp    = new Block_NoRotation(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_NoRotation(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_L)
                 {
                     _temp    = new Block_L(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_L(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_LSymmetric)
                 {
                     _temp    = new Block_LSymmetric(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_LSymmetric(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_T)
                 {
                     _temp    = new Block_T(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_T(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_C)
                 {
                     _temp    = new Block_C(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_C(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_TSymmetric)
                 {
                     _temp    = new Block_TSymmetric(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_TSymmetric(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_M)
                 {
                     _temp    = new Block_M(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_M(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_ZSymmetric)
                 {
                     _temp    = new Block_ZSymmetric(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_ZSymmetric(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_N1)
                 {
                     _temp    = new Block_N1(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_N1(Color.Black, 0, 0, 0, 0, 0);
                 }
                 else if (b is Block_N2)
                 {
                     _temp    = new Block_N2(Color.Black, 0, 0, 0, 0, 0);
                     _display = new Block_N2(Color.Black, 0, 0, 0, 0, 0);
                 }
                 _temp.X         = 200;
                 _temp.Y         = 190;
                 _temp.Length    = b.Length;
                 _temp.Size      = b.Size;
                 _temp.Color     = b.Color;
                 _temp.Number    = b.Number;
                 _display.Length = b.Length;
                 _display.Size   = b.Size;
                 _display.Color  = b.Color;
                 _play           = true;
             }
         }
     }
 }