1 | private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
|
2 |
|
3 | this->Location = Point(100,20);
|
4 | this->Size = System::Drawing::Size(1116,666);
|
5 | Spielfeld->Size = System::Drawing::Size(600,600);
|
6 | Spielfeld->Location = Point(0,27);
|
7 |
|
8 | Spielstein = gcnew array<int ^, 2>(8, 8);
|
9 | Buttons = gcnew array<Windows::Forms::Button ^, 2>(8, 8);
|
10 |
|
11 |
|
12 | for(int i = 0; i < 8; i++)
|
13 | {
|
14 | for(int j = 0; j < 8; j++)
|
15 | {
|
16 | Buttons[i,j] = gcnew Windows::Forms::Button();
|
17 | Spielstein[i,j] = gcnew int;
|
18 | // Spielstein 1: Gelber Spielstein
|
19 | // Spielstein 2: Gelbe Dame
|
20 | // Spielstein 3: Roter Spielstein
|
21 | // Spielstein 4: Rote Dame
|
22 |
|
23 | Buttons[i,j]->Size = System::Drawing::Size(75,75);
|
24 | Buttons[i,j]->FlatStyle = FlatStyle::Flat;
|
25 | Buttons[i,j]->Margin = System::Windows::Forms::Padding(0);
|
26 | Buttons[i,j]->FlatAppearance->BorderSize = 0;
|
27 | Buttons[i,j]->BackgroundImageLayout = ImageLayout::Stretch;
|
28 | Buttons[i,j]->Click += gcnew EventHandler(this, &Form1::Buttons_Clicked);
|
29 |
|
30 | Spielfeld->Controls->Add(Buttons[i,j], i, j);
|
31 |
|
32 | if(i % 2 == 0 && j % 2 == 0 || i % 2 == 1 && j % 2 == 1)
|
33 | Buttons[i,j]->BackColor = Color::Black;
|
34 | else
|
35 | Buttons[i,j]->BackColor = Color::White;
|
36 | }
|
37 | }
|
38 | }
|
39 | private: System::Void Buttons_Clicked(Object ^sender, EventArgs ^e) {
|
40 |
|
41 | Button ^clickedButton = gcnew Button();
|
42 | clickedButton = dynamic_cast<Button^>(sender);
|
43 |
|
44 | for(int i = 0; i < 8; i++)
|
45 | {
|
46 | for(int j = 0; j < 8; j++)
|
47 | {
|
48 | if(clickedButton == Buttons[i,j])
|
49 | {
|
50 | if(zug == 1)
|
51 | {
|
52 | if(Spielstein[i,j] == 1)
|
53 | {
|
54 | this->Text = "Hi";
|
55 | }
|
56 | else
|
57 | {
|
58 | this->Text = Convert::ToString(i);
|
59 | }
|
60 | }
|
61 | }
|
62 | }
|
63 | }
|
64 | // Spiel spielen
|
65 | // Spielmechanik: Wenn Spieler 1 am Zug ist und einen Spielstein auswählt:
|
66 | // Dann abfragen ob es ein richtiger Button ist.
|
67 | // Wenn ja, dann abfragen ob das angewählte Feld, das voraus liegt
|
68 | // Leer ist, bzw das 2fach entfernte Feld leer ist und dazwischen das Button-Hintergrundbild
|
69 | // des anderen Spielers ist. Wenn ja, dann ist Zug gültig. das alte Feld wird nullptr
|
70 | // gesetetz und wenn ein Gegner dazwischen lag, wird dieser entfernt.
|
71 | // OPTIONAL: Abfrage ob von diesem Spielstein ein weiterer gegnerischer Spielstein
|
72 | // übersprungen werden kann, wenn ja, dann darf nochmal gesprungen werden.
|
73 | }
|
74 | private: System::Void neuesSpielToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
|
75 |
|
76 | // Spielfeld initialisieren
|
77 |
|
78 | for(int i = 0; i < 8; i = i + 2)
|
79 | {
|
80 | for(int j = 0; j < 3; j++)
|
81 | {
|
82 | if(j == 1)
|
83 | {
|
84 | Buttons[i + 1,j]->BackgroundImage = Image::FromFile("Bilder\\Gelb.jpg");
|
85 | Spielstein[i +1,j] = 1;
|
86 | }
|
87 | else
|
88 | {
|
89 | Buttons[i,j]->BackgroundImage = Image::FromFile("Bilder\\Gelb.jpg");
|
90 | Spielstein[i,j] = 1;
|
91 | }
|
92 | }
|
93 | Buttons[i,4]->BackgroundImage = nullptr;
|
94 | Buttons[i + 1,3]->BackgroundImage = nullptr;
|
95 | for(int j = 5; j < 8; j++)
|
96 | {
|
97 | if(j == 6)
|
98 | {
|
99 | Buttons[i,j]->BackgroundImage = Image::FromFile("Bilder\\Rot.jpg");
|
100 | Spielstein[i,j] = 3;
|
101 | }
|
102 | else
|
103 | {
|
104 | Buttons[i + 1,j]->BackgroundImage = Image::FromFile("Bilder\\Rot.jpg");
|
105 | Spielstein[i +1,j] = 3;
|
106 | }
|
107 | }
|
108 | }
|
109 | zug = 1;
|
110 | freigabe = true;
|
111 | }
|