Hangman (schon wieder...)
Übersicht

![]() |
PowerProgrammerBetreff: Hangman (schon wieder...) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo allerseits!
Ich möchte gerne mein kleines Progrämmchen vorstellen: Hangman Ich denke, eine Erklärung ist überflüssig. Der Code ist aus meinen Programmieranfängen, daher keine absolute Meisterleistung! Aber ich finde ihn doch ganz nett... Dateiversion Hier ist der Code: Code: [AUSKLAPPEN] ;*******************************************
;*** Hangman *** ;******************************************* ;*** Von: PowerProgrammer (Xairro) *** ;*** Datum: Unbekannt *** ;******************************************* ;*** Erklärung ist überflüssig *** ;******************************************* If Instr(CommandLine(),"\schummler") Then megahelp = 1 Graphics 800,600,16,2 SetBuffer BackBuffer() SeedRnd MilliSecs() AppTitle "HangMan - by PowerProgrammer (Xairro)" Dim Letter$(30) Dim FarbeLetter(30) J = 0 For I = 65 To 90 J = J + 1 Letter$(J) = Chr(I) Next Letter$(27) = "Ä" Letter$(28) = "Ö" Letter$(29) = "Ü" Letter$(30) = "ß" font1 = LoadFont("Arial Black",60,1,0,0) SetFont font1 Text 400,300,"HangMan",1,1 Flip figur = LoadImage("figur.bmp") font2 = LoadFont("Arial Black",20,0,0,0) font3 = LoadFont("Arial Black",25,0,0,0) stream = ReadFile("worte.txt") anzahl = ReadLine(stream) Dim Worte$(anzahl) For I = 1 To anzahl Worte$(I) = ReadLine(stream) Next CloseFile stream snd_end = LoadSound("end.wav") ;snd_main = LoadSound("song.mp3") ;LoopSound snd_main Delay 1000 .start AppTitle "HangMan - by PowerProgrammer (Xairro)" ;mainsound = PlaySound(snd_main) wort$ = Worte$(Rand(anzahl)) wortklein$ = Lower(wort$) wortlaenge = Len(wort$) wortverlauf$ = "" For I = 1 To wortlaenge wortverlauf$ = wortverlauf$ + "*" Next For I = 1 To 30 FarbeLetter(I) = 0 Next Name$ = "" versuch = 1 megahilfe$ = "" buchstaben_daneben$ = "" Repeat If versuch = 13 Or Lower(wortverlauf$) = wortklein$ Then Exit Color 0,0,0 Rect 0,0,800,600 Color 50,50,50 Oval 200,100,400,400 AppTitle "HangMan - " + versuch + " - by PowerProgrammer (Xairro)" SetFont font2 Color 255,0,0 Text 400,250, wortverlauf$,1,1 Text 400,275, megahilfe$,1,1 DrawImageRect figur, 350,300, (versuch-1)*100,0, 100,120 mouse_x = MouseX() mouse_y = MouseY() SetFont font3 acegik = 0 For I = 1 To 30 If FarbeLetter(I) = 0 Then Color 0,0,255 Else Color 80,80,80 EndIf Text 400+Sin(I*12)*200, 300+Cos(I*12)*200, Letter$(I),1,1 FlushMouse If RectsOverlap((400+Sin(I*12)*200)-15,(300+Cos(I*12)*200)-15,30,30,mouse_x,mouse_y,1,1) Then Color 255,255,255 Text 400+Sin(I*12)*200,300+Cos(I*12)*200, Letter$(I),1,1 If MouseDown(1) Then Name$ = Letter$(I) acegik = 1 tata = 1 FarbeLetter(I) = 1 Repeat Until MouseDown(1) = 0 EndIf EndIf Next SetFont font2 Color 255,0,0 If acegik = 0 Then A = GetKey() If A > 31 Then Name$ = Name$ + Chr$(A) If (A = 8) And Len(Name$) > 0 Then Name$ = Left$(Name$, Len(Name$) - 1) EndIf Text 400,550, ">" + Name$ + "_",1,1 If KeyHit(28) + KeyHit(156) > 0 Or tata = 1 Then tata = 0 If megahelp = 1 And Name$ = "Hilfe!" Then megahilfe$ = wort$ If Lower(Name$) = wortklein$ Then Exit Name$ = Lower(Left(Name$,1)) If Name$ = "Ä" Then Name$ = "ä" If Name$ = "Ö" Then Name$ = "ö" If Name$ = "Ü" Then Name$ = "ü" I = 1 ghj$ = "" setter = 0 For I = 1 To wortlaenge ghj$ = Mid(wortklein$, I, 1) If ghj$ = Name$ Then wortverlauf$ = Left(wortverlauf$,I-1) + Upper(Name$) + Mid(wortverlauf$,I+1) setter = 1 EndIf Next If Lower(wortverlauf$) = wortklein$ Then Exit If setter = 0 Then versuch = versuch + 1 EndIf If Asc(Name$) > 96 And Asc(Name$) < 123 Then aem = Asc(Name$)-96 Else If Name$ = "ä" Then aem = 27 If Name$ = "ö" Then aem = 28 If Name$ = "ü" Then aem = 29 If Name$ = "ß" Then aem = 30 EndIf FarbeLetter(aem) = 1 Name$ = "" EndIf Flip Forever Color 0,0,0 Rect 0,0,800,600 If versuch < 13 Then ;StopChannel mainsound AppTitle "HangMan - Gewonnen - ML Soft" snd_end_won = PlaySound(snd_end) ChannelPitch snd_end_won, 22100 Color 255,0,0 SetFont font1 Text 400,150,"Gewonnen",1,1 SetFont font2 Text 400,200,"Versuche: " + versuch,1,1 SetFont font2 Text 400,250,"Wort: " + wort$,1,1 Else ;StopChannel mainsound AppTitle "HangMan - Verloren - ML Soft" snd_end_lost = PlaySound(snd_end) ChannelPitch snd_end_lost, 8000 Color 255,0,0 SetFont font1 Text 400,150,"Verloren",1,1 SetFont font2 Text 400,250,"Wort: " + wort$,1,1 EndIf DrawImageRect figur, 350,300, (versuch-1)*100,0, 100,120 Color 255,255,255 SetFont font2 Text 400,550,"Weiter mit Tastendruck",1,1 Flip WaitKey FlushKeys Goto start Er benötigt noch ein Bild, eine Sounddatei und eine Worte-Datei. Dazu dem Link oben folgen. Ich hoffe, die Goto-Anweisung könnt ihr mir verzeihen ![]() Ich weiß, dass der Code verbesserungsbedürftig ist. Das ist mir klar. Kritik ist natürlich trotzdem erwünscht ![]() Ich hoffe, es gefällt euch wenigstens Ansatzweise! Mfg PowerProgrammer ~edit~ Das Syntax-Highlighting brauchte so lange... Code-Tags sind schneller ![]() |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
- Zuletzt bearbeitet von PowerProgrammer am Do, Okt 05, 2006 15:13, insgesamt 3-mal bearbeitet
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Scheint noch nicht so ganz zu funktionieren.
Bugs: -Ich kann mehr als ein Buchstabe eingeben -Wenn ich ausversehen Enter drücke, nimmt der auch an -Wenn man Tot ist und eine Tastedrückt, dann bleibt man tot. Das Wort verändert sich nur Fazit: Arbeite nochmal n bischen dran ![]() |
||
°_° °.° °~° °v° .. -.- |
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
TheMatrix hat Folgendes geschrieben: -Ich kann mehr als ein Buchstabe eingeben
Das ist bewusst gemacht, damit man das ganze Wort, wenn man es schon weiß, eintippen kann. Ansonsten wird immer nur der erste Buchstabe genommen. TheMatrix hat Folgendes geschrieben: -Wenn ich ausversehen Enter drücke, nimmt der auch an
Warum sollte man ausversehen Enter drücken? Da muss man schon tollpatschig sein ![]() TheMatrix hat Folgendes geschrieben: -Wenn man Tot ist und eine Tastedrückt, dann bleibt man tot. Das Wort verändert sich nur
Ist mir auch aufgefallen. Früher hatte ich das Problem auch, hatte es mit einem FlushKeys bewältigt. Jetzt gehts nichtmehr ![]() ~edit~ Code: [AUSKLAPPEN] If Lower(Name$) = wortklein$ Then Exit
Das ist die Bedingung, die für den Abbruch der Hauptschleife verantwortlich ist. Aber warum wird die Bedingung erfüllt? |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: TheMatrix hat Folgendes geschrieben: -Wenn ich ausversehen Enter drücke, nimmt der auch an Warum sollte man ausversehen Enter drücken? Da muss man schon tollpatschig sein Wink Eigentlich hatte ich vorallem eine Mausbedienung vorgesehen, daher ist das mit dem Input unausgereift. Wieso Tollpatschig? Das passiert wenn man zu hipelig ist und doppelt Enter drückt. Zitat: Das ist die Bedingung, die für den Abbruch der Hauptschleife verantwortlich ist. Aber warum wird die Bedingung erfüllt? Was Soll der Absatz bedeuten? Wer ist name$? Wer Wortklein$? |
||
°_° °.° °~° °v° .. -.- |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lustig, auf QBasic.de gibts gerade nen Programmierwettbewerb, in dem man genau das Spiel schreiben soll. Läuft aber demnächst ab.
Auch mir sind die Bugs von TheMAtrix aufgefallen. Und ja, eine Maussteuerung würde ich begrüßen. Und das mit dem Enter-Bestätigen würde ich auch weglassen. Ist nur zusätzliche Arbeit, und wenn man das gesamte Wort eingeben möchte, muss man so oder so alle Buchstaben drücken. Von daher ist das überflüssig |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ist ja kein Projekt von mir, "nur" ein kleiner Code für euch, den ihr nach Lust und Laune verbessern könnt.
Wenn ihr mit der Tastatursteuerung nicht zurecht kommt, könnt ihr ja die Maus nutzen! Die Inputroutine kann man ja ganz easy auskommentieren! Ich sehe das Problem nicht ganz ![]() Nur der dritte Bug ist doof, ich finde den Fehler auf Anhieb auch nicht! P.S.: Zitat: Und ja, eine Maussteuerung würde ich begrüßen.
Das hört sich so an, als gäbe es noch keine ![]() |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schick ma den Code und ich zeigt dir wo der Fehler steckt ![]() |
||
°_° °.° °~° °v° .. -.- |
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich versteh dich nicht ganz. Sollte das ein Scherz sein?
Was ist das oben denn? ~edit~ Ist das Spiel denn wirklich so schlecht? |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach uppala. Jetzt brauch ich wirklich schlaf^^. Ich hab gestern einfach zu lang SNES Soul Blazer gezockt ![]() Das Game ist einfach zu geil ![]() |
||
°_° °.° °~° °v° .. -.- |
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wusst ichs doch, ganz kleiner Fehler:
Code: [AUSKLAPPEN] ... SetFont font2 Text 400,550,"Weiter mit Tastendruck",1,1 Flip WaitKey FlushKeys : !NEU!--> versuch=0 ... So jetzt hab ich aber mein sinnlosen Beitrag von vorhin wieder gutgemacht ![]() |
||
°_° °.° °~° °v° .. -.- |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
PowerProgrammer hat Folgendes geschrieben: Zitat: Und ja, eine Maussteuerung würde ich begrüßen.
Das hört sich so an, als gäbe es noch keine ![]() Und ich war wohl auch zu übernächtigt. Hab gar nicht dran gedacht, die Maus auszuprobieren. ![]() Ich fänds schöner, wenn du die Bilder noch größer machen würdest. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group