そもそも、北海道大戦って何?
北海道の全市町村179ありますが、それらが全道統一を目指してバトルしたらどうだろう?って思い付きで考えたゲームです。
とりあえず、Excelで北海道マップを作成しました。
Excel方眼紙はこうやって使う。
でも、このままではデータとして使用できないので、番号に置き換えます。
ちゃんと179市町村ありました。
右に市町村の一覧があり、それらに番号が振られており、マップ上の市町村に番号を設置しました。
これをさらにExcelマクロで加工します。
イメージとしては、Json形式となるようにマップを検索し、X座標とY座標をまとめます。
Sub output()
Dim TownArea As Object
Dim Rows As Integer
Set TownArea = Worksheets("Sheet1").Range("AU1", Range("AU1").End(xlDown).End(xlToRight))
Rows = TownArea.Rows.Count
Dim Area As Object
Dim RightLength As Integer
Dim DownLength As Integer
Set Area = Worksheets("Sheet1").Range("B2:AS36")
RightLength = Area.Columns.Count
DownLength = Area.Rows.Count
Dim WS2 As Object
Set WS2 = Worksheets("Sheet2")
Dim WriteLine As Integer
WriteLine = 1
WS2.Cells(WriteLine, 1).Value = "{""list"":["
WriteLine = WriteLine + 1
For R = 1 To Rows
Dim number As Integer
Dim name As String
number = TownArea.Cells(R, 1).Value
name = TownArea.Cells(R, 2).Value
WS2.Cells(WriteLine, 2).Value = "{""name"" :"""
WS2.Cells(WriteLine, 3).Value = name
WS2.Cells(WriteLine, 4).Value = """, ""point"" :["
For RL = 1 To RightLength
For DL = 1 To DownLength
If Area.Cells(RL, DL).Value = number Then
WS2.Cells(WriteLine, 5).Value = "{""x"" :"
WS2.Cells(WriteLine, 6).Value = RL - 1
WS2.Cells(WriteLine, 7).Value = ", ""y"" :"
WS2.Cells(WriteLine, 8).Value = DL - 1
WS2.Cells(WriteLine, 9).Value = "}"
WS2.Cells(WriteLine, 10).Value = ","
WriteLine = WriteLine + 1
End If
Next
Next
WS2.Cells(WriteLine - 1, 10).Value = "]},"
Next
WS2.Cells(WriteLine - 1, 10).Value = "]}"
WS2.Cells(WriteLine, 1).Value = "]}"
End Sub
これをテキストにコピーして、セル間のタブを置換処理で削除すれば、Jsonとして完成します。
整形したらこんな感じになりました。
これでようやくマップデータとして使用できそうです。