新・聖弓魔法奏団(2)

 新たに結成した「聖弓魔法奏団せいきゅうまほうそうだん」の全容を説明したい。


 砲台役の後ろに控える小集団は横に手をつないで固まって行動する。小集団の右端には彼らを束ねるリーダーがいる。彼以外は遠隔送信用の魔法具を持たず、身体の一部を通して魔法弾を供給する。


 右手には無属性の魔法弾を放出する手袋、左手には魔法弾を吸収する手袋を身につける。リーダーを含めて彼らの背中に魔法弾吸収の刻印はない。小集団のひとりひとりが右隣の魔法士の手をにぎって、直接相手に魔法弾を送り込む。


 右端に位置するリーダーのみ、吸収の刻印を背負った「中継役ちゅうけいやく」魔法士のところまで、集めた魔法弾を「遠隔送信」する。聖弓魔法奏団に新しく設けた「中継役」魔法士は背中に六芒星の刻印が描かれたローブをまとい、小集団から目の届く距離に配置した。小集団のリーダーから中継役までの遠隔送信には番号を用いず、最も近い中継役へ送るという決まりごとに従ってもらう。


 レッドベースが生み出した遠隔の刻印へ魔法弾を送信するための番号は、送り手から魔法士へ魔法弾を受け渡す場合に発生する混線を防ぐ目的があった。


 混線の原因は魔法弾の吸収が距離の同士を優先してしまう特性にある。戦闘において魔法士間の距離が変わることなど幾らでもある。ただし特性に従って、受け取り側の魔法士を各小集団の周囲ひとりに限定し、近い距離を維持していれば番号を使わずとも混線を回避できた。


 部隊の最前線である「砲台役」へ魔法弾を送るのは、中継役を任された魔法士たちだ。砲台役は背中に描かれた吸収の六芒星の真ん中に「番号」がついたローブを着ている。


 「中継役」魔法士だけがの記された遠隔送信用の手袋を所持する。枚数は現状では砲台役の人数と同じだ。「魔法力」の残っている小集団から集まった魔法弾を、どの相手へ送るかは全て「中継役」の連携と判断に任せる。正確な分析力と意志伝達能力を必要とするため、中継役の魔法士には能力と経験を吟味して優秀な人員を選び出した。


 魔法弾の流れに沿ってまとめると、魔法力が同等の者同士で形成される小集団ごとにリーダーが魔法弾を集め、中継役に送り、それから任意の砲台役へ届く。





 影の王に敗北した旧魔法兵団は、砲台役を中心として魔法士が背後に連なり、決められた対象にのみ魔法弾を送るという絶対的なルールに従う構造だった。簡潔で穴のない仕組みだったが、柔軟性に欠けていた。


 新生「聖弓魔法奏団」は、中継役の魔法士が遠隔から魔法弾を集めて砲台役へ届けるという仕事を独立して担うため、小集団に所属する魔法士は遠隔送信の技術を考えずに行動できる。


 煩雑はんざつな作業を特定の部位に隠蔽いんぺいしてしまう方法は、今まで参考にしてきたのと同じく「役に立たない」教科書から拝借した。どこか遠くの世界にある話だが、コンピューターが備える機能をソフトウェアの概念で製作する分野だ。プログラミングと呼ばれるらしい。


 機能の拡張に着目したオブジェクト指向という特定のプログラミングでは、扱うデータと仕組みの集合を「クラス」と呼ぶ。基本となるクラスに汎用性のある仕組みを用意し、他のクラスは基本クラスを内包してこの仕組みを利用する。専門用語で自由に利用できる状態にすることを「継承」と呼ぶ。コンピューター開発者は新しくクラスを作るとき基本クラスを「継承」させれば、汎用性のある仕組みについて詳細を知らなくても機能を活用できる。


 例えばハサミで「紙」を切る作業をひとつのクラスとして用意する。指を輪の部分に入れる、ハサミを紙に当てる、手に力を入れて刃を閉じる、などといった汎用的な機能を複数の基本クラスとして扱い、一括して継承することで作業が可能となる。今度はハサミで「布」を切るクラスを作成してみよう。ハサミを紙に当てる機能を布に当てる機能へ変えれば、残りは紙と同様の基本クラスを継承して作業を完了できる。その都度、手や指の扱いを意識する必要はない。


 また、ハサミで紙を切る作業のクラスを元に、紙を切る行為を上から命令するクラスへ継承すれば、自動で何枚でも同じ大きさの紙が切りそろえられて用意される。命令する者はハサミや作業内容さえ意識せずに済む。


 中継役の魔法士たちがになう「番号を付加した魔法具を使って魔法弾を遠隔送信する」役割は「基本クラス」で作成した機能であり、小集団に所属する魔法士たちは「基本クラス」の仕組みや中継役の顔を知ることなく、砲台役までの魔法弾受け渡しに参加できる。


 煩雑はんざつな作業は「中継役」が請け負う。「基本クラス」のにない手として、集まった魔法弾を適切な砲台役へ届ける。砲台役の誰かへ偏った数の魔法弾が集中してしまわないよう常に、連携を重視する。


 「基本クラス」の機能が正常に作用する前提があって、煩雑はんざつな作業を意識せず利用する「供給役」が存在できる。考え方は複雑だが成果は大きく、多数いる供給役の魔法士たちに必要な知識や技術が大幅に減るため、新規に入団する魔法研究生でも短時間で聖弓魔法奏団の「供給役」に組み込むことができた。


 今後人員が増えたとしても、小集団の数が増えるだけで「基本クラス」となる中継役の仕事内容に変更を加える必要はない。他の供給役も変化を意識することはない。組織の拡張、陣容の再編成などあらゆる変化に対して影響を強いられることのない柔軟性が、新生「聖弓魔法奏団」の特長だ。





 砲台役は15名。小集団を背後に抱えた縦隊がいびつな形状で横に15列並んでいる。1部隊は1列20人前後。中継役は1部隊に2名所属し、全体で30名となる。


