Small Basicのオンラインエディタでモグラたたきゲームを作りました。
プログラムのソースコードは下記です。コピーしてSmall Basicのオンラインエディタに貼り付ければ動かせます。
Small Basic のオンラインエディタは未完成のため、様々な不具合や制約があります。
たとえばマウスクリック時のマウスのY座標が正確に取得できない不具合があるようです。
下記のコードを貼り付けてもうまく動かない場合は、プレイ中にウィンドウの大きさを変更してみたり、スクロールしてみたりしてください。
一度安定すると次回アクセスまでは正しく動いてくれるようです。
オンラインエディタを使わず、Windowsアプリ版のSmallBasicを使っている人は、
プログラムID DWWL721.000-0 で発行しましたのでインポートして使ってください。
NUM_OF_GRID=5
GRID_W=64
For i = 1 To NUM_OF_GRID
For j = 1 To NUM_OF_GRID
GraphicsWindow.DrawRectangle(i*GRID_W, j*GRID_W, GRID_W, GRID_W)
EndFor
EndFor
mole=Shapes.AddEllipse(GRID_W, GRID_W)
mole_x=Math.GetRandomNumber(NUM_OF_GRID)*GRID_W
mole_y=Math.GetRandomNumber(NUM_OF_GRID)*GRID_W
Shapes.Move(mole, mole_x, mole_y)
visibility="False"
hitFlg="False"
score=0
GraphicsWindow.FontSize=24
GraphicsWindow.DrawText(0, 0, "SCORE:")
objScore = Shapes.AddText(score)
Shapes.Move(objScore, 100, 0)
MAX_TIME=20000
time=MAX_TIME
GraphicsWindow.DrawText(0, 28, "TIME:")
objTime = Shapes.AddText(time)
Shapes.SetText(objTime, time/1000)
Shapes.Move(objTime, 100, 28)
Timer.Interval=1000
Timer.Tick=onTick
Sub onTick
time=time-Timer.Interval
Shapes.SetText(objTime, time/1000)
If time=0 Then
Shapes.HideShape(mole)
GraphicsWindow.DrawText(150, 200, "GAME OVER!")
Program.End()
ElseIf time=MAX_TIME/2 Then
Timer.Interval=Timer.Interval/2
EndIf
If visibility="True" Then
Shapes.ShowShape(mole)
visibility="False"
Else
Shapes.HideShape(mole)
hitFlg="False"
Shapes.Zoom(mole, 1, 1)
mole_x=Math.GetRandomNumber(NUM_OF_GRID)*GRID_W
mole_y=Math.GetRandomNumber(NUM_OF_GRID)*GRID_W
Shapes.Move(mole, mole_x, mole_y)
visibility="True"
EndIf
EndSub
GraphicsWindow.MouseDown=onMouseDown
Sub onMouseDown
mouse_x = GraphicsWindow.MouseX
mouse_y = GraphicsWindow.MouseY
If mouse_x > mole_x And mouse_x < mole_x+GRID_W Then
If mouse_y > mole_y And mouse_y < mole_y+GRID_W Then
If hitFlg="False" Then
Shapes.Zoom(mole, 2, 2)
score=score+1
Shapes.SetText(objScore, score)
hitFlg="True"
EndIf
EndIf
EndIf
EndSub
73行しかありません。プログラミングを学んだことのある人なら短く感じられるのではないでしょうか。小中学生でも十分に取り組めます。ぜひチャレンジしてほしいです。
できることならコピーして貼り付けたりせず、地道にコツコツ打ち込んでほしいです。時間はかかりますが得るものは多いと思います。
実際のところ、私自身も実はしっかりと時間をかけて書きました。
1文字目を打ち込むところから動画にしてみましたが録画時間は20分を超えました。
実際にはそれだけでなく、録画の前にあーでもないこーでもないと試行錯誤していましたので、とても時間がかかっています。何かを得たければ時間はかかるものです。
コスパとかタイパとかいう言葉に踊らされることなく、子どもたちには地道にコツコツと学ぶ根気を育んでほしいと思っています。