fb:porticula NoPaste
primitives Hangman
Uploader: | The_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: " ><