Hallo zusammen,
ich bin im Moment dabei das Spiel Hangman als Konsolenanwendung zu programmieren.
Dabei habe ich noch Zwei Probleme.
In dem Spiel werden die Wörter aus einer Textdatei eingelesen.
Als erstes wird ein Schwierigkeitsgrad eingegeben:
Die Funktion schwierigkeitsgrad() fragt den User nach einem Schwierigkeitsgrad.
Als nächstes wird dann die Anzahl der Zeilen in der Datei gezählt:
Jetzt ist ja die Anwendung am Ende der Textdatei angekommen. (oder liege ich da falsch ?)
Nun muss ich ja der Anwendung mitteilen, dass sie wieder von oben mit dem einlesen anfangen soll, damit der Zufallsgenerator ein Wort auswählt.
Das neuladen der Datei habe ich so realisiert:
Der Zufallsgenerator sieht so aus:
Wenn ich das jetzt in der Schule erstelle (Borland C++ Builder 5) funktioniert es einwandfrei.
Zuhause arbeite ich aber mit Visual C++ Express 2005.
Dort kann ich die .exe zwar erstellen. Allerdings scheint es dann nicht zu funktionieren, da dann das Wort was er aus der Datei laden möchte nicht existiert.
Das Char-Array Ergebnis ist dann nämlich leer.
Problem1: Was mache ich da falsch ?
In der Schule hab ich dann noch eine Abfrage am Ende des Spiels eingebaut, welche den User fragt ob er nochmal spielen möchte. Wenn er mit ja antwortet, springt die Anwendung direkt zur Ersten Codezeile im Programm.
Manchmal kommt es dann im Programm vor, dass aufeinmal bei einem Wort schon ein paar Buchstaben gegeben sind.
Problem2: Wie kann ich diese Char Arrays komplett resetten ?
Gruß
Radmor
ich bin im Moment dabei das Spiel Hangman als Konsolenanwendung zu programmieren.
Dabei habe ich noch Zwei Probleme.
In dem Spiel werden die Wörter aus einer Textdatei eingelesen.
Als erstes wird ein Schwierigkeitsgrad eingegeben:
Code:
int Versuche;
char Datei[20]="";
switch (schwierigkeitsgrad())
{
case 'e':
strncpy (Datei, "einfach.txt", 12);
Versuche = 8;
break;
case 'n':
strncpy (Datei, "normal.txt", 11);
Versuche = 12;
break;
case 's':
strncpy (Datei, "schwer.txt", 11);
Versuche = 16;
break;
}
Die Funktion schwierigkeitsgrad() fragt den User nach einem Schwierigkeitsgrad.
Als nächstes wird dann die Anzahl der Zeilen in der Datei gezählt:
Code:
ifstream in ( Datei );
int zeilenanzahl = 0;
string line;
while (getline (in, line))
{
zeilenanzahl = zeilenanzahl + 1;
}
Jetzt ist ja die Anwendung am Ende der Textdatei angekommen. (oder liege ich da falsch ?)
Nun muss ich ja der Anwendung mitteilen, dass sie wieder von oben mit dem einlesen anfangen soll, damit der Zufallsgenerator ein Wort auswählt.
Das neuladen der Datei habe ich so realisiert:
Code:
in.close();
in.open ( Datei );
Der Zufallsgenerator sieht so aus:
Code:
char Ergebnis[50]="";
srand (time (NULL));
for (int i = 0; i <= (rand() % zeilenanzahl); i = i + 1)
{
in >> Ergebnis;
}
Wenn ich das jetzt in der Schule erstelle (Borland C++ Builder 5) funktioniert es einwandfrei.
Zuhause arbeite ich aber mit Visual C++ Express 2005.
Dort kann ich die .exe zwar erstellen. Allerdings scheint es dann nicht zu funktionieren, da dann das Wort was er aus der Datei laden möchte nicht existiert.
Das Char-Array Ergebnis ist dann nämlich leer.
Problem1: Was mache ich da falsch ?
In der Schule hab ich dann noch eine Abfrage am Ende des Spiels eingebaut, welche den User fragt ob er nochmal spielen möchte. Wenn er mit ja antwortet, springt die Anwendung direkt zur Ersten Codezeile im Programm.
Manchmal kommt es dann im Programm vor, dass aufeinmal bei einem Wort schon ein paar Buchstaben gegeben sind.
Problem2: Wie kann ich diese Char Arrays komplett resetten ?
Gruß
Radmor
Zuletzt bearbeitet: