弥生研究所

人は誰しもが生きることの専門家である

【Factorio】クロック回路【回路ネットワーク】

回路ネットワーク 難易度
基本編 ☆☆

回路ネットワークの中でも、基本的で応用がききやすいクロック回路について説明します。

tick(ティック)

クロック回路の説明の前に、まずティックについて理解する必要があります。ティックは Factorio のゲーム内の時間を表し、 1 tick は 1/60 秒を意味します。

1 tick = 1 / 60 秒

回路ネットワークで取り扱われる信号は、このティック毎に処理されます。

基本的なクロック回路

まず、最も基本となるクロック回路を紹介します。

回路の仕様

f:id:yayoi-tech:20190920115036j:plain
単純なクロック回路

定数回路では「A」を 1個、出力しています。 条件回路では A > 0 の時、「A」を入力数個、出力しています。 ポイントは、条件回路の出力が入力とつながって、信号がループしていることです。

動作確認

クロック回路は次のように動作します。

f:id:yayoi-tech:20190920115108g:plain
信号が増加している

条件回路の出力を見てみると、信号 A が、ティックごとに増えていくのが分かります。

解説

1ティック目。定数回路から出力された信号A、1個は、条件回路が受け取ります。条件回路では、Aが1個以上の時、Aを入力された個数だけ出力するという条件を満たすため、Aを1個、出力します。

2ティック目。条件回路は再び、定数回路から出力されたAを1個受け取ります。さらに、条件回路の出力と入力が繋がっているため、1ティック目で条件回路が出力したAも1個受け取ります。つまり、2ティック目で条件回路が受け取る信号はAが2個になります。Aが2個という条件は、条件回路の出力条件を満たすので、条件回路はAを2個出力します。

3ティック目。条件回路が受け取る信号Aは、定数回路が出力した1個と、2ティック目に条件回路が出力した2個を合わせた、3個になります。このようにして、条件回路は1ティックごとに出力する信号Aの個数を1づつ増やしていきます。信号の増加はオーバーフローするまで続きます。

理解のポイント

クロック回路の最大の特徴は、一つの条件回路の入出力がケーブルで繋がっていることです。自分が出力した信号を自分で受け取ることにより、信号を増幅しています。また、自分が出力した信号を受け取るのは次のティックになります。一つの条件回路が動作するのは1ティックにつき1回だけです。これは定数回路や算術回路も同じです。

実践への足掛かり

クロック回路を理解できると、例えば次のような回路を組むことができます。

  • 定期的に信号を送る回路
  • ある条件を満たしたときに1回だけ信号を送る回路

クロック回路を使えると、下記の原子力発電の制御にも応用が効きます。

yayoi-tech.hatenablog.com

以上です。

f:id:yayoi-tech:20190917171944p:plain