WindowsFormsアプリケーションとして作成した「信長の野望」もどきを作ってみる とりあえず編をBlazor WebAssemblyで作成してみました。今回はとりあえず動いてくれればいいので改良は次回以降におこないます。

試作品の動作確認はこちら

ただ作っただけです。期待はしないでください。

ますはIndex.razorのHTML部分を示します。

isGamingはゲーム中であるかどうかを示すフィールド変数です。ゲーム中はh1タグ部分を隠します。それから非表示にしたいボタンはdisplay:をnoneにすることで隠すことができます。

最初のボタンの状態は

です。

フィールド変数 CurentCastleStatusListにそのときの城の状態をコピーしてforeach文でまわして城、城主、兵力を表にして表示させます。それからフィールド変数 yearAtring、turn、messageでその年、ターンが回ってくる城の順番、メッセージも表示させます。

CastleStatusクラスとSituationクラスは前回と同じです。

Index.razorのコード部分のフィールド変数部分をしめします。

以下はゲーム開始時の処理です。ゲーム中であるというisGamingフラグをtrueにして、最初のターンを開始します。

InitCastleStatusListメソッドは城の状態を初期化します。CastleStatusListをいったんクリアして10個のCastleStatusオブジェクトを作成してCastleStatusListに格納します。

各城の行動順位を決めるためのGetShuffledCastlesメソッドは前回と同じです。

城の状態を表示させるUpdateCastlesStatusメソッドはCurentCastleStatusListに引数をコピーするだけです。このまえにボタンがクリックされているはずなので変更されたCurentCastleStatusListが表示されます。

他の城のターンの場合、「決定」ボタンなどをクリックできないように非表示にします。ボタンの非表示のさせかたが違うだけで前回とほとんど同じです。

城攻め時のメソッドです。これも前回とほとんど同じですが、戦闘中のどこがどこを攻めているのかをわかりやすく表示させるようにしました。

ShowSituationメソッドはボタンをおすごとにメッセージを表示させます。メッセージを表示させる方法が違うだけでこれも前回とほとんどかわりません。

PlayerActionメソッドはプレイヤーに順番が回ってきたときに実行されるメソッドです。

以下は[次][決定][静観]ボタンがクリックされたときに行なわれる処理です。