Hallo Leute,
ich muss Schiffe versenken Programmieren und hab ein kleines Problem an der Stelle wo es darum geht das Spieler2 Koordinaten ein gibt zum Angriff. Hier ist der ganze Code den ich bis jetzt habe.
Ich will die Koordinaten wieder in Indizes umrechnen und prüfen, ob an dieser Stelle eine 1 steht (Treffer) oder nicht (Wasser). Getroffene Punkte im Array sollen durch '2.' ersetzt werden. Das ganze in einer Schleife, bis sich keine 1 im Feld mehr findet. Versuchs seit gestern und bekomms ned hin. Kann mir bitte jemand helfen?
Lieben Gruß
Marimi
ich muss Schiffe versenken Programmieren und hab ein kleines Problem an der Stelle wo es darum geht das Spieler2 Koordinaten ein gibt zum Angriff. Hier ist der ganze Code den ich bis jetzt habe.
C++:
#include <iostream>
using namespace std;
const int A=9;
const int B=7;
int main()
{
char Spielfeld[A][B];
int a, b;
char ca, cb;
for (a=0; a<A; a++)
{
for (b=0; b<B; b++)
{
Spielfeld[a][b] = '.';
}
}
// Anzeige und Eingabe
bool SchleifenEnde=false;
int xin, yin;
do
{
cout << " 1 2 3 4 5 6 7 8 9" << endl;
for (b=0; b<B; b++)
{
cout << (char)('A'+b) << " ";
for (a=0; a<A; a++)
{
cout << " " << Spielfeld[a][b];
}
cout << endl;
}
cout << "Spieler 1 -- Koordinaten setzen: (ZZ eingeben wenn die Schiffe platziert sind)" << endl;
cin >> ca >> cb;
xin = ca - '1';
yin = cb - 'A';
if (xin>=0 && xin<9 && yin>=0 && yin<7)
{
Spielfeld[xin][yin] = '1';
}
else
{
SchleifenEnde = true;
}
}
while (!SchleifenEnde);
char cy, cx;
cout << "Spieler 2 -- Welches Feld befeuern?:" << endl;
cin >> cy >> cx;
xin = cy - '1';
yin = cx - 'A';
if (xin>=0 && xin<9 && yin>=0 && yin<7)
{
Spielfeld[xin][yin] = '2';
}
else;
}
Ich will die Koordinaten wieder in Indizes umrechnen und prüfen, ob an dieser Stelle eine 1 steht (Treffer) oder nicht (Wasser). Getroffene Punkte im Array sollen durch '2.' ersetzt werden. Das ganze in einer Schleife, bis sich keine 1 im Feld mehr findet. Versuchs seit gestern und bekomms ned hin. Kann mir bitte jemand helfen?
Lieben Gruß
Marimi