最終更新日 2024-06-19

User.version.SDK ~県~

県の概念

県とは、現代の日本の県のことです。
天翔記の古い戦国時代のプログラムと、
現代の何らかの日本全国関連のプログラムと相互に情報リンクさせる際などに、
便利に利用することが出来ます。

県と一言で言っても3つの概念で構成されます。

ここでは、よく利用するパターンをピックアップして解説します。

使用例①

県オブジェクトの使い方は主に2つしかありません。
ひとつは、県に含まれている城のリストを求める方法です。
県→城を求めるものとなります。

県に所属する城を求める
    public static void My_シナリオ選択直後(string シナリオファイル名)
    {
        // 全ての県の名前や、その県に所属している城名を出す
        foreach (var k in 県.配列)
        {
            デバッグ出力("---------------------------------");
            デバッグ出力(k.県名);
            var clist = k.所属城番号リスト;
            foreach (int iCastleID in clist)
            {
                デバッグ出力(城.配列[iCastleID].城名称);
            }
        }
    }

使用例②

SDKでは、全ての県番号が列挙として定義済みです。
なお、この県番号は、日本の正式な「都道府県番号」と完全に一致するものです。

指定の県に所属する城を求める
    public static void My_シナリオ選択直後(string シナリオファイル名)
    {
        int iKuniID = 列挙.県.県番号.新潟県;
        デバッグ出力("---------------------------------");
        デバッグ出力(県.配列[iKuniID].県名);
        var clist = 県.配列[iKuniID].所属城番号リスト;
        foreach (int iCastleID in clist)
        {
            デバッグ出力(城.配列[iCastleID].城名称);
        }
    }

使用例③

もう一つは、逆の流れで城→県を求めるものです。

城が所属する県を求める
    public static void My_シナリオ選択直後(string シナリオファイル名)
    {
        // 今天翔記に信長がいるか、居るなら武将番号を得る
        int iBushouID = 武将.Find_武将番号(列挙.武将.列伝番号.織田信長);

        if (武将.配列.Exists(iBushouID))
        {
            // 信長が居る城の番号
            int iCastleID = 武将.配列[iBushouID].所属城番号;

            if (城.配列.Exists(iCastleID))
            {
                int iKuniID = 城.配列[iCastleID].所属県番号;
                デバッグ出力("信長は" + 県.配列[iKuniID].県名 + "に居る");
            }
        }
    }

その他

県について、主な解説は以上となります。
県関連には他にもプロパティがあります。
詳しくはHD.version.SDKソース内の「県.h」や「県列挙.h」を参照してみてください。