Hi,
Ich sitze jetzt schon sehr lange an einer Aufgabe meines C++ Buches...
Ich habe einen Fehler den ich einfach nicht weg bekomme..
Aufgabe des Programmes ist es eine Karte "5x5 Felder groß" zu malen. Mit einem Menübefehl soll man bestimten Feldern Koordinaten und Namen zuweißen können. Das Programm soll dann an den Koordinaten, wo eine Zuweißung statt gefunden hat ein "X "zeichnen und bei den andern ein "-".
Das mit den Koordinaten bekomme ich hin jedoch funktoniert das Zuweißen eines Namens für das Feld nicht.. die Eingabefunktion des charArrays sorgt dafür, dass das Menü immer und immer wieder neu geschrieben wird..
Hier ist irgendwo der Wurm drinne: (Ohne das Rot makierte funktoniert es jedoch perfekt)
[/COLOR]
Und hier nochmal der ganze Code:
Ich würde mich freuen, wenn mir jemand helfen würde
Ich sitze jetzt schon sehr lange an einer Aufgabe meines C++ Buches...
Ich habe einen Fehler den ich einfach nicht weg bekomme..
Aufgabe des Programmes ist es eine Karte "5x5 Felder groß" zu malen. Mit einem Menübefehl soll man bestimten Feldern Koordinaten und Namen zuweißen können. Das Programm soll dann an den Koordinaten, wo eine Zuweißung statt gefunden hat ein "X "zeichnen und bei den andern ein "-".
Das mit den Koordinaten bekomme ich hin jedoch funktoniert das Zuweißen eines Namens für das Feld nicht.. die Eingabefunktion des charArrays sorgt dafür, dass das Menü immer und immer wieder neu geschrieben wird..
Hier ist irgendwo der Wurm drinne: (Ohne das Rot makierte funktoniert es jedoch perfekt)
Code:
cout << "Gebe X-Wert ein: ";
cin >> xEingabe;
cout << "Gebe Y-Wert ein: ";
cin >> yEingabe;
cout << "Gebe einen Namen für das Feld ein: ";
for(int g = 0; g<25; g++ )
{
if ( Felder[g].Yposi == yEingabe )
{
if (Felder[g].Xposi == xEingabe )
{
Felder[g].bFeldstatus = true;
cout << "Feld" << g << "mit den Koordinaten " << Felder[g].Xposi << " und " << Felder[g].Yposi << " wurde true" << endl;
[COLOR="Red"] cout << "Gebe einen Namen für das Feld ein: ";
cin.get (Felder[g].chFeldName, 10);
cin.ignore;
Und hier nochmal der ganze Code:
Code:
#include <iostream>
using namespace std;
//Funktionen
int main ()
{
//Strucktur Felder
struct st_Felder {
bool bFeldstatus;
char chFeldName[10];
int Yposi;
int Xposi;
};
//Variabeln
int xEingabe;
int yEingabe;
int Auswahl;
int FelderDurchzaehler;
st_Felder Felder[25];
FelderDurchzaehler = 0;
//Felder zuweißungs schleife
for (int i = 1; i < 6 ; i++)
{
for (int j = 1; j < 6 ; j++)
{
Felder[FelderDurchzaehler].Yposi = i;
cout << "Koordinaten von Feld "<< FelderDurchzaehler+1 << " Y-posi: " << Felder[FelderDurchzaehler].Yposi;
Felder[FelderDurchzaehler].Xposi = j;
cout << " X-posi: " << Felder[FelderDurchzaehler].Xposi << endl;
FelderDurchzaehler ++;
}
}
//Menü Schleife
do {
cout << " Feldmaster 1.0" << endl;
cout << "-----------------------" << endl;
cout << "1. Spielfeld anzeigen" << endl;
cout << "2. Feld besetzen" << endl;
cout << "3. Felddaten anzeigen" << endl;
cout << "4. Spielfeld löschen" << endl;
cout << "5. Programm benden" << endl;
cin >> Auswahl;
cout << "\n\n" << Auswahl << "\n\n";
//Menü Auswahl
switch(Auswahl)
{
//Spielfeld schreiben
cout << "\n\n" << Auswahl << "\n\n";
case(1):
{
FelderDurchzaehler = 0;
for (int i = 1; i < 6 ; i++)
{
for (int j = 1; j < 6 ; j++)
{
if (Felder[FelderDurchzaehler].bFeldstatus == true)
{
cout << "X";
}
else
{
cout << "-";
}
FelderDurchzaehler ++;
}
cout << endl;
}
}break;
//Feld besetzen
case(2):
{
cout << "Gebe X-Wert ein: ";
cin >> xEingabe;
cout << "Gebe Y-Wert ein: ";
cin >> yEingabe;
cout << "Gebe einen Namen für das Feld ein: ";
for(int g = 0; g<25; g++ )
{
if ( Felder[g].Yposi == yEingabe )
{
if (Felder[g].Xposi == xEingabe )
{
Felder[g].bFeldstatus = true;
cout << "Feld" << g << "mit den Koordinaten " << Felder[g].Xposi << " und " << Felder[g].Yposi << " wurde true" << endl;
cout << "Gebe einen Namen für das Feld ein: ";
cin.get (Felder[g].chFeldName, 10);
cin.ignore;
}
}
}
}break;
//Felddaten anzeigen
case(3):
{
cout << "Felddaten anzeigen" << endl;
}break;
//Spielfeld loeschen
case(4):
{
cout << "Spielfeld loeschen" << endl;
}break;
//Spiel bennden
case (5):
{
cout << "Vielen Dank fuers benutzen von Feldmaster 1.0" << endl;
}break;
//Falsche eingabe
default:
cout << "Bitte Zahl von 1-5 Ausweahlen" << endl;
}
cout << endl;
} while(Auswahl != 5);
return 0;
}
Ich würde mich freuen, wenn mir jemand helfen würde
