一年ぶり以上かよ。

TOC2Perl - 永字八法の続き。
工場をオブジェクトで表現する。

Factory(工場)クラス

工場オブジェクトは、発注オブジェクトを受け取ると、いったんそれを飲み込んで発注オブジェクトで指定された製品オブジェクトにして返す機能を持っている。
その工場オブジェクトは、必要な原材料を得るのに、周辺にある鉱山オブジェクトや他の工場オブジェクトに独自の発注オブジェクトを投げる。
工場オブジェクトは、複数の工程オブジェクトでできている。工程オブジェクトはまあ、工場オブジェクトと同じような機能を持っているが若干違う。

Process(工程)クラス

最上流から最下流までずらりと並んでいる。工場は発注を受けると、最下流の工程オブジェクトにそれを投げる。工程オブジェクトは、それを作るのに必要な部品を必要な量に安全係数を足しただけの発注オブジェクトを、必要な工程オブジェクトに投げる。この機能は独立して存在している。
実際には、工場内の在庫を監視し、発注された品を作るのに必要な部品が在庫にあれば、それを組み立てて完成品にする。
この組み立ての時、工程で働く職員の技量によって失敗が一定の確率で起こりうる。(なので発注された以上の部品を発注するのだ)
完成品は即座に工場内の在庫に置かれる。また、完成品の数が発注量に達すると、その発注は解決される。
さて、発注された工程は、それを生産するための発注を(以下略)と繰り返す。
最上流の工程は、その材料を工場外から得なければならない。必要な量の発注をプレイヤーに向けて出す。
他の工場や鉱山に発注するのは、プレイヤーの役目である。発注して得られた原材料は、工場内の在庫に貯められる。プレイヤーはここで先回りして、予め安く大量に原材料や下請け部品を発注しておくことができるが、在庫管理にはくれぐれも気をつけよう。

Mine(鉱山)クラス

発注(と金)を投げたら、一定時間後にクラスごとに決められた金属を精製して送ってくる。
時間は発注量に比例し、単価は発注量に反比例する。
月産最大規模や埋蔵量などもあるので、注意が必要。

目的

TOC勉強用ソフト?