パワポケ12 ひたすら高性能の虹色の腕輪を粘るプログラム

パワポケ12でステータスが非常に高い虹色の腕輪を粘るためのコードのパーツを書きます。

11裏にも応用可能です。

 

プログラム

前半部分は省略。

パワポケ12 裏サクセスでステータス大幅アップの武器を粘るPythonコード例と乱数例などの後半部分に差し替えて使います。

s1=s2=s3=s4=s5=2/3

N = 3000000

for h in reversed(range(0,24)): #何時から何時を探索するか
    for m in range(0,60):
        for s in range(-1, 59):
            X = h * (2 ** 16) + m * (2 ** 8) + s + 1
            for i in range(0, N):
                X = (X * A + C) % M
                if X/M < 0.02:
                    if ((An5 * X + Cn5) % M)/M < 0.4 and ((An7 * X + Cn7) % M)/M + ((An8 * X + Cn8) % M)/M > 1.41:
                        if ((An10 * X + Cn10) % M)/M < 0.4 and ((An12 * X + Cn12) % M)/M + ((An13 * X + Cn13) % M)/M > 1.41:
                            if ((An15 * X + Cn15) % M)/M < 0.4 and ((An17 * X + Cn17) % M)/M + ((An18 * X + Cn18) % M)/M > 1.41:
                                if 0.2>((An1 * X + Cn1) % M)/M>0:
                                    s1 = s1 + 0.37
                                elif 0.4>((An1 * X + Cn1) % M)/M>0.2:
                                    s2 = s2 + 0.37
                                elif 0.6>((An1 * X + Cn1) % M)/M>0.4:
                                    s3 = s3 + 0.37
                                elif 0.8>((An1 * X + Cn1) % M)/M>0.6:
                                    s4 = s4 + 0.37
                                elif ((An1 * X + Cn1) % M)/M>0.8:
                                    s5 = s5 + 0.37
                                if 0.2>((An2 * X + Cn2) % M)/M>0:
                                    s1 = s1 + 0.37
                                elif 0.4>((An2 * X + Cn2) % M)/M>0.2:
                                    s2 = s2 + 0.37
                                elif 0.6>((An2 * X + Cn2) % M)/M>0.4:
                                    s3 = s3 + 0.37
                                elif 0.8>((An2 * X + Cn2) % M)/M>0.6:
                                    s4 = s4 + 0.37
                                elif ((An2 * X + Cn2) % M)/M>0.8:
                                    s5 = s5 + 0.37
                                if 0.2>((An3 * X + Cn3) % M)/M>0:
                                    s1 = s1 + 0.37
                                elif 0.4>((An3 * X + Cn3) % M)/M>0.2:
                                    s2 = s2 + 0.37
                                elif 0.6>((An3 * X + Cn3) % M)/M>0.4:
                                    s3 = s3 + 0.37
                                elif 0.8>((An3 * X + Cn3) % M)/M>0.6:
                                    s4 = s4 + 0.37
                                elif ((An3 * X + Cn3) % M)/M>0.8:
                                    s5 = s5 + 0.37
                                if int((10*(((An6 * X + Cn6) % M)/M))% 10) == 5:
                                    s1 = s1 + ((An7 * X + Cn7) % M)/M + ((An8 * X + Cn8) % M)/M-2/3
                                elif int((10*(((An6 * X + Cn6) % M)/M))% 10) == 6:
                                    s2 = s2 + ((An7 * X + Cn7) % M)/M + ((An8 * X + Cn8) % M)/M-2/3
                                elif int((10*(((An6 * X + Cn6) % M)/M))% 10) == 7:
                                    s3 = s3 + ((An7 * X + Cn7) % M)/M + ((An8 * X + Cn8) % M)/M-2/3
                                elif int((10*(((An6 * X + Cn6) % M)/M))% 10) == 8:
                                    s4 = s4 + ((An7 * X + Cn7) % M)/M + ((An8 * X + Cn8) % M)/M-2/3
                                elif int((10*(((An6 * X + Cn6) % M)/M))% 10) == 9:
                                    s5 = s5 + ((An7 * X + Cn7) % M)/M + ((An8 * X + Cn8) % M)/M -2/3
                                if int((10*(((An11 * X + Cn11) % M)/M))% 10) == 5:
                                    s1 = s1 + ((An12 * X + Cn12) % M)/M + ((An13 * X + Cn13) % M)/M-2/3
                                elif int((10*(((An11 * X + Cn11) % M)/M))% 10) == 6:
                                    s2 = s2 + ((An12 * X + Cn12) % M)/M + ((An13 * X + Cn13) % M)/M-2/3
                                elif int((10*(((An11 * X + Cn11) % M)/M))% 10) == 7:
                                    s3 = s3 + ((An12 * X + Cn12) % M)/M + ((An13 * X + Cn13) % M)/M-2/3
                                elif int((10*(((An11 * X + Cn11) % M)/M))% 10) == 8:
                                    s4 = s4 + ((An12 * X + Cn12) % M)/M + ((An13 * X + Cn13) % M)/M-2/3
                                elif int((10*(((An11 * X + Cn11) % M)/M))% 10) == 9:
                                    s5 = s5 + ((An12 * X + Cn12) % M)/M + ((An13 * X + Cn13) % M)/M-2/3
                                if int((10*(((An16 * X + Cn16) % M)/M))% 10) == 5:
                                    s1 = s1 + ((An17 * X + Cn17) % M)/M + ((An18 * X + Cn18) % M)/M-2/3
                                elif int((10*(((An16 * X + Cn16) % M)/M))% 10) == 6:
                                    s2 = s2 + ((An17 * X + Cn17) % M)/M + ((An18 * X + Cn18) % M)/M-2/3
                                elif int((10*(((An16 * X + Cn16) % M)/M))% 10) == 7:
                                    s3 = s3 + ((An17 * X + Cn17) % M)/M + ((An18 * X + Cn18) % M)/M-2/3
                                elif int((10*(((An16 * X + Cn16) % M)/M))% 10) == 8:
                                    s4 = s4 + ((An17 * X + Cn17) % M)/M + ((An18 * X + Cn18) % M)/M-2/3
                                elif int((10*(((An16 * X + Cn16) % M)/M))% 10) == 9:
                                    s5 = s5 + ((An17 * X + Cn17) % M)/M + ((An18 * X + Cn18) % M)/M-2/3
                                if ((An19 * X + Cn19) % M)/M < 0.2 and ((An20 * X + Cn20) % M)/M < 0.4:
                                    if int((10*(((An21 * X + Cn21) % M)/M))% 10) == 5:
                                        s1 = s1 + ((An22 * X + Cn22) % M)/M + ((An23 * X + Cn23) % M)/M-2/3
                                    elif int((10*(((An21 * X + Cn21) % M)/M))% 10) == 6:
                                        s2 = s2 + ((An22 * X + Cn22) % M)/M + ((An23 * X + Cn23) % M)/M-2/3
                                    elif int((10*(((An21 * X + Cn21) % M)/M))% 10) == 7:
                                        s3 = s3 + ((An22 * X + Cn22) % M)/M + ((An23 * X + Cn23) % M)/M-2/3
                                    elif int((10*(((An21 * X + Cn21) % M)/M))% 10) == 8:
                                        s4 = s4 + ((An22 * X + Cn22) % M)/M + ((An23 * X + Cn23) % M)/M-2/3
                                    elif int((10*(((An21 * X + Cn21) % M)/M))% 10) == 9:
                                        s5 = s5 + ((An22 * X + Cn22) % M)/M + ((An23 * X + Cn23) % M)/M-2/3
                                if  min(s2,1.9)+min(s3,1.9)+min(s4,1.9)+min(s5,1.9)>7.2 or min(s1,1.9)+min(s2,1.9)+min(s3,1.9)+min(s4,1.9)+min(s5,1.9)>8.5:
                                    print(10000 * h + 100 * m + s, i+1,"★★")        
                                    print(s1,"★",s2,"★",s3,"★",s4,"★",s5)
                                    print(((An1 * X + Cn1) % M)/M, ((An2 * X + Cn2) % M)/M, ((An3 * X + Cn3) % M)/M)
                                    print(((An6 * X + Cn6) % M)/M,((An11 * X + Cn11) % M)/M,((An16 * X + Cn16) % M)/M,((An21 * X + Cn21) % M)/M)
                                    print()
                                s1=s2=s3=s4=s5=2/3

 

