Пример #1
0
        public bool[] Blocks_Creation(Tiles Tiles)
        {
            // 0123
            // 4567
            // 8901
            // 2345

            // data for 4v4 block shapes
            bool[] array_for_blocks_creation = new bool[tile_size << 2];

            switch (Tiles.type)
            {
            case image_type.image1:
                if (Tiles.angle.Equals(block_rotation.zero_deg) || Tiles.angle.Equals(block_rotation.one_eighty_deg))
                {
                    array_for_blocks_creation[2]  = true;    // ..#. 0123
                    array_for_blocks_creation[6]  = true;    // ..#. 4567
                    array_for_blocks_creation[10] = true;    // ..#. 8901
                    array_for_blocks_creation[14] = true;    // ..#. 2345
                }
                else
                {
                    array_for_blocks_creation[12] = true;     // .... 0123
                    array_for_blocks_creation[13] = true;     // .... 4567
                    array_for_blocks_creation[14] = true;     // .... 8901
                    array_for_blocks_creation[15] = true;     // #### 2345
                }

                break;

            case image_type.image2:
                array_for_blocks_creation[0] = true;     // ##.. 0123
                array_for_blocks_creation[1] = true;     // ##.. 4567
                array_for_blocks_creation[4] = true;     // .... 8901
                array_for_blocks_creation[5] = true;     // .... 2345
                break;

            case image_type.image3:
                if (Tiles.angle.Equals(block_rotation.zero_deg) || Tiles.angle.Equals(block_rotation.one_eighty_deg))
                {
                    array_for_blocks_creation[5] = true;     // .... 0123
                    array_for_blocks_creation[6] = true;     // .##. 4567
                    array_for_blocks_creation[8] = true;     // ##.. 8901
                    array_for_blocks_creation[9] = true;     // .... 2345
                }
                else
                {
                    array_for_blocks_creation[1]  = true;    // .#.. 0123
                    array_for_blocks_creation[5]  = true;    // .##. 4567
                    array_for_blocks_creation[6]  = true;    // ..#. 8901
                    array_for_blocks_creation[10] = true;    // .... 2345
                }
                break;

            case image_type.image4:
                if (Tiles.angle.Equals(block_rotation.zero_deg) || Tiles.angle.Equals(block_rotation.one_eighty_deg))
                {
                    array_for_blocks_creation[4]  = true;    // .... 0123
                    array_for_blocks_creation[5]  = true;    // ##.. 4567
                    array_for_blocks_creation[9]  = true;    // .##. 8901
                    array_for_blocks_creation[10] = true;    // .... 2345
                }
                else
                {
                    array_for_blocks_creation[2] = true;     // ..#. 0123
                    array_for_blocks_creation[5] = true;     // .##. 4567
                    array_for_blocks_creation[6] = true;     // .#.. 8901
                    array_for_blocks_creation[9] = true;     // .... 2345
                }
                break;

            case image_type.image5:
                if (Tiles.angle.Equals(block_rotation.zero_deg))
                {
                    array_for_blocks_creation[4] = true;     // .... 0123
                    array_for_blocks_creation[5] = true;     // ###. 4567
                    array_for_blocks_creation[6] = true;     // .#.. 8901
                    array_for_blocks_creation[9] = true;     // .... 2345
                }
                else if (Tiles.angle.Equals(block_rotation.ninety_deg))
                {
                    array_for_blocks_creation[1] = true;     // .#.. 0123
                    array_for_blocks_creation[4] = true;     // ##.. 4567
                    array_for_blocks_creation[5] = true;     // .#.. 8901
                    array_for_blocks_creation[9] = true;     // .... 2345
                }
                else if (Tiles.angle.Equals(block_rotation.one_eighty_deg))
                {
                    array_for_blocks_creation[5]  = true;    // .... 0123
                    array_for_blocks_creation[8]  = true;    // .#.. 4567
                    array_for_blocks_creation[9]  = true;    // ###. 8901
                    array_for_blocks_creation[10] = true;    // .... 2345
                }
                else
                {
                    array_for_blocks_creation[1] = true;     // .#.. 0123
                    array_for_blocks_creation[5] = true;     // .##. 4567
                    array_for_blocks_creation[6] = true;     // .#.. 8901
                    array_for_blocks_creation[9] = true;     // .... 2345
                }
                break;

            case image_type.image6:
                if (Tiles.angle.Equals(block_rotation.zero_deg))
                {
                    array_for_blocks_creation[4] = true;     // .... 0123
                    array_for_blocks_creation[5] = true;     // ###. 4567
                    array_for_blocks_creation[6] = true;     // #... 8901
                    array_for_blocks_creation[8] = true;     // .... 2345
                }
                else if (Tiles.angle.Equals(block_rotation.ninety_deg))
                {
                    array_for_blocks_creation[0] = true;     // ##.. 0123
                    array_for_blocks_creation[1] = true;     // .#.. 4567
                    array_for_blocks_creation[5] = true;     // .#.. 8901
                    array_for_blocks_creation[9] = true;     // .... 2345
                }
                else if (Tiles.angle.Equals(block_rotation.one_eighty_deg))
                {
                    array_for_blocks_creation[6]  = true;    // .... 0123
                    array_for_blocks_creation[8]  = true;    // ..#. 4567
                    array_for_blocks_creation[9]  = true;    // ###. 8901
                    array_for_blocks_creation[10] = true;    // .... 2345
                }
                else
                {
                    array_for_blocks_creation[1]  = true;    // .#.. 0123
                    array_for_blocks_creation[5]  = true;    // .#.. 4567
                    array_for_blocks_creation[9]  = true;    // .##. 8901
                    array_for_blocks_creation[10] = true;    // .... 2345
                }
                break;

            case image_type.image7:
                if (Tiles.angle.Equals(block_rotation.zero_deg))
                {
                    array_for_blocks_creation[4]  = true;    // .... 0123
                    array_for_blocks_creation[5]  = true;    // ###. 4567
                    array_for_blocks_creation[6]  = true;    // ..#. 8901
                    array_for_blocks_creation[10] = true;    // .... 2345
                }
                else if (Tiles.angle.Equals(block_rotation.ninety_deg))
                {
                    array_for_blocks_creation[1] = true;     // .#.. 0123
                    array_for_blocks_creation[5] = true;     // .#.. 4567
                    array_for_blocks_creation[8] = true;     // ##.. 8901
                    array_for_blocks_creation[9] = true;     // .... 2345
                }
                else if (Tiles.angle.Equals(block_rotation.one_eighty_deg))
                {
                    array_for_blocks_creation[4]  = true;    // .... 0123
                    array_for_blocks_creation[8]  = true;    // #... 4567
                    array_for_blocks_creation[9]  = true;    // ###. 8901
                    array_for_blocks_creation[10] = true;    // .... 2345
                }
                else
                {
                    array_for_blocks_creation[1] = true;     // .##. 0123
                    array_for_blocks_creation[2] = true;     // .#.. 4567
                    array_for_blocks_creation[5] = true;     // .#.. 8901
                    array_for_blocks_creation[9] = true;     // .... 2345
                }
                break;

            case image_type.image8:
                array_for_blocks_creation[0] = true;     // #... 0123
                // .... 4567
                // .... 8901
                // .... 2345
                break;

            case image_type.image9:
                if (Tiles.angle.Equals(block_rotation.zero_deg) || Tiles.angle.Equals(block_rotation.one_eighty_deg))
                {
                    array_for_blocks_creation[1] = true;     // .##. 0123
                    array_for_blocks_creation[2] = true;     // .#.. 4567
                    array_for_blocks_creation[5] = true;     // ##.. 8901
                    array_for_blocks_creation[8] = true;     // .... 2345
                    array_for_blocks_creation[9] = true;     // .... 2345
                }
                else
                {
                    array_for_blocks_creation[0]  = true;     // #... 0123
                    array_for_blocks_creation[4]  = true;     // ###. 4567
                    array_for_blocks_creation[5]  = true;     // ..#. 8901
                    array_for_blocks_creation[6]  = true;     // .... 2345
                    array_for_blocks_creation[10] = true;
                }
                break;

            case image_type.image10:
                if (Tiles.angle.Equals(block_rotation.zero_deg) || Tiles.angle.Equals(block_rotation.one_eighty_deg))
                {
                    array_for_blocks_creation[0]  = true;    // ##.. 0123
                    array_for_blocks_creation[1]  = true;    // .#.. 4567
                    array_for_blocks_creation[5]  = true;    // .##. 8901
                    array_for_blocks_creation[9]  = true;    // .... 2345
                    array_for_blocks_creation[10] = true;
                }
                else
                {
                    array_for_blocks_creation[3] = true;     // ...# 0123
                    array_for_blocks_creation[5] = true;     // .### 4567
                    array_for_blocks_creation[6] = true;     // .#.. 8901
                    array_for_blocks_creation[7] = true;     // .... 2345
                    array_for_blocks_creation[9] = true;
                }
                break;

            case image_type.image11:
                if (Tiles.angle.Equals(block_rotation.zero_deg))
                {
                    array_for_blocks_creation[0] = true;     // ###. 0123
                    array_for_blocks_creation[1] = true;     // .#.. 4567
                    array_for_blocks_creation[2] = true;     // .#.. 8901
                    array_for_blocks_creation[5] = true;     // .... 2345
                    array_for_blocks_creation[9] = true;
                }
                else if (Tiles.angle.Equals(block_rotation.ninety_deg))
                {
                    array_for_blocks_creation[2]  = true;    // ..#. 0123
                    array_for_blocks_creation[4]  = true;    // ###. 4567
                    array_for_blocks_creation[5]  = true;    // ..#. 8901
                    array_for_blocks_creation[6]  = true;    // .... 2345
                    array_for_blocks_creation[10] = true;
                }
                else if (Tiles.angle.Equals(block_rotation.one_eighty_deg))
                {
                    array_for_blocks_creation[1]  = true;     // .#.. 0123
                    array_for_blocks_creation[5]  = true;     // .#.. 4567
                    array_for_blocks_creation[8]  = true;     // ###. 8901
                    array_for_blocks_creation[9]  = true;     // .... 2345
                    array_for_blocks_creation[10] = true;
                }
                else
                {
                    array_for_blocks_creation[1] = true;     // .#.. 0123
                    array_for_blocks_creation[5] = true;     // .### 4567
                    array_for_blocks_creation[6] = true;     // .#.. 8901
                    array_for_blocks_creation[7] = true;     // .... 2345
                    array_for_blocks_creation[9] = true;
                }
                break;

            case image_type.image12:
                if (Tiles.angle.Equals(block_rotation.zero_deg))
                {
                    array_for_blocks_creation[2] = true;     // ..#. 0123
                    array_for_blocks_creation[5] = true;     // .##. 4567
                    array_for_blocks_creation[6] = true;     // .... 8901
                    // .... 2345
                }
                else if (Tiles.angle.Equals(block_rotation.ninety_deg))
                {
                    array_for_blocks_creation[1] = true;     // .#.. 0123
                    array_for_blocks_creation[4] = true;     // .##. 4567
                    array_for_blocks_creation[5] = true;     // .... 8901
                    // .... 2345
                }
                else if (Tiles.angle.Equals(block_rotation.one_eighty_deg))
                {
                    array_for_blocks_creation[1] = true;      // .##. 0123
                    array_for_blocks_creation[2] = true;      // ..#. 4567
                    array_for_blocks_creation[6] = true;      // .... 8901
                    // .... 2345
                }
                else
                {
                    array_for_blocks_creation[1] = true;     // .##. 0123
                    array_for_blocks_creation[2] = true;     // .#.. 4567
                    array_for_blocks_creation[5] = true;     // .... 8901
                    // .... 2345
                }
                break;
            }

            return(array_for_blocks_creation);
        }
