Hab mir letztens mal wieder ein Sudoku (wer kennts nicht?) geschnappt und mir gedacht das man das ja eig. auch mit mehrdimensionalen arrays bauen und füllen kann und habe mich die gesamte nacht dran gesetzt und schritt für schritt alles zsm. gebaut und es geschafft das feld zu bauen und auch eine abfrage genau wie im buch zu bauen aber wenn ich nun:
(die abfrage der koordinaten für das zu besetzende feld)
x-Pos (1 - 14): 2
y-Pos (1 - 14): 3
(an dieser stelle beginnt sich dieser eine abfragesatz unendlich zu wiederholen)
"x-Pos (1 - 14)"
ohne die zahl mit der man sie gefüllt hat (ich sags nur dazu falls es was zu bedeuten hat)
aber ich gebe euch erstmal den quelltext damit ihr euch ein eigenes bild davon machen könnt. aber ich möchte euch vorher noch sagen das das programm vom compiler compiliert wird und es kein (für mich) offensichtlicher fehler ist, wie sich sicher schon beim lesen meines problems herrausgestellt hat.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
|
#include <iostream>
using namespace std;
struct CGame
{
bool Besetzt;
char Name[30];
};
const int Breite = 13;
const int Hoehe = 13;
CGame FeldBesetzt[Breite][Hoehe];
void BerechneLevel1 ();
void besetzeFeld ();
void GameMenue ();
int main ()
{
char Eingabe;
do
{
cout << "\n\n";
cout << "Menue" << endl;
cout << "-----" << endl;
cout << "1. Sudoku spielen" << endl;
cout << "2. Programm beenden" << endl;
cout << "\a\n";
cin >> Eingabe;
cout << "\n\n";
if (Eingabe == '1')
GameMenue ();
else if (Eingabe == '2')
cout << "Danke fürs Spielen" << endl;
else
cout << "Falsche Eingabe!" << endl;
}while (Eingabe != '2');
return 0;
}
void GameMenue ()
{
char Eingabe;
cout << "\n\n";
cout << "Sudoku" << endl;
cout << "-----------" << endl;
cout << "Welchen schwierigkeitsgrad wollen sie spielen?" << endl;
cout << "Schwiergkeit '1'" << endl;
cout << "\n";
cin >> Eingabe;
cout << "\n\n";
if (Eingabe == '1')
BerechneLevel1 ();
else
cout << "Falsche Eingabe!" << endl;
}
void BerechneLevel1 ()
{
char Auswahl;
for (int y=0; y<Breite; y++)
{
for (int x=0; x<Hoehe; x++)
{
if (x == 0)
cout << "|";
else if (x == 4)
cout << "|";
else if (x == 8)
cout << "|";
else if (x == 12)
cout << "|";
else if (y == 0)
cout << "-";
else if (y == 4)
cout << "-";
else if (y == 8)
cout << "-";
else if (y == 12)
cout << "-";
else if (FeldBesetzt[x][y].Besetzt == true)
cout << FeldBesetzt[x][y].Name;
if (FeldBesetzt[x][y].Besetzt == false)
{
// Erstellt das Level
if ((x == 1) && (y == 1))
cout << ".";
else if ((x == 2) && (y == 1))
cout << "7";
else if ((x == 3) && (y == 1))
cout << "3";
else if ((x == 5) && (y == 1))
cout << ".";
else if ((x == 6) && (y == 1))
cout << ".";
else if ((x == 7) && (y == 1))
cout << "5";
else if ((x == 9) && (y == 1))
cout << "6";
else if ((x == 10) && (y == 1))
cout << ".";
else if ((x == 11) && (y == 1))
cout << ".";
else if ((x == 1) && (y == 2))
cout << ".";
else if ((x == 2) && (y == 2))
cout << "1";
else if ((x == 3) && (y == 2))
cout << "2";
else if ((x == 5) && (y == 2))
cout << ".";
else if ((x == 6) && (y == 2))
cout << ".";
else if ((x == 7) && (y == 2))
cout << "7";
else if ((x == 9) && (y == 2))
cout << "3";
else if ((x == 10) && (y == 2))
cout << ".";
else if ((x == 11) && (y == 2))
cout << "5";
else if ((x == 1) && (y == 3))
cout << ".";
else if ((x == 2) && (y == 3))
cout << "4";
else if ((x == 3) && (y == 3))
cout << ".";
else if ((x == 5) && (y == 3))
cout << ".";
else if ((x == 6) && (y == 3))
cout << "1";
else if ((x == 7) && (y == 3))
cout << "8";
else if ((x == 9) && (y == 3))
cout << "2";
else if ((x == 10) && (y == 3))
cout << ".";
else if ((x == 11) && (y == 3))
cout << ".";
else if ((x == 1) && (y == 5))
cout << "2";
else if ((x == 2) && (y == 5))
cout << "6";
else if ((x == 3) && (y == 5))
cout << ".";
else if ((x == 5) && (y == 5))
cout << ".";
else if ((x == 6) && (y == 5))
cout << "4";
else if ((x == 7) && (y == 5))
cout << ".";
else if ((x == 9) && (y == 5))
cout << ".";
else if ((x == 10) && (y == 5))
cout << ".";
else if ((x == 11) && (y == 5))
cout << "8";
else if ((x == 1) && (y == 6))
cout << "3";
else if ((x == 2) && (y == 6))
cout << "9";
else if ((x == 3) && (y == 6))
cout << ".";
else if ((x == 5) && (y == 6))
cout << "6";
else if ((x == 6) && (y == 6))
cout << ".";
else if ((x == 7) && (y == 6))
cout << "1";
else if ((x == 9) && (y == 6))
cout << ".";
else if ((x == 10) && (y == 6))
cout << "5";
else if ((x == 11) && (y == 6))
cout << "2";
else if ((x == 1) && (y == 7))
cout << "4";
else if ((x == 2) && (y == 7))
cout << ".";
else if ((x == 3) && (y == 7))
cout << ".";
else if ((x == 5) && (y == 7))
cout << ".";
else if ((x == 6) && (y == 7))
cout << "2";
else if ((x == 7) && (y == 7))
cout << ".";
else if ((x == 9) && (y == 7))
cout << ".";
else if ((x == 10) && (y == 7))
cout << "6";
else if ((x == 11) && (y == 7))
cout << "9";
else if ((x == 1) && (y == 9))
cout << ".";
else if ((x == 2) && (y == 9))
cout << ".";
else if ((x == 3) && (y == 9))
cout << "4";
else if ((x == 5) && (y == 9))
cout << "8";
else if ((x == 6) && (y == 9))
cout << "3";
else if ((x == 7) && (y == 9))
cout << ".";
else if ((x == 9) && (y == 9))
cout << ".";
else if ((x == 10) && (y == 9))
cout << "7";
else if ((x == 11) && (y == 9))
cout << ".";
else if ((x == 1) && (y == 10))
cout << "7";
else if ((x == 2) && (y == 10))
cout << ".";
else if ((x == 3) && (y == 10))
cout << "9";
else if ((x == 5) && (y == 10))
cout << "1";
else if ((x == 6) && (y == 10))
cout << ".";
else if ((x == 7) && (y == 10))
cout << "8";
else if ((x == 9) && (y == 10))
cout << "2";
else if ((x == 10) && (y == 10))
cout << ".";
else if ((x == 11) && (y == 10))
cout << ".";
else if ((x == 1) && (y == 11))
cout << ".";
else if ((x == 2) && (y == 11))
cout << ".";
else if ((x == 3) && (y == 11))
cout << "6";
else if ((x == 5) && (y == 11))
cout << "9";
else if ((x == 6) && (y == 11))
cout << ".";
else if ((x == 7) && (y == 11))
cout << ".";
else if ((x == 9) && (y == 11))
cout << "5";
else if ((x == 10) && (y == 11))
cout << "4";
else if ((x == 11) && (y == 11))
cout << ".";
}
}
cout << endl;
}
cout << "\n\n\n";
cout << "Feld besetzen: " << endl;
besetzeFeld ();
cout << "Programm verlassen? " << endl;
cout << "'J' Ja und 'N' Nein" << endl;
cin >> Auswahl;
if (Auswahl == 'J')
cout << "Auf Wiedersehen!" << endl;
else if (Auswahl == 'j')
cout << "Auf Wiedersehen!" << endl;
else if (Auswahl == 'N')
BerechneLevel1 ();
else if (Auswahl == 'n')
BerechneLevel1 ();
else BerechneLevel1 ();
}
void besetzeFeld ()
{
int y=0;
int x=0;
do
{
cout << "x-Pos (1-" << Breite+1 << "): ";
cin >> x;
cout << endl;
}while (x<1 || x>Breite+1);
do
{
cout << "y-Pos (1-" << Hoehe+1 << "): ";
cin >> y;
cout << endl;
}while (y<1 || y>Hoehe+1);
cout << "Welche Zahl soll das Feld haben?\n";
cin.get (FeldBesetzt[x-1][y-1].Name, 29);
cin.ignore ();
FeldBesetzt[x-1][x-1].Besetzt = true;
}
|
ich möchte von euch keine vorschläge haben wie ich das mit den else if bedingungen lösen kann!!!
das will ich selber von kapitel zu kapitel verbessern!
also bitte nicht mekern das ich das gesamte level mit 81 einzelnen bedingungen erstellt habe.
Dieses Programm ist dazu gedacht das ich es selber immer weiter verbessern kann.
Danke!
also ich konzentriere mich mich im moment sehr auf die letzte funktion
void besetzeFeld ()
den das programm wiederholt sich noch vor der abfrage direkt nach der funktion ob das spiel beended werden soll.
ich hoffe ihr könnt mir helfen
Danke schon mal vorne weg.