とうとう、指定したエクセルのセルの値を返すことに成功。
このセルの指定は後々していく。今のところ、以下のようなプログラムとなっている。
id = GETID("コナステ クライアント ver.1.0.0")
Hnd = GETCTLHND(id, "CloudClientGameWindow")
DIM baloon[] =0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DIM Xaxis[] = 442,411,442,473,380,411,442,473,504,349,380,411,442,473,504,535,380,411,442,473,504,411,442,473,442
DIM Yaxis[] = 88,119,119,119,150,150,150,150,150,181,181,181,181,181,181,181,212,212,212,212,212,243,243,243,274
ACW(id,0,0)
while true
for a=1 to 25
x=Xaxis[a-1]
y=Yaxis[a-1]+21
red=peekcolor(x,y,COL_R)
blue=peekcolor(x,y,COL_B)
if red > 99 AND blue < 99 THEN baloon[a-1]=1 ELSE baloon[a-1]=0
next
sleep(2.0)
DIM list[]=0,0,0,0,0
i=-1
for a=1 to 25
IFB baloon[a-1] = 1 THEN
i=i+1
list[i]=a
ELSE
i=i
ENDIF
next
c21=list[0]
c22=list[1]
c23=list[2]
c24=list[3]
c25=list[4]
c26=c21-1
c27=c22-c21
c27=c27-1
c28=c23-c22
c28=c28-1
c33=c24-c23
c33=c33-1
c30=0
c29=0
for a=1 to c26
c29=c29+1
c31=25-c29
c31=c31*(24-c29)
c31=c31*(23-c29)
c31=c31*(22-c29)
c31=c31/24
c30=c30+c31
next
c29=0
for a=1 to c27
c29=c29+1
c32=c29+c21
c31=25-c32
c31=c31*(24-c32)
c31=c31*(23-c32)
c31=c31/6
c30=c30+c31
next
c29=0
for a=1 to c28
c29=c29+1
c32=c29+c22
c31=25-c32
c31=c31*(24-c32)
c31=c31/2
c30=c30+c31
next
c29=0
for a=1 to c33
c29=c29+1
c32=c29+c23
c31=25-c32
c30=c30+c31
next
c30=c30+c25-c24
oExcel = GETACTIVEOLEOBJ("Excel.Application");
value1 = oExcel.ActiveSheet.range("J53130").value;
MSGBOX(value1)
sleep(100.0)
wend
あとは、このJ53130となっているところ(ちなみにこのセルは、位置21,22,23,24,25に赤バルーンが生成したときの、FREE4個が配置可能な場合の4つ目の配置場所となっており、この値は25である。なおその他は9,15,20という番号になっている。
これは、3個ライン3個をとり、かつオッズアップで倍率5倍を確定させているということになる。オッズアップは本来若い番号から入れていく規則であるが、以前のべた通りこの53130通り目は1通り目の180度回転で同一となるため、各マスの置換を考えてそれに基づいている。1マス目は180度回転すれば25であるから、オッズアップの番号に25が組み込まれているのである。もしそうしなければこの53130通り目にもPO率を厳密に計算する処理が発生してしまい、効率が悪い。1と53130通り目が「同一」であるかどうかの判定は以前にやっているので省略。ただそんなに簡単な話ではない。
ではいよいよ、アニマロッタで指定した赤バルーンの位置を取得し、それ先ほどの対象セルとうまくかみあわせて、最適解をたたき出し、そこからコナステに入力する。これを行っていく。