アットウィキロゴ

評価関数の作成  kk

Private Sub Command1_Click()
Dim m As Single
Dim n1 As Single
Dim n2 As Single
Dim n3 As Single
Dim q As Single
Dim qx As Single
Dim pp As Single
Dim u(2 To 9, -1 To 1, -1 To 1, -1 To 1) As Single
Dim b(2 To 9, -1 To 1, -1 To 1, -1 To 1) As Single
Dim fastu(-1 To 1, -1 To 1) As Single
Dim fastb(-1 To 1, -1 To 1) As Single
Dim fastv(-1 To 1, -1 To 1, -10 To 10) As Single
Dim endu(-1 To 1, -1 To 1) As Single
Dim endb(-1 To 1, -1 To 1) As Single
Dim endv(-1 To 1, -1 To 1) As Single
Dim v(2 To 9, -1 To 1, -1 To 1, -1 To 1, -10 To 10) As Single
For n1 = -1 To 1
For n2 = -1 To 1
For q = -10 To 10
fastv(n1, n2, q) = -999
Next
Next
Next
For n1 = -1 To 1
For n2 = -1 To 1
q = fastb(n1, n2)
fastv(n1, n2, q) = fastu(n1, n2)
Next
Next
For m = 2 To 9
For n1 = -1 To 1
For n2 = -1 To 1
For n3 = -1 To 1
For q = -10 To 10
v(m, n1, n2, n3, q) = -999
Next
Next
Next
Next
Next
m = 2
For n1 = -1 To 1
For n2 = -1 To 1
For n3 = -1 To 1
For q = -10 To 10
u1 = u(m, n1, n2, n3)
qx = q - b(m, n1, n2, n3)
pp = 0
If qx > 10 Then pp = 1
If qx < -10 Then pp = 1
If qx < -10 Then qx = 0
vs = u1 + fastv(n1, n2, qx)
If pp = 1 Then vs = -999
v(m, n1, n2, n3, q) = vs
Next
Next
Next
Next
For m = 3 To 9
For n1 = -1 To 1
For n2 = -1 To 1
For n3 = -1 To 1
For q = -10 To 10
u1 = u(m, n1, n2, n3)
qx = q - b(m, n1, n2, n3)
pp = 0
If qx > 10 Then pp = 1
If qx < -10 Then pp = 1
If qx < -10 Then qx = 0
vs = -999
For nx = -1 To 1
v1 = u1 + v(m - 1, nx, n1, n2, qx)
If v1 > vs Then vs = v1
Next
If pp = 1 Then vs = -999
v(m, n1, n2, n3, q) = vs
Next
Next
Next
Next
Next
For n1 = -1 To 1
For n2 = -1 To 1
endv(n1, n2) = -999
Next
Next
For n1 = -1 To 1
For n2 = -1 To 1
u1 = endu(n1, n2)
qx = -endb(n1, n2)
pp = 0
If qx > 10 Then pp = 1
If qx < -10 Then pp = 1
If qx < -10 Then qx = 0
vs = -999
For nx = -1 To 1
v1 = u1 + v(9, nx, n1, n2, qx)
If v1 > vs Then vs = v1
Next
If pp = 1 Then vs = -999
endv(n1, n2) = vs
Next
Next
End Sub
最終更新:2009年09月18日 20:43