Buchempfehlung
MySQL kurz & gut
MySQL kurz & gut
Das preiswerte Taschen- buch stellt MySQL-rele- vante Inhalte systematisch und knapp dar, sodass es sich optimal zum Nach- schlagen beim Pro- grammieren eignet. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

primitives Hangman

Uploader:MitgliedThe_Muh
Datum/Zeit:30.07.2008 01:20:10

DIM mode as integer
dim key as string
dim leben as integer
dim wort as string
dim hit as integer
dim suchpos as integer
dim antwort as string
dim gefunden() as string 'dynamischer array

Screen 17,6
leben = 12
wort = "Stinkerer" ' das wort setzen
wort = lcase(wort) 'wort in kleinbuchstaben umwandeln
redim gefunden(1 to len(wort)) 'macht aus "gefunden()" einen array mit so viel "fächern" wie "wort" lang ist
do
    locate 1,1
    Print "Buchstaben wählen"
    locate 2,1
    if leben > 0 then 'leben noch über 0?
        'for ist eine zähler-schleife, bei jedem durchgang erhöht sich "i"
        'len ermittelt die länge einer variable
        for i as integer = 1 to len(wort)
            if gefunden(i) <> "" then 'ist in "gefunden" auch ein zeichen?
                print gefunden(i); 'die treffer ausgeben
            else 'nein?
                print "_"; 'dann halt ein platzhalter!!
            end if
        next 'nächster schritt in der schleife
    else 'nein?
        cls 'bildschirm löschen
        input "Neu?",antwort 'nachfragen ob neues spiel
        if lcase(antwort) = "ja" then ' antwort abfragen
            redim gefunden(1 to len(wort)) 'leert "gefunden"
            leben = 12 ' neue leben
        end if
    end if

    do : sleep 1 : key = inkey : loop until key <> "" 'wartet auf tastendruck und setzt gleichzeitig Key
    cls
    locate 3,1
    key = lcase(key) 'mach key zu kleinchbuchstaben
if asc(key) = 27 then
        exit do
    end if
    'asc verwandelt einen buchstaben in den ASCII-zahlenwert
    'dann wird geprüft ob Key ein buchstabe von a - z ist
    if asc(key) >= 97 and asc(key) <= 122 then
        suchpos = 0 'wird gebraucht um mehrere buchstaben in einem wort zu finden
        ' siehe dazu: instr in der referenz
        do
        hit = instr(suchpos+1,wort,key) 'hit ist die position des buchstabens im wort
            'hit ist 0 wenn der buchstabe nicht aufgetaucht ist
            'suchpos wird abgefragt,
            'weil immer mindestens 2 mal nach dem momentanen buchstaben gefragt wird
            if hit = 0 and suchpos = 0 then 'falls kein treffer:

                leben -= 1 'leben reduzieren
                if leben > 0 then ' falls leben noch über 0:
                    print "Falsch! Noch "& leben &" Leben"
                else ' falls leben 0 :
                    Print "Falsch! Du hast leider verloren"
                end if

            end if

            if hit <> 0 then 'falls treffer!
                gefunden(hit) = key
                print "Richtig!"
                suchpos = hit 'setzt die suchposition auf den wert, auf der der letzte treffer gefunden wurde
                'weiter oben bei "instr" wird das nochmal +1 gesetzt, damit kein treffer doppelt gezählt wird
                'aber trotzdem alle buchstaben abgesucht werden
            end if

        loop until hit = 0 'falls kein treffer, wird die schleife verlassen
        'und die suche nach dem momentanen buchstaben abgebrochen
    end if
loop
' test: " ><