Schifferversenken problem beim Schiffe setzen
-
Ich programmiere grade Schifferversenken und bin grade an einem Punkt angelangt, wo ich nicht mehr weiter weiß. Und zwar wie man als Spieler die Schiffe setzen kann.
//Schiff Anzeige // system ("cls"); cout << "Setzen sie die Schiffe"; cout << "Es gibt:\n"; cout << "Ein Schlachtschiff (5 Felder)\n"; cout << "Zwei Zerstoerer (4 Felder)\n"; cout << "Drei Kreuzer (3 Felder)\n"; cout << "Vier U-Boote (2 Felder)\n\n\n\n"; //Setzte Schlachtschiff // do { cout << "Schlachtschiff (5 Felder): \n\n"; cout << "Anfangskoordinaten Eingeben: \n"; cout << "x-> "; cin >> m_xPos; if (m_xPos <1 || m_xPos >10) Unterbrecher = false; cout << "y-> "; cin >> m_yPos; if (m_yPos <1 || m_yPos >10) Unterbrecher = false; cout << "Nach [N]orden, [O]sten, [S]ueden oder [W]esten ausrichten?\n"; cin >> Lage; //=====Switch-case======// switch (Lage) { case ('n'): case ('N'): { for (int n=0; n<5; n++) { m_yPos -= n; if (m_yPos<1 || m_yPos>10) { cout << "Fehler beim Setzen der Koordinate\n"; Unterbrecher = false; }break; m_2dFeld[m_xPos][m_yPos] = 2; } Unterbrecher = true; }break;Hier kommt aber immer ein Fehler, weil die do while Schleife nicht wiederhohlt wird, wenn die Koordinaten net stimmen

Kann mir einer helfen oder eine andere Lösung für das Problem sagen?
-
} }while (Unterbrecher == false); }sry des stück fehlte noch

-
for (int n=0; n<5; n++) { m_yPos -= n; if (m_yPos<1 || m_yPos>10) { cout << "Fehler beim Setzen der Koordinate\n"; Unterbrecher = false; } break; m_2dFeld[m_xPos][m_yPos] = 2; } Unterbrecher = true;Break beendet die for-Schleife IMMER...
Unterbrecher wird außerdem IMMER true
--> Schleife wird IMMER beendet...
Außerdem, wie willst du das Spiel grafisch darstellen ???
-
Nein nur in der Konsole, also wenn m_2dFeld[...][...] = 2, dann ist da ein Schiff, falls 1 dann nichts usw.
-
Könntest du mir mal dein ganzes Programm geben ?