(体力、力、器用、すばやさ、精神)を表すパラメータを(s1,s2,s3,s4,s5)としています。初期値はすべて2/3。

※アイテムランク12のとき、s1~s5は0のときはステータス-6、2/3のとき+0、2のとき+12だと思ってください。

 

((An19 * X + Cn19) % M)/M < 0.2 は0.3855かもしれない

コードの説明

(色部分)

初期ボーナスステータス3×3を(体力、力、器用、すばやさ、精神)=(s1,s2,s3,s4,s5) に加算。

ステータス+3はs1~s5の0.37くらい(アイテムランク10のとき)に相当するので、体力が選ばれたらs1に+0.37。

 

ステータスアップと、上がるステータスの種類を場合分けして上昇幅分だけs1~s5に加算。

 

(体力、力、器用、すばやさ、精神)を表すパラメータ(s1,s2,s3,s4,s5) で条件分岐。

(s1,s2,s3,s4,s5) が一定以上なら出力。ここは欲しいアクセサリの性能に応じて書き換え。

 

※アイテムランク12のとき、s1~s5は0のときはステータス-6、2/3のとき+0、2のとき+12だと思ってください。

また、s1~s5は2以上に上がっても意味ないです。

出力部分

(s1,s2,s3,s4,s5) が、それぞれ0~1.9の範囲で表示され、初期ステータス3×3の種類(0.2刻みで体力、力、器用、すばやさ、精神)と付加ボーナスの種類も下に出ます。

 

(s1,s2,s3,s4,s5) は1.9ならステータス+9か最大の+10濃厚です。
2/3なら+0。1.33なら+5くらい。

それ以外の値は1次関数に従う感じです。

注意点

12裏の虹色の腕輪は初期ステータス3×3がすべて違う種類のものだった場合、付加ボーナスが2つしかつかない?ようです。(12裏 乱数

本プログラムではそのパターンの出力を除外していません。

 

作ってがっかりする前に、最初の3×3を確かめておきましょう。

11裏への応用

11裏はなんと最大6個もボーナスがつく可能性があります!

追加ボーナス判定の部分に気を付けて、コードを増やしていけばとんでもない性能のものを作れるポテンシャルがあります。

 

ただしあまりに欲張ると計算時間が長くなるので注意。

また、11裏の総ステータス+55(理論値)はすでに達成済みです。

パワポケ11 全ステータス+11の虹色の指輪【総変+55、理論値】

 

コメント

タイトルとURLをコピーしました