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