2020年12月26日土曜日

エクセルの値を取得

 とうとう、指定したエクセルのセルの値を返すことに成功。

このセルの指定は後々していく。今のところ、以下のようなプログラムとなっている。

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通り目が「同一」であるかどうかの判定は以前にやっているので省略。ただそんなに簡単な話ではない。

ではいよいよ、アニマロッタで指定した赤バルーンの位置を取得し、それ先ほどの対象セルとうまくかみあわせて、最適解をたたき出し、そこからコナステに入力する。これを行っていく。

悲しい

 確かにチェーンボンバーの配列や配当を記録し、ついでに番号もしっかりと記入できるプログラムの性能が高まってうまく作れたのは良いが…。 この前スーパーJP4500とダイレクトJP10000が立て続けにきてクレジットが15000になって有頂天になっていたがKMPが100%から動かない...