あみだくじの解説
前回、あみだくじの動画とダウンロードを紹介しました。
前回のブログはコチラ→あみだくじ
前回まとめきれなかった解説をしていこうと思います。
まず4本のウチから一本選びます。(灰色の部分をクリック)
クリックしたら道と当たりが自動で作られてそれに沿って亀が動き出します。
たまたま当たりました。
ブログ用に当たりに行くようには、してないです。
プログラムも解説していきます。
GraphicsWindow.Show() GraphicsWindow.DrawText(230,15,"4本の内どれか選んで下さい。") GraphicsWindow.DrawLine(40,70,40,360) GraphicsWindow.DrawLine(215,70,215,360) GraphicsWindow.DrawLine(390,70,390,360) GraphicsWindow.DrawLine(565,70,565,360) GraphicsWindow.BrushColor="gray" GraphicsWindow.FillRectangle(30,50,20,20) GraphicsWindow.FillRectangle(205,50,20,20) GraphicsWindow.FillRectangle(380,50,20,20) GraphicsWindow.FillRectangle(555,50,20,20)
ここまでのプログラムで1枚目の画像ができます。
1行目がグラフィックウィンドウの表示
2行目が文章の記入
3から6行目でラインを引いてます。
7行目で□の色を指定してます。
8から11行目で□を書いてます。
GraphicsWindow.MouseDown = OnMouseDown
roop: A=0
Sub OnMouseDown x = GraphicsWindow.MouseX y = GraphicsWindow.MouseY EndSub
If y>50 And y<70 then Goto bunki EndIf Goto roop
bunki:
Turtle.Speed=6
If x>30 And x<50 then A=1 Turtle.Show() Turtle.X=40 Turtle.Y=60 Turtle.Angle=180 EndIf
If x>205 and x<225 Then A=2 Turtle.Show() Turtle.X=215 Turtle.Y=60 Turtle.Angle=180 EndIf
If x>380 and x<400 Then A=3 Turtle.Show() Turtle.X=390 Turtle.Y=60 Turtle.Angle=180 EndIf
If x>555 and x<575 Then A=4 Turtle.Show() Turtle.X=565 Turtle.Y=60 Turtle.Angle=180 EndIf
If A=0 Then Goto roop EndIf
ここまでが4つの□からマウスでクリックして亀を出現させるプログラムです。
b=40 c=Math.GetRandomNumber(3) c=c-1 c=c*175 b=b+c GraphicsWindow.DrawLine(b,120,b+175,120)
If b=40 Then one[1]=1 two[1]=2 EndIf
If b=215 Then two[1]=1 three[1]=2 EndIf
If b=390 Then three[1]=1 four[1]=2 EndIf
b=40 c=Math.GetRandomNumber(3) c=c-1 c=c*175 b=b+c GraphicsWindow.DrawLine(b,180,b+175,180)
If b=40 Then one[2]=1 two[2]=2 EndIf
If b=215 Then two[2]=1 three[2]=2 EndIf
If b=390 Then three[2]=1 four[2]=2 EndIf
b=40 c=Math.GetRandomNumber(3) c=c-1 c=c*175 b=b+c GraphicsWindow.DrawLine(b,240,b+175,240)
If b=40 Then one[3]=1 two[3]=2 EndIf
If b=215 Then two[3]=1 three[3]=2 EndIf
If b=390 Then three[3]=1 four[3]=2 EndIf
b=40 c=Math.GetRandomNumber(3) c=c-1 c=c*175 b=b+c GraphicsWindow.DrawLine(b,300,b+175,300)
If b=40 Then one[4]=1 two[4]=2 EndIf
If b=215 Then two[4]=1 three[4]=2 EndIf
If b=390 Then three[4]=1 four[4]=2 EndIf
GraphicsWindow.BrushColor="red" ran=Math.GetRandomNumber(4) ran=ran-1 ran=ran*175 GraphicsWindow.DrawText(25+ran,390,"当たり")
ここまでのプログラムで分岐の横ラインを書いたり、ゴールの当たりの文字を書いたりしてます。
分岐の横ラインとゴールはランダムで変わる様にプログラミングしてます。
分岐時に亀が横ラインの方向に動く様にあらかじめ判定の数字を割り振ってます。(青色で書いてる所です。)
Turtle.Move(60)
AA=0
If A=1 And one[1]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 AA=2 EndIf
If A=2 And two[1]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 AA=3 EndIf
If A=2 And two[1]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 AA=1 EndIf
If A=3 And three[1]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 AA=4 EndIf
If A=3 And three[1]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 AA=2 EndIf
If A=4 And four[1]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 AA=3 EndIf
If AA=0 Then AA=A EndIf Turtle.Move(60) AAA=0
If AA=1 And one[2]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 AAA=2 EndIf
If AA=2 And two[2]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 AAA=3 EndIf
If AA=2 And two[2]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 AAA=1 EndIf
If AA=3 And three[2]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 AAA=4 EndIf
If AA=3 And three[2]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 AAA=2 EndIf
If AA=4 And four[2]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 AAA=3 EndIf If AAA=0 Then AAA=AA EndIf
Turtle.Move(60)
AAAA=0
If AAA=1 And one[3]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 AAAA=2 EndIf
If AAA=2 And two[3]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 AAAA=3 EndIf
If AAA=2 And two[3]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 AAAA=1 EndIf
If AAA=3 And three[3]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 AAAA=4 EndIf
If AAA=3 And three[3]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 AAAA=2 EndIf
If AAA=4 And four[3]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 AAAA=3 EndIf
If AAAA=0 Then AAAA=AAA EndIf
Turtle.Move(60)
If AAAA=1 And one[4]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 EndIf
If AAAA=2 And two[4]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 EndIf
If AAAA=2 And two[4]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 EndIf
If AAAA=3 And three[4]=1 Then Turtle.Angle=90 Turtle.Move(175) Turtle.Angle=180 EndIf
If AAAA=3 And three[4]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 EndIf
If AAAA=4 And four[4]=2 Then Turtle.Angle=270 Turtle.Move(175) Turtle.Angle=180 EndIf
Turtle.Move(60)
亀がラインに沿って動くプログラムです。
青字のTurtle.Move(60)~Turtle.Move(60)の間が各分岐のプログラムです。
全部で四ヶ所の分岐する道があります。
以上でプログラムの全文です。
一個ずつ説明していくとだいぶ長くなりそうなのでこの辺でやめておきます。
書いてて解説になってない気がするのですが、
分かりにくくてすみませんm(_ _)m
もっと色々改善点がありそうなのでちょっとずつ編集して良さそうなのが出来たら又ブログに掲載します。