000
20.05.2003, 12:36 Uhr
mastertango
|
Ich habe folgendes Prob. Ich will ein Programm das dem Alten Spiel Hangman (Glücksrad) ähnelt bauen. dabei sind 10 Wörter in einem Array gespeichert. Nach der ermittlung einer Zufallszahl wird daraufhin ein Wort aus dem Array ausgewählt und die Buchstaben werden gezählt. Anhand der Buchstaben werden Unterstrichte ausgegeben. Also 5 Buchstaben _ _ _ _ _ fünf Unterstriche. Nun soll der Benutzer Buchstaben eingeben Je nach richtig oder falsch sollen die Buchstaben angezeigt werden oder ein Zähler soll gesetzt werden bis er bei 10 ist. So weit so gut. Leider hab ich das Problem das das auslesen nicht klappt wenn ich 2 mal den selben Buchstaben im Wort habe. Habe zum suchen den Befehl "find" genommen. Bin ich da auf dem Holzweg?? Oder muss ich irgendwie in einer schleife noch einen neuen Index setzen...wie z.B suche ab Punkt wo du den letzten Buchstaben gefunden hast..... Das ganze soll auf Konsole in Borland laufen
Hier nun mein bisheriger Grobentwurf
#include <iostream.h> #include <conio.h> #include<time.h> void msg(int x,int y,string msg); string Separator(string sSourceText,string sSeparator, int iPosition); string swort[10]={"stinker","dorfmensch","nachtmusik","lernkultur","unwissenheit","stupide","haibecken","kirchengang","nacktbaden","nasenbluten"}; void main() { msg(2,1,"Galgenraten"); msg(2,2,"~~~~~~~~~~~");
int x=2; int y=5; int zufall; srand((unsigned)time(NULL)); zufall=(rand()%(10-0)); string wort=swort[zufall]; string buchstabe; int laenge=wort.length();
for(int i;i=laenge;i--) { msg(x,y,"- "); laenge--; x+=2 ; }
int ende=0;
do { msg(2,10,"Geben Sie einen Buchstaben ein:"); cin>>buchstabe;
int pos=wort.find(buchstabe); if (wort.find(buchstabe)!=string::npos) { msg(pos+2,4,buchstabe); } } while (ende=10);
}
void msg(int x,int y,string msg) { gotoxy(x,y); cout<<msg; } |