セブン・ビリオン・ヒューマンズ

『セブン・ビリオン・ヒューマンズ』（7 Billion Humans）は、アメリカのゲームソフト開発会社Tomorrow Corporationが開発したパズルゲーム。

 概要 
Tomorrow Corporationが2015年に発売したゲームソフト『ヒューマン・リソース・マシーン』（以下「前作」と表記）に続き、プログラミングの工程をパズルゲーム化している。舞台となるのは70億人の雇用を謳う超巨大企業の一室で、上司が出す問題を社員たちの協業によりクリアすることを目指す。

プレイヤーが組んだプログラムの内容に沿って社員が行動するという基本ルールは前作と共通しているが、社員が1人だけだった前作とは異なり、本作では複数の社員を同時に制御する並列処理がテーマとなっている。プログラム内で使用する命令は前作からほぼ一新され、前作で仕様が限定的だった算術演算命令と条件分岐命令はそれぞれ四則演算と詳細な条件設定が可能となった。

 システム 
問題の冒頭で上司が目的を示し、その内容どおりの結果を達成できれば問題のクリアとなる。前作では、運ばれてくる数字（または英字）入りのパネルを受け取って様々な処理を行い正解が記載されたパネルを渡せばクリアという流れで終始一貫していたが、本作ではクリア条件が問題ごとに異なる。

問題の舞台となる部屋の床には正方形のマスが並び、この上を社員たちがプログラムの内容に沿って動く。命令は特に指定がなければ全社員に適用され、全員が同じ行動をとる。社員を個別に制御するためには分岐命令のifを用いて社員を判別する必要がある。

各問題には、プログラムの行数の最小化を目指す「行数目標」とプログラムの実行から終了までの時間の短縮を目指す「スピード目標」完成したプログラムを25回試行した際の平均時間を規定の時間と比較する。が設定されており、問題のクリア後に結果を表すグラフが表示される。これらの目標は達成していなくてもゲームの進行に影響しない。

クリアしていない問題は最大5回までスキップできる。回数はスキップした問題をクリアすることで回復する。

一部ステージには以下の装置が設置されている。このうち、プリンターとシュレッダーは使用回数などの制限が設けられる場合がある。
 プリンター - 上部にあるパネルを社員が取ると、新たなパネルが作り出され上部に置かれる。
 シュレッダー - 社員がパネルを置くと、そのパネルを処分する。プログラムの組み方によっては社員が巻き込まれることもある。
 バイナリカウンター - 特定個所に置いた数字入りパネルの並びを二進法（バイナリ）の数字として読み取り、十進法の数字に変換した結果をディスプレイに表示する。
 デシマルカウンター - 特定個所に置いた数字入りパネルの並びを十進法（デシマル）の数字として読み取り、結果をディスプレイに表示する。

 命令 
本作の問題は大まかなテーマによって4つの段階に分かれており、新たな命令が順次追加される。なお、使用可能な命令は問題ごとに決まっている。
 第一段階より登場する命令 
以下のstep、pickUp、giveTo、takeFromの各命令は、後述のメモリのデータを引数に用いることで機能が拡張する。
 step
 社員が1歩移動する。周囲8マスのいずれかの方向を指定する。ゲームの中盤以降からは複数の方向を同時指定しランダムに移動させることができる。
 pickUp
 床に置いてあるパネルを社員が拾う。序盤で指定できるのは足元のみだが、序盤以外では足元と周囲8マスを指定できる。
 drop
 社員が持っているパネルを足元に置く。
 giveTo
 社員が持っているパネルを他の社員に渡したり装置の上に置いたりする。周囲8マスのいずれかの方向を指定する。
 takeFrom
 他の社員やプリンターの上からパネルを受け取る。周囲8マスのいずれかの方向を指定する。
 if
 指定した条件文の内容に合致するか否かで以降のプログラムを分岐させる（いわゆるif文）。条件文は、社員の足元・周囲に特定のものがあるか否か、または手持ちのパネルの数字と特定の数字の大小について、比較演算子を用いて指定する。また、and（かつ）やor（または）で複数のif文を結び一行の命令文として扱うことが可能。
 else
 if命令の使用時に自動的に追加される命令。条件文の内容に合致しない場合のプログラムを直下に記述する。何も記述がない場合は表示されない。
 jump
 プログラムの指定行までジャンプする。ループを形成する際にも用いる。
 end
 社員が行動を終了する。終了した社員は行動中の社員が通る際に道を開ける。

 第二段階より登場する命令 
以下のnearest、calc、setと後述のforEachDir命令は、実行結果がメモリに記憶される。取得したデータは他の命令の引数やif命令の条件式の一部として使用する。使用できるメモリの合計は4つ（mem 1〜mem 4）で、各社員にも4つのメモリが割り当てられている（例えば、プログラム内で「mem 1」を使用すると、各社員のmem 1のデータにアクセスする）。
 write
 社員が持っているパネルの数字を任意の数字に書き換える。
 nearest
 各社員の位置から最も近い物や社員の位置情報をメモリに記憶する。
 使用例として、nearest命令で「パネル」を指定した後にstep命令でこのデータを引数として用いると、各社員が最寄のパネルの場所へ向けて自動的に移動する。
 calc
 二項演算（四則演算）を行い、計算結果をメモリに記憶する。
 set
 特定場所の位置や置かれたパネルの数字、または任意の数字をメモリに記憶する。

 第三段階より登場する命令 
 tell
 社員の周囲任意8マスにいる社員、または全員に対して言葉を発する。あらかじめ用意された複数の言葉の中から1つを選択し引数にする。言葉の効果はいずれも同じだが、問題によっては特定の言葉を指定される。
 listen
 tell命令により発せられた言葉を聞くまで社員がその場に待機する。設定した引数の言葉がtell命令の言葉と一致している場合のみ反応する。

 第四段階より登場する命令 
 forEachDir
 社員の周囲任意8マスのデータを1つのメモリ内に一度に記憶する。データは左上のものから時計回り順に格納される。この命令の直下では、取得したデータ数と同じ回数だけループ処理が行われる（jump命令によるループは不要）。

 脚注 

 注釈 

 出典 

 外部リンク 
 Tomorrow Corporation 公式サイト（英語）
 フライハイワークス 公式サイト

Category:2018年のコンピュータゲーム
Category:Windows用ゲームソフト
Category:MacOS用ゲームソフト
Category:Linux用ゲームソフト
Category:Nintendo Switch用ソフト
Category:iPhone用ゲームソフト
Category:アメリカ合衆国で開発されたコンピュータゲーム
Category:フライハイワークスのゲームソフト
Category:パズルゲーム
Category:プログラミングゲーム
Category:企業を舞台としたコンピュータゲーム
Category:インディーゲーム