Microsoft Small Basic

Program Listing: MRM506
'//画面の設定
GraphicsWindow.Width = 3000
GraphicsWindow.Height = 720
GraphicsWindow.BackgroundColor = "white"

'//パネルの個数と大きさの設定
sizex = 30
sizey = 9
psize = GraphicsWindow.Width / sizex

'//問題(Aが多くて、Bが少ない方)
monA = " i"
monB = " l"

'//パネルの描画
QPosX = Math.GetRandomNumber(sizex) - 1
QPosY = Math.GetRandomNumber(sizeY) - 1
GraphicsWindow.FontSize = psize
For y=0 To sizey-1
For x=0 To sizex-1
If x=QPosX And y=QPosY Then
GraphicsWindow.DrawText(x*psize,y*psize,monB)
Else
GraphicsWindow.DrawText(x*psize,y*psize,monA)
EndIf
EndFor
EndFor

'//ストップウォッチ開始
Counter = -5
Timer.Interval = 100
Timer.Tick = OnTick

'//クリックイベント
GraphicsWindow.MouseDown = OnClick
Sub OnClick
cx = Math.Floor(GraphicsWindow.MouseX/psize)
cy = Math.Floor(GraphicsWindow.MouseY/psize)
m = psize*0.1

If cx=QPosX And cy=QPosY Then
'// 正解の場合
GraphicsWindow.PenColor = "Red"
GraphicsWindow.PenWidth = 10
GraphicsWindow.DrawEllipse(cx*psize+m,cy*psize+m,psize*0.8,psize*0.8)
Timer.Pause()
Else
'//不正解の場合
GraphicsWindow.PenColor = "Blue"
GraphicsWindow.PenWidth = 10
GraphicsWindow.DrawLine(cx*psize+m,cy*psize+m,(cx+0.8)*psize+m,(cy+1)*psize+m)
GraphicsWindow.DrawLine(cx*psize+m,(cy+1)*psize+m,(cx+0.8)*psize+m,cy*psize+m)
EndIf
EndSub

'//ストップウォッチ描画
Sub OnTick
Counter = Counter + 0.1
GraphicsWindow.BrushColor = "White"
GraphicsWindow.FillRectangle(0,psize*(sizey+1),GraphicsWindow.Height,psize)
GraphicsWindow.BrushColor = "BrushColor"
GraphicsWindow.DrawText(0,psize*(sizey+1),Counter+" 5")
'//終わり ありがとうございました。
EndSub