最新記事
あみだくじの解説
July 25, 2017
前回、あみだくじの動画とダウンロードを紹介しました。
前回のブログはコチラ→あみだくじ
前回まとめきれなかった解説をしていこうと思います。
まず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
もっと色々改善点がありそうなのでちょっとずつ編集して良さそうなのが出来たら又ブログに掲載します。