Hangman
Übersicht

AnimatorBetreff: Hangman |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich steh grad voll aufm Schlauch: Ich hab vorhin für nen Kumpel ein Hangman gecodet(sone Art Insider^^).
Alles funktioniert soweit, es ist auch relativ simpel, nur an einer Stelle hakts noch: Wenn in einem der Wörter ein Buchstabe zweimal vorkommt dann wird nur einer durch einen Buchstaben ersetzt. Beim zweiten eintippen des entsprechenden Buchstaben passiert gar nichts mehr(weder die Versuche werden hochgezählt noch wird ein Buchstabe aufgeschrieben) und hier der Code: Code: [AUSKLAPPEN] AppTitle "Galgenmännchen"
Graphics 640,480,0,1 ;Laden der Grafiken Pfad$ = ".\Grafik\" Galgen_staender = LoadImage (Pfad$ + "Galgen(ständer).bmp") Galgen_stamm = LoadImage (Pfad$ + "Galgen(Stamm).bmp") Galgen_stange = LoadImage (Pfad$ + "Galgen(Stange).bmp") Galgen_schnur = LoadImage (Pfad$ + "Galgen(Schnur).bmp") Galgenmaennchen_kopf = LoadImage (Pfad$ + "Galgenmännchen(Kopf).bmp") Galgenmaenchen_Koerper = LoadImage (Pfad$ + "Galgenmännchen(Körper).bmp") Galgenmaennchen_fuss_rechts = LoadImage (Pfad$ + "Galgenmännchen(Fuß_Rechts).bmp") Galgenmaennchen_fuss_links = LoadImage (Pfad$ + "Galgenmännchen(Fuß_Links).bmp") Hintergrund = LoadImage (Pfad$ + "Hintergrund.bmp") MaskImage Galgen_Staender, 255,255,255 MaskImage Galgen_stamm, 255,255,255 MaskImage Galgen_stange, 255,255,255 MaskImage Galgen_schnur, 255,255,255 MaskImage Galgenmaennchen_kopf, 255,255,255 MaskImage Galgenmaenchen_Koerper, 255,255,255 MaskImage Galgenmaennchen_fuss_rechts, 255,255,255 MaskImage Galgenmaennchen_fuss_links, 255,255,255 ;Wortschatz Const Max = 63 .Wotschatz Dim Wort$(Max) Data "schule", "märchen", "haus", "hund", "mann", "frau", "wolke", "wiese", "badewanne", "windmühle", "katze", "ventilator", "gast", "bett", "gasthaus", "freund", "wanze", "käfer" Data "vieh", "traktor", "arbeit", "junge", "mädchen", "jung", "alt", "zahl", "wort", "galgen", "galgenmännchen", "welt", "erde", "stein", "zyklop", "baumeister", "baum", "müllabfuhr" Data "jahreszeit", "blume", "brett", "holz", "mähdrescher", "nervensäge", "altehrwürdig", "altmodisch", "neumodisch", "farbenblind", "stark", "schwach", "nervig", "stolz", "programmieren" Data "hobbit", "wehrwolf", "blüte", "anders", "merkwürdig", "abnormal", "komisch", "weinen", "lachen", "toll", "gut", "salzig", "essen", "trinken" SeedRnd MilliSecs() For i = 0 To Max Read Wort$(i) Next Zufall$ = Wort$(Rand(Max)) versuche = 0 geraten$ = String$(".",Len(Zufall$)) Repeat DrawImage Hintergrund, 0,0 Text 20,40, Versuche Text 20,20, Geraten$ If Versuche > 0 Then DrawImage Galgen_staender, 60,200 If Versuche > 1 Then DrawImage Galgen_stamm, 290,40 If Versuche > 2 Then DrawImage Galgen_stange, 140,70 If Versuche > 3 Then DrawImage Galgen_schnur, 140,50 If Versuche > 4 Then DrawImage Galgenmaennchen_kopf, 200,150 If Versuche > 5 Then DrawImage Galgenmaenchen_Koerper, 205,135 If Versuche > 6 Then DrawImage Galgenmaennchen_fuss_rechts, 205,125 If Versuche > 7 Then DrawImage Galgenmaennchen_fuss_links, 175,120 Zeichen$ = Input() Stelle = Instr(Zufall$,Zeichen$) If Stelle <> 0 Then Neu$ = Left$(Geraten$,Stelle - 1) + Zeichen$ Neu$ = Neu$ + Mid$(Geraten$,Stelle+1) Geraten$ = Neu$ Else Versuche = Versuche + 1 EndIf Flip Until KeyDown(1) Or Versuche > 7 Or Geraten$ = Zufall$ Or Zeichen$ = "" If Geraten$ = Zufall$ Then Goto Sieg Text 200,60, "Du hast verloren" Text 200,80, "Beliebige Taste drücken" Text 200,100, "es währe " + Zufall$ + " gewesen" WaitKey Goto Ende .Sieg Text 200,60, "du hast gewonnen" Text 200,80, "Beliebige Taste drücken" WaitKey .Ende End das Ende hab ich schnell hingeschlampert man möge mir das entschuldigen ![]() findet ihr auf anhieb einen Fehler? oder habe ich vielleicht einen Befehl falsch verstanden? Auf jeden fall freue ich mich auf eure Antworten! MFG Animator |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst die Variable Zufall$ so editieren, dass die gefundenen Buchstaben aus dem String fliegen. Du kannst zb mit einem replace![]() |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Funktion ist ein "Klassiker": Replace all
Du bist schon nahe dran, aber du musst natürlich den Zufalls$ mehrfach scannen, bis du sicher bist, dass er keines der betreffenden Zeichen mehr enthält: Die Function INSTR() hat einen dritten Parameter Start%. Er legt fest ab wo gesucht werden soll. BlitzBasic: [AUSKLAPPEN] Zeichen$ = Input() Die Schleife sucht nun immer solange, bis Stelle auf 0 geht. Dabei wird der Startpunkt Start für die nächste Runde auf 1 Stelle hinter der letzten Fundstelle gesetzt. Bedingt durch die Tatsache, dass Stelle jetzt am Ende immer 0 ist, kannst Du es nicht mehr nutzen, um festzustellen ob überhaupt etwas gefunden wurde. Das verrät dir jetzt Start, das nur dann 1 geblieben sein kann, wenn nichts gefunden wurde. Noch zwei Anmerkungen: So wie ich es dir jetzt beschrieben habe, werden doppelte Buchstaben gleich beim ersten richtigen Raten gleichzeitig ersetzt. Das ist so wie beim original Hangman. Oder wolltest Du es anders? So wie SpionAtom es rät, wird ein weiteres Raten des selben Buchstabens zum Hochzählen der Variablen Versuche% führen. |
||
Animator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke Leute! Ja ich wollte es so wie im Original. Ich bin immer wieder froh dass es dieses Forum gibt =)
MFG Animator |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group