- Dav
EDIT: Try Dutchmans version also, it is improved.
Code: Select all
'==================================================
'6STRIKES.TXT - A Text Mode Word Guessing Game
' By Dav, for Smart BASIC, JAN/2015
'==================================================
'
'ABOUT: This is an old school text mode game from
' my Qbasic coding days. I wanted to see
' how well it could be ported to Smart BASIC.
' I also wanted to get familiar with some
' of smart BASIC's commands. So this little
' game sort of got my feet wet there.
'
'PLAY: The game is like Hangman - try to guess
' the words by clicking on the letters.
' Pick them all, solve the word.
' If you pick a wrong letter, it's a strike.
' Get 6 strikes and the game is over.
' You could add GRAPHICS & MUSIC and make a
' real game out of it if you wanted. Enjoy.
'
'NOTE: I've only tested this on my iPad Mini.
'
' You can add more words to the data state-
' ments at the bottom, but be sure to change
' the 'totalwords' variable to match them.
'=================================================
init:
set orientation top
set output font color 1,1,1
set output back color 0,128/255,128/255
set output font size "56"
set buttons font name "Verdana"
set buttons font size 56
'=== load words
totalwords=15 '<< Total number of words in DATA
dim word$(totalwords+1)
for g=1 to totalwords
read word$(g)
next g
'==============================================
intro:
text clear
set output font color 0,0,0 'Turn screen/text black
set output back color 0,0,0
print
print
print " 6 STRIKES!"
print " By Dav"
print
print " Guess the word(s)"
print " Before Striking out!"
print
print
print " High Score today:"; highscore
print
'=== fade in screen/text from black
for f = 0 to 128
c=f/255
set output back color 0,c,c
set output font color c,c,c
pause .005
next f
'=== continue fading in text...
for f=129 to 255
c= f/255
set output font color c,c,c
pause .005
next f
'=== Put a PLAY button to start game
button "play" title " Play " at 280,700
do
set output font color 0,1,(rnd(128)+120)/255
until button_pressed("play")
button "play" delete
wordnum=1 'Start at word # 1
'=============================================
newword:
text clear 'Clear text
set output font color 1,1,1 'Set text color
call drawkeys(1) 'Redraw all letter
strike=0 'Reset strike counter
'=== Build a guess$ word to use (ie: --- ----)
'=== It's Based on word$() length
r$=""
for e = 0 to len(word$(wordnum))-1
n$ = mid$(word$(wordnum),e,1)
if n$ <> " " then
r$ = r$ & "-"
else
r$ = r$ & " "
end if
next e
guess$=r$
'=============================================
mainloop:
text clear
print " Word:"; wordnum; " Score =";score
print
print
print " "; guess$
gosub drawstrikes
'=============================================
getaletter:
for i = 65 to 90
if button_pressed(chr$(i)) then
button chr$(i) delete
'=== Replace (-) in guess$ with letter
g2$=""
for e = 0 to len(word$(wordnum))-1
nib$ = mid$(word$(wordnum),e,1)
if nib$ = chr$(i) then
g2$ = g2$ & chr$(i)
found=1
else
g2$ = g2$ & mid$(guess$, e, 1)
end if
next e
guess$=g2$
'=== If all letters guessed...
if guess$=word$(wordnum) then
gosub gotit
wordnum=wordnum+ 1
if wordnum>totalwords then goto wongame
goto newword
end if
if found<>1 then strike=strike+1
if strike=6 then goto lose
found=0
goto mainloop
end if
next i
if button_pressed("quit") then goto theend
goto getaletter
'=============================================
gotit:
text clear
score =score+ len(word$(wordnum))
print " Word:"; wordnum; " Score =";score
print
print " You got it!"
print
print " ";word$(wordnum)
print
print " Next word...."
gosub flashfont
return
'=============================================
lose:
text clear
print
print
print " YOU STRUCK OUT!"
print
print " The word was..."
print
print " "; word$(wordnum)
print
gosub flashfont
'=============================================
theend:
if score> highscore then highscore = score
text clear
call drawkeys(0)
goto intro
'=============================================
wongame:
call drawkeys(0)
set output back color 0,25/255,125/255
text clear
for i= 1 to 100
print
next i
print " CONGRATULATIONS!"
for u = 1 to 8
print ! pause .15
next u
for g= 1 to 20
set output font color rnd(255)/255,1, rnd(255)/255
pause .1
next g
print " YOU WON!!!"
for u = 1 to 8
print ! pause .15
next u
for g= 1 to 20
set output font color rnd(255)/255,1, rnd(255)/255
pause .1
next g
goto theend
'=====================================================
' FUNCTIONS / GOSUBS / DATA STATEMENTS ........
'=====================================================
drawstrikes: 'Draw the boxes with the X's
u$=chr$(175)
print ! print " ___ ___ ___ ___ ___ ___"
if strike = 0 then print " | | | | | | | | | | | |"
if strike = 1 then print " |X| | | | | | | | | | |"
if strike = 2 then print " |X| |X| | | | | | | | |"
if strike = 3 then print " |X| |X| |X| | | | | | |"
if strike = 4 then print " |X| |X| |X| |X| | | | |"
if strike = 5 then print " |X| |X| |X| |X| |X| | |"
if strike = 6 then print " |X| |X| |X| |X| |X| |X|"
for k = 1 to 6
print " "; u$&u$&u$;
next k
return
'====================================================
flashfont: 'Flashes the fonts on the screen
for m=0 to 500
set output font color 0,1,(rnd(128)+120)/255
pause .005
next m
return
'====================================================
def drawkeys(way)
'Draws or Deletes Buttons, based on 'way'
set buttons font name "Verdana"
set buttons font size 56
l=65 'Do all Letters A to Z (Ascii..)
for y = 0 to 300 step 100
for t = 30 to 700 step 100
if l < 91 then
if way =1 then
button chr$(l) title chr$(l) at t, 570+y
else
button chr$(l) delete
end if
end if
l=l+1
next t
next y
if way = 1 then
button "quit" title "QUIT" at 530,870
else
button "quit" delete
end if
end def
'===================================================
data "SMART BASIC","VANILA BEAN","PROGRAMMING"
data "DECEMBER", "HAMBURGER", "OLYMPICS"
data "COMPUTER", "RHYTHM", "GORILLA"
data "SCIENTIFIC","VOLCANO", "HISTORY"
data "LANGUAGE", "WINDOWS", "MACINTOSH"