Пример #2
0
 public void Assign(Tiles t)
 {
     Rotation = t.angle;
     Shape    = t.type;
 }
Пример #3
0
        public void OnTimedEvent(Object source, ElapsedEventArgs e)
        {
            //keepTimer += 10;
            //fulcore del gioco
            // string tileCorrente = "";


            keepTimer = 0;
            switch (currentCase)
            {
            case 0:
                Tiles currentTile = new Tiles();
                tileCorrente = currentTile.getStringa();
                campoGioco4.istance(x, y, tileCorrente);
                currentCase = 1;
                break;

            case 1:

                //Logica del gioco da sistemare
                //1) Controlla se la matrice è già piena prima di inserire
                //2) Inserisci blocco
                //2.5) Incrementa y
                //3) Controlla se la prossima posizione si può utilizzare
                //3) Si --> 4 No --> 5
                //4) Inserisci blocco più giù
                //5) y = 0; --> 2

                if (campoGioco4.check(x, y, tileCorrente))
                {
                    if (y == 0)
                    {
                        aTimer.Dispose();

                        aTimer.Enabled = false;
                        aTimer.Stop();
                        cTimer.Enabled = false;
                        cTimer.Stop();
                        string s   = "GAMEOVER";
                        byte[] msg = Encoding.UTF8.GetBytes(s);
                        // Blocks until send returns.
                        socket.Send(msg, 0, msg.Length, SocketFlags.None);
                        DialogResult ok = MessageBox.Show("Game Over");
                        if (ok == DialogResult.OK)
                        {
                            t.Join();
                            aggiornaCampoAvversario.Join();
                            socket.Dispose();
                            DialogResult = DialogResult.No;
                        }
                    }
                    else
                    {
                        campoGioco4.swithcState();
                        currentCase          = 0;
                        y                    = 0;
                        x                    = 3;
                        campoGioco4.verifica = false;
                    }
                }
                else
                {
                    campoGioco4.clean();
                    campoGioco4.istance(x, y, tileCorrente);
                    y++;
                    List <int> indiciRigheComplete;
                    int        righeComplet = campoGioco4.checkFullLine(out indiciRigheComplete);
                    if (righeComplet != 0)
                    {
                        InvioRighe(righeComplet);
                        righeComplet = 0;
                        campoGioco4.spostaGiu(indiciRigheComplete, righeComplet);
                        campoGioco4.clean();
                    }
                }
                break;
            }
            //manda e ricevi
        }