「無属性魔法弾を各砲台より全力発射!」


 私の叫んだ号令を契機に小集団の魔法士たちは一箇所に集まり、隣の魔法士の左手を右手で握って魔法弾を送り込んだ。小集団のリーダーの手のひらから光り輝く白い塊が現れ、中継役の魔法士の背中めがけて飛び立つ。


 複数の集団から魔法弾を受け取った中継役の魔法士の手のひらが輝き始める。突き出した右手から一回り大きな魔法弾が飛び出し、最前列にいる砲台役の魔法士の背中へと吸い込まれた。


 砲台役が胸の前でかざした手のひらには巨大な白い光が集まっていた。直後だ。一筋の光条が大気を切り裂いて演習場の遠く彼方まで駆け抜けていった。各部隊の砲台役から光の矢が続々と放たれる。合計15本の光の帯は美しい直線を大平原に描いた。全体合同演習は成功だ。


 各砲台に集められる魔法弾は本人を含めて20人分だ。攻撃力の無い無属性の魔法弾だが、連結された個数では旧聖弓魔法兵団が最大規模だったときと変わらない。旧魔法兵団は640名という人数のうち半数のみが供給役を任されていた。


 「聖弓魔法奏団」は構成する300名全員が魔法弾の供給に参加する。漏れなく全員が連結魔法弾の使い手だ。






◇欄外◇【オブジェクト指向】


 聖弓魔法奏団の仕組みは基本部位を隠ぺいし、利用する側の負担を減らします。基本となる機能をあらかじめ用意し、データと共に拡張していく手法はソフトウェア・プログラミングにおいて「オブジェクト指向」と呼ばれます。


 今までC言語に沿って説明してきましたが、その発展型のC++は「オブジェクト指向」でプログラミングする仕組みが追加されています。メモリ内の場所を番号で示す「ポインタ」を極力減らす工夫が加えられた結果、柔軟で拡張性のあるソフトウェア製作が可能になりました。メモリのデータを番号アドレスで直接扱う危険性は避ける流れとなったのです。変数から配列という基礎を経てポインタを用いていたC言語スタイルのデータ管理方法は、オブジェクト指向を取り入れることで終点を迎えます。

 

 また、プログラミング言語の中にはオブジェクト指向言語と呼ばれ、最初からオブジェクト指向の考え方でデザインされたものがあります。C++より新しく生まれた言語の多くが該当します。オブジェクト指向言語はいずれもポインタを使わず、別の方法によってデータを管理します。本編のように大量のデータをどう扱うかに着目すれば、各プログラミング言語の特徴が見えてきます。用途に応じて言語を使い分けるのもプログラマーの能力です。


 以上で本編の情報技術に関する注釈は終了します。実際にプログラムを組むには参考書を読んで細かい記述方法を覚えなければなりませんが、大筋は本編で魔法士たちがどのように連携したかを考えるのと同じです。魔法士たちの姿を思い出していただければプログラミング技術を習得する手助けとなるでしょう。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る