Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Frischling
Wohnort: Roth
Beruf: Verwaltungsfachangesteller (Stadtverwaltung), Fitness-Trainer und Muay-Thai-Trainer
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 |
#include <iostream> using namespace std; int main() { char Field[6][6]; int Zeile, Spalte; //Basisfeld wird angelegt for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { Field[i][j] = '_'; } } //Basisfeld wird ausgegeben cout << "|X|1|2|3|4|5|6|" << endl; for (int i = 0; i < 6; i++) { cout << "|" << i+1 << "|"; for (int j = 0; j < 6; j++) { cout << Field[i][j] << "|"; } cout << endl; } //Prüfen, ob die eingegebene Zahl größer 6 ist do { cout << "Bitte Zeile eingeben: "; cin >> Zeile; if (Zeile > 6) cout << "Bitte nur Werte von 1 - 6 eingeben" << endl; }while (Zeile > 6); //Prüfen, ob die eingegebene Zahl größer 6 ist do { cout << "Bitte Spalte eingeben: "; cin >> Spalte; if (Spalte > 6) cout << "Bitte nur Werte von 1 - 6 eingeben" << endl; }while (Spalte > 6); int i = Zeile - 1; int j = Spalte - 1; //Felder belegen if (Zeile == 6) { Field[i][j] = 'R'; Field[i - 1][j] = 'R'; Field[i][j + 1] = 'R'; Field[i - 1][j + 1] = 'R'; } else if (Spalte == 6) { Field[i][j] = 'R'; Field[i + 1][j] = 'R'; Field[i][j - 1] = 'R'; Field[i + 1][j - 1] = 'R'; } else if (Zeile == 6 && Spalte == 6) { Field[i - 1][j - 1] = 'R'; Field[i - 1][j] = 'R'; Field[i][j - 1] = 'R'; Field[i][j] = 'R'; } else { Field[i][j] = 'R'; Field[i][j + 1] = 'R'; Field[i + 1][j] = 'R'; Field[i + 1][j + 1] = 'R'; } //ganzes Feld wird jetzt mit Veränderungen ausgeben cout << "|X|1|2|3|4|5|6|" << endl; for (int i = 0; i < 6; i++) { cout << "|" << i+1 << "|"; for (int j = 0; j < 6; j++) { cout << Field[i][j] << "|"; } cout << endl; } cin.get(); return 0; } |
Alter Hase
Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy
Frischling
Wohnort: Roth
Beruf: Verwaltungsfachangesteller (Stadtverwaltung), Fitness-Trainer und Muay-Thai-Trainer
Frischling
Wohnort: Roth
Beruf: Verwaltungsfachangesteller (Stadtverwaltung), Fitness-Trainer und Muay-Thai-Trainer
Ab Zeile 41 werden die Werte für Spalte und Zeile auf 6 festgelegt. Dein Array ist genau [6][6] groß. Vielleicht findest du jetzt den Fehler?
Alter Hase
Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy
Ab Zeile 41 werden die Werte für Spalte und Zeile auf 6 festgelegt. Dein Array ist genau [6][6] groß. Vielleicht findest du jetzt den Fehler?
Oh na klar, es sollte dann so aussehen, dass je nach Eingabe der Zeile und Spalte unter Berücksichtigung der Feld-Enden ein (optisch zusammengehörendes) Viereck des Buchstaben 'R' aufgebaut wird.
Wenn ich nur ein Feldende angreife, also nur rechts oder nur unten, dann setzt er die vier zusammengehörenden 'R' so, dass eben die freien Felder daneben belegt werden, weil ja über den Rand nichts
zugewiesen werden sollte.
Wenn ich aber, wie im vorliegenden Fall beide Enden angreife, dann gibt es kein zusammengehörendes Viereck mehr, sondern 2 'R' unten rechts und eins unten links, das 4. 'R' verschluckt er komplett.
Dieser Code allein arbeitend ist Teil eines Projektes, welches ich angefangen habe und schon relativ gut zurecht komme.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
if (Zeile == 6) { // ... } else if (Spalte == 6) { // ... } else if (Zeile == 6 && Spalte == 6) { // ... } |
Alter Hase
Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy
Frischling
Wohnort: Roth
Beruf: Verwaltungsfachangesteller (Stadtverwaltung), Fitness-Trainer und Muay-Thai-Trainer
Werbeanzeige