Ja. Bei den von Dir gesetzten Haltepunkten siehst Du den Wert von Temp jeweils vor dem StringReplace (die Anweisung(en) in der Zeile mit dem Breakpoint ist/sind noch nicht ausgeführt).
Announcement
Collapse
No announcement yet.
Label Komponenete
Collapse
X
-
ich hab jetzt mal hier einen Haltepunkt eingefügt
if (Wort.SubString(i,1)==Tastendruck) //schaut ob an der Stelle i (die 1 bedeutet ein Buchstabe) der String gleich mit dem Tastendruck ist
temp[i] = Wort[i]; //Wenn ja schreibt er diesen Buchstaben an von Wort[i] and die gleiche Stelle in temp[i]Zuletzt editiert von Mister Love; 13.04.2007, 14:48.
Comment
-
Was für eine Idee sollte denn einer haben (können)?
Ob ein Haltepunkt richtig oder falsch gesetzt ist, hängt davon ab, was man an der Stelle untersuchen will. Insofern kann Dir dabei niemand helfen.
Höchstens: Es gibt auch noch die schöne Funktion 'lokale Variablen untersuchen', dabei kannst Du in einem zusätzlichen Fenster alle Veränderungen (allerdings eben nur lokaler Variablen) verfolgen.
Comment
-
Damit das an der Stelle mal weitergeht (oder ein Ende hat?):
Code:// globale Variablen String ToGuess; int ErrCount;
Code:int i; String TmpStr; TmpStr = ""; for (i=1; i<=ToGuess.Length(); i++) TmpStr += " _ "; // Striche für alle Buchstaben, davor und // danach ein Leerzeichen Label1->Caption = TmpStr; ErrCount = 0; // Zähler für diese Runde zurücksetzen
Code:void __fastcall Check(char Chr) { int i; bool Guessed; String ChkStr; char Chr; ChkStr = StringReplace(Label1->Caption, " _ ", "_", TReplaceFlags() << rfReplaceAll); Guessed = false; for (i=1; i<=ToGuess.Length(); i++) { if (ToGuess.UpperCase()[i] == Chr) { ChkStr[i] = Chr; // ChkStr[i] = ToGuess[i]; // alternativ: Groß-/Kleinschrift Guessed = true; } } if (!Guessed) ErrCount++; Label1->Caption = StringReplace(ChkStr, "_", " _ ", TReplaceFlags() << rfReplaceAll); }
Gruß vom KnutZuletzt editiert von Knut Lohse; 15.04.2007, 15:24.
Comment
-
Code:void __fastcall Check(char Chr) { int i; bool Guessed; String ChkStr; char Chr; ChkStr = StringReplace(Label1->Caption, " _ ", "_", TReplaceFlags() << rfReplaceAll); Guessed = false; for (i=1; i<=ToGuess.Length(); i++) { if (ToGuess.UpperCase()[i] == Chr) { ChkStr[i] = Chr; // ChkStr[i] = ToGuess[i]; // alternativ: Groß-/Kleinschrift Guessed = true; } } if (!Guessed) ErrCount++; Label1->Caption = StringReplace(ChkStr, "_", " _ ", TReplaceFlags() << rfReplaceAll); }
Code:if(Wort==lbl_text->Caption) //überprüft ob der gegebene String(Wort) dem Ausgabe Feld ist { Application->MessageBoxA(String("Du hast das Wort erraten: "+Wort).c_str(),"Gewonnen!!!",MB_OK|MB_ICONEXCLAMATION); //Wenn ja Nachricht ausgeben (sie haben das Wort erraten) win++; lbl_win->Caption=win; runden++; btn_startClick(this); //danach wieder eine neue Runde starten }
Comment
-
kk das hab ich mal aber nun will ich ja nicht nur machen wenn es ChkStr gleich dem wort ist ich will ja auch noch machen wenn er über 12 fehler kommt das es dann auch wieder von neu anfäng und der Spieler eine verlorene Runde bekommt.
Code:if(fehler==12) { z_foot_r(); // zeichnet den rechten Fuß des Hang Man Application->MessageBoxA(String("Das richtige Wort wäre gewesen: "+Wort ).c_str(),"Verloren",MB_OK|MB_ICONSTOP|MB_APPLMODAL); lose++; lbl_lose->Caption=lose; runden++; btn_startClick(this); //ein neue Runde betätigen! }
Comment
Comment