設定資料(ソフトウェア魔法の戦術教本)
「ソフトウェア魔法の戦術教本」を最後までお読みくださりありがとうございました。オマケとして設定資料を掲載します。本文に必要なものは物語内に記載しています。内容を補完する意味合いはありません。裏情報なので読み飛ばし推奨です。
1、物語に出てくる情報技術設定をC言語 (C++)で記述したらどうなるのか
C言語を知っている人を対象にした内容です。オマケ以上の意味はありませんので、不要でしたら読み飛ばしてください。
//============================
// 魔法弾発射関数(個人)
// 魔法力配列の後ろ側から順に使う
// 原理不明な発射基本関数は1度だけ呼び出す
//============================
#define MAHOUDAN ■原理不明な魔法弾の型■
#define _nACHIM_SHOKI_ 18 // アキムの初期魔法力
// 個人の魔法力の数
int g_nMahouryoku = _nACHIM_SHOKI_;
// 右腕に蓄積する魔法配列(Ver1.3参照)
MAHOUDAN g_sTikuseki[100] = {0,};
// 個人の体内魔法力(中身は原理不明)
MAHOUDAN g_sMahouTainai[_nACHIM_SHOKI_] = ■原理不明な初期化■;
// 魔法弾発射関数 trueで呼ぶと手のひらを合わせて連結魔法弾を放つ
int mahoudan(bool bFlag)
{
if(g_nMahouryoku <= 0)
{
return -1; // 魔法力がないので魔法弾は出ない
{
if(bFlag) // 手のひらを合わせて魔法力を撃ち尽くす場合
{
while(g_nMahouryoku >= 1) // 魔法力がある限り繰り返す
{
// 魔法弾を連結する
g_sTikuseki[g_nMahouryoku-1]
= g_sMahouTainai[g_nMahouryoku-1];
g_nMahouryoku--; // 魔法力1個消費
}
}
else // 1個だけ放つ場合
{
// 従来は「a」という変数だけを単発で放っていた
MAHOUDAN a = g_sMahouTainai[g_nMahouryoku-1];
g_sTikuseki[0] = a;
g_nMahouryoku--; // 魔法力1個消費
}
■原理不明な魔法弾発射基本関数■(g_sTikuseki, bFlag);
memset(g_sTikuseki, 0, sizeof(g_sTikuseki)); // 終わったら掃除する
if(g_nMahouryoku == 0) // 魔法力を使い果たした
{
return 0; // 倒れる
}
return 1; // まだ元気
}
//============================
// 聖弓魔法兵団
// 部隊数が増えても1部隊の中身は変化しない
//============================
#define MAHOUSHI ■魔法士ひとりの型■
struct stMahoButai
{
MAHOUSHI mh_sHoudai[2]; // 砲台役2名
MAHOUSHI mh_sKyoukyu[18]; // 供給役18名
MAHOUSHI mh_sShien[20]; // 支援役20名
};
// 16部隊(アキムが見学したときは10部隊)
struct stMahoButai sstMahoHeidan[16];
//============================
// 聖弓魔法奏団 オブジェクト指向↓↓
// 重要なのは各クラスが「物」ではなく「機能」だということ
//============================
// 魔法中継(基本)クラス
class cMahoChukei
{
private:
MAHOUSHI *pChukei; // 中継役アドレス
public:
// 中継役が任意の砲台役まで魔法弾を送る関数
void ChukeiMahodan();
void SetChukeiAddress(MAHOUSHI *p) { pChukei = p; }
};
// 連結魔法弾発射(基本)クラス
class CMahoHassya
{
private:
MAHOUSHI *pHoudai; // 砲台役アドレス
public:
// 砲台役が連結魔法弾を撃つ関数
void HassyaMahodan();
void SetHoudaiAddress(MAHOUSHI *p) { pHoudai = p; }
};
////////////////////////////////////
// 供給クラス……小集団ごとのクラス(上記クラスを継承)
class CMahoSmallGroup : public CMahoChukei, public CMahoHassya
{
private:
MAHOUSHI mh_sMahoushi[4]; // 最大4人
public:
void MahoAtumeru(); // 中身は省略(魔法弾を集める)
void MahoKyokyu_toHassya(); // 下記(魔法弾を供給して一斉発射)
};
// 魔法中継、魔法弾発射の仕組みは知らずとも関数を利用できる
CMahoSmallGroup::MahoKyokyu_toHassya();
{
ChukeiMahodan(); // 魔法弾を供給する(CMahoChukeiの機能)
HassyaMahodan(); // 連結魔法弾を発射する(CMahoHassyaの機能)
};
// 小集団で実体(インスタンス)をつくる
CMahoSmallGroup g_CSeikyuSmallGroup[■たくさん■];
// 後からかけつけた者も簡単に追加できる(一般人が多く小集団は一律4名)
CMahoSmallGroup g_CAddSmallGroup[460/4];
CmahoSmallGroup g_CaddSmallGroup[3000/4];
お目汚し、たいへん失礼いたしました。
2、各キャラクターの名前・血液型
物語に登場するキャラクターは(一応)現実に存在する名称が元になっています。国の名前がレジスタ共和国だけあって、CPUが処理する際に用いるデータ置き場……(汎用)レジスタの名称です。x86系から引用しているので、アセンブラを使える古いプログラマーにしかわかりません。
AX(EAX)アキュムレータ → アキム(主人公) A型
BX(EBX)ベース → レッドベース(先輩) AB型
CX(ECX)カウンタ → カウル(少年から青年へ) B型
DX(EDX)データ → ティータ(ヒロイン) O型
SP(ESP)スタックポインタ → ジョースタック(所長) O型
SI(ESI)ソース → オース(元斥候) AB型
DI(EDI)デスティネーション → デスティン(優等生) B型
(BPはスタックベースで他と重なるため使用しませんでした)
それからセグメントレジスタに使われている名称から
セグメント → セグ(織物職人) B型
エクストラ → エキスト(主任) A型
人物名っぽくなるようにアレンジしています。リューゾというキャラクターだけはレジスタと関係ありません。物語の中で明らかになります。(血液型O型)
3、一問一答 Q&A
誰も尋ねていないのに、気になる人はいるだろう設定に作者が勝手にお答えするコーナーです。
Q1. 真犯人はあなたですか?
A. そのとおり、真の裏ボスは私です。くらプロデューサーです。
Q2.レッドベースは悪人だったのでしょうか?
A. 外伝「×アキムの○魔法士たちの木造船」にて詳しく語る予定です。
Q3.ティータとデスティンは一時期付き合っていたのですか?
A. え……ノーコメントとしたいところですが、少しだけお答えします。逆にデスティンの立場だったとして、魔法研究所では逆らう者がいません。思いを寄せていた女性の弱みを握ったらどうしますでしょうか? 恋敵が鼻をひくひくさせていた香水を自分のプレゼントしたものに変えさせるところまでは私も同感です。あとは読者の想像にお任せいたします。文中ではっきりしているのは2点、デスティンはけじめをつけるために黒い衣装を身につけていたこと。もうひとつはアキム本人が何も勘づいていないところです。ドロドロの群像劇を描くつもりはありませんので、主人公の知り得る範囲では何もなかったことにしました。
Q4.最終話でレッドベースの形をした彫像の誘いに乗っていたらどうなったのでしょうか?
A.窮地に追い込まれた者が提示してくる新情報はたいてい嘘です。攻撃の手を休めていたら魔法士たちは全滅していたでしょう。私がアキムならだまされていたと思います。運良くエキスト元魔法研究士から本音を聞かされていたアキムは意思が固まっていたのです。
以上でQ&Aは終了します。感想欄で訊ねてくださればお答えします。設定にないものは答えられません。正直に「考えていませんでした」と謝るつもりです。また、活動報告でお答えしたものについてはここに追加させていただきます。
(次のページより本編の後日譚を掲載します)
影の王との決戦から数年、成人を迎えたカウルは木造船の中で目を覚ます。黒い水面に光の粒をたたえた海、ひたすらに直進する船はとある秘密を抱えていた。突如発生するトラブルにかつて少年だったカウルの記憶が蘇る。影の王打倒後のレジスタ共和国の行く末、登場人物たちのその後……。
後日譚のタイトルは「×アキムの○魔法士たちの木造船」です。日常を描いた内容ではなく、とある事件を解決する長編となっています。本編の主人公アキムを始め、既存の登場人物をカウルという第3者の視点から語りつつ、本編で曖昧となっていた謎が明らかになるというストーリーです。情報技術やプログラミングといったテーマとは関係ないため、別途用意しました。本編の内容に疑問を抱えた方にお薦めです。




