source: 2010/23/hniemi/JyTris/JyTris/L.cs @ 1480

Revision 1480, 3.3 KB checked in by hniemi, 9 years ago (diff)

J- ja L-palikat lisätty, eivät vielä tuli satunnaisella.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.ScreenObjects;
7using Jypeli.Assets;
8
9namespace JyTris
10{
11
12    class L : ITetrispalikka
13    {
14        Vector[] sijainnit;
15        Vector[][] siirrot;
16        private int seuraavaAsento = 0;
17
18        public L(int keskikohta)
19        {
20            //Tämä silmukkaa tekee uudet palikat ja laittaa ne järjestykseen
21            sijainnit = new Vector[4];
22            for (int i = 0; i < sijainnit.Length; i++)
23            {
24                sijainnit[i] = new Vector();
25            }
26            sijainnit[3].Y = 1;
27
28            sijainnit[0].X = keskikohta;
29            sijainnit[1].X = keskikohta+1;
30            sijainnit[2].X = keskikohta-1;
31            sijainnit[3].X = keskikohta-1;
32           
33            //Tämä luo siirrot, jotta palikkaa voidaan kääntää
34            siirrot = new Vector[4][];
35            for (int i = 0; i < siirrot.Length; i++)
36            {
37                siirrot[i] = new Vector[4];
38            }
39
40            /*
41            * 201 -> 1
42            * 3      0
43            *        23
44            */
45            siirrot[0][0] = new Vector(0, 0);
46            siirrot[0][1] = new Vector(-1, -1);
47            siirrot[0][2] = new Vector(1, 1);
48            siirrot[0][3] = new Vector(2, 0);
49
50            /*
51             * 1  ->   3
52             * 0     102
53             * 23
54             */
55            siirrot[1][0] = new Vector(0, 0);
56            siirrot[1][1] = new Vector(-1, 1);
57            siirrot[1][2] = new Vector(1, -1);
58            siirrot[1][3] = new Vector(0, -2);
59
60            /*
61             *   3 -> 32
62             * 102     0
63             *         1
64             */
65            siirrot[2][0] = new Vector( 0, 0);
66            siirrot[2][1] = new Vector( 1, 1);
67            siirrot[2][2] = new Vector( -1,-1);
68            siirrot[2][3] = new Vector(-2, 0);
69
70            /*
71             * 32 -> 201
72             *  0    3
73             *  1
74             */
75            siirrot[3][0] = new Vector(0, 0);
76            siirrot[3][1] = new Vector(1, -1);
77            siirrot[3][2] = new Vector(-1, 1);
78            siirrot[3][3] = new Vector(0, 2);
79        }
80        public void Liikuta(Vector liike)
81        {
82            //Lisää halutun siirron jokaisen palikan sijaintiin
83            for (int i = 0; i < sijainnit.Length; i++)
84            {
85                sijainnit[i] += liike;
86            }
87
88        }
89
90        public int Kaanna()
91        {
92            for (int i = 0; i < sijainnit.Length; i++)
93            {
94                sijainnit[i] += siirrot[seuraavaAsento][i];
95            }
96
97            seuraavaAsento++;
98            if (seuraavaAsento > siirrot.Length - 1) seuraavaAsento = 0;
99
100            return seuraavaAsento;
101        }
102
103        public Vector[] TulevaKaanto()
104        {
105            Vector[] tulevaSijainti = new Vector[4];
106            for (int i = 0; i < tulevaSijainti.Length; i++)
107            {
108                tulevaSijainti[i] = sijainnit[i] + siirrot[seuraavaAsento][i];
109            }
110            return tulevaSijainti;
111        }
112
113        public Color Vari()
114        {
115            return Color.Blue;
116        }
117
118        public Vector[] Sijainti()
119        {
120            return sijainnit;
121        }
122    }
123}
Note: See TracBrowser for help on using the repository browser.