Microsoft Small Basic

Program Listing: SLH362
hangman = "1="+Shapes.AddRectangle(10,200)+";2=50;3=50;"+"4="+Shapes.AddRectangle(100,10)+";5=50;6=50;"+"7="+Shapes.AddRectangle(5,80)+";8=150;9=50;"+"10="+Shapes.AddEllipse(30,30)+";11=137;12=130;"+"13="+Shapes.AddRectangle(5,40)+";14=150;15=160;"+"16="+Shapes.AddLine(150,170,130,190)+";17=0;18=0;"+"19="+Shapes.AddLine(150,170,170,190)+";20=0;21=0;"+"22="+Shapes.AddLine(150,200,170,220)+";23=0;24=0;"+"25="+Shapes.AddLine(150,200,130,220)+";26=0;27=0;100=1"
words = "1=CAR;2=TRUCK;3=PLANE;4=TRAIN;5=SHIP;6=BICYCLE"
for i = 1 To Array.GetItemCount(hangman) Step 3
Shapes.Move(hangman[i],hangman[i+1],hangman[i+2])
Shapes.HideShape(hangman[i])
EndFor
word=words[Math.GetRandomNumber(Array.GetItemCount(words))]
For i = 1 to Text.GetLength(word)
Shapes.AddLine(50+i*20,300,50+i*20+10,300)
endfor
GraphicsWindow.KeyDown = OnKeyDown
Sub OnKeyDown
For i=1 To Text.GetLength(word)
If GraphicsWindow.LastKey=Text.GetSubText(word,i,1) Then
GraphicsWindow.DrawText(50+i*20,280,Text.GetSubText(word,i,1))
Else
missed=missed+1
EndIf
EndFor
If missed = Text.GetLength(word) then
Shapes.ShowShape(hangman[hangman[100]])
hangman[100]=hangman[100]+3
endif
missed = 0
EndSub