『カタンの開拓者』のアプリを作・・・れるかな?――トークン(生産力)の配置

資源の配置が決まったら、そこにトークン(生産力)の数値を入れていく。順番は決まっているのだが、砂漠はとばすのがミソ。

いろいろなやり方はあるのだろうけど、やってみたのは、まずJ1からJ18にトークンの数字を並べる。5、2、6、3、8、10、9、12、11、4、8、10、9、4、5、6、3、11の順番。

でもって、これに砂漠を挿入する。挿入の仕方はいろいろあるだろうけれど、とりあえずやってみたのは、一つ手前の資源の種類の配置で指定した三原色の数値の合計で砂漠を判別する方法。砂漠は黒なので、3つの色の合計はゼロになる。三原色はB-D列に入っているので、その合計をE列に入れ、上から見ていく。E列i番目がゼロより大きければ、H列i番目にJ列i番目の数値を入れるのだが、E列でゼロがでてきたら、H列のその行に1を入れ、次に移る。そこで、変数iとjが一つズレて、最後まで行く。

 

Sub トークン配置()

 

Dim i, j

 

j = 1

    For i = 1 To 19

        If Cells(i, 5) > 0 Then

            Cells(j, 8) = Cells(i, 10)

            j = j + 1

        Else

            Cells(j, 8) = 1

            j = j + 1

            Cells(j, 8) = Cells(i, 10)

            j = j + 1

        End If

    Next

End Sub

 

下の図の場合、前もってH24にH1、F24にH2、D24にH3、、、、という風に、対応するタイルの真ん中にトークンの数値が出るようにしておけばOK。

 

しかし、もう少し簡単な方法があるだろうな、という気はする。For分で回すのがたった19回だから、これでもいいけど。

また、対応するタイルの真ん中にトークンの数値が出るようにするとき、結局一つ一つ指定していった。これも、何か便利な方法があったんじゃないかな。

f:id:chamcham5628:20200915004328p:plain

六角形が正六角形からほど遠いものになっているのは、この記事のために余計な部分を削除した際に歪んだため。実際にはもう少しまともです。