まさはる's Weblog

まさはる's Weblog
Macintoshとオーディオの話題

2019年2月16日

7 Billion Humans(その2)

Category : Game 7 / Posted at 2019年2月16日 19:32

 前回の続きでSteamから購入したTomorrow Corporation7 Billion HumansのMac版の話題です。今回は、行数目標とスピード目標に関する話で、まずはスピード目標から。

13年目の「穴埋め要員2」
13年目の「穴埋め要員2」

 右側のプログラムを見るとまともなプログラムではないのがすぐに分かります。このゲームは、パネルの値は変わっても、パネル等の配置は変わらないので、課題によってはこういうチョンボ的なプログラムが可能です。

13年目の「穴埋め要員2」
目標時間の1/10の5秒で実行完了できます

 次は真面目に時間を短縮した例です。

42年目の「メール振り分け」
42年目の「メール振り分け」

 この課題はランダム性が強いので、最初に社員を一歩右に動かして、なるべく中心から作業ができるようにしています。

42年目の「メール振り分け」
平均151秒で実行完了

42年目の「メール振り分け」
なんと、最速の159秒を塗り替え!?

 珍しい事もあるものです。簡単には最速・最短は越えられないと思っていましたが、最速を越えられるとは。ちなみに、記録を塗り替えたからといって、最速・最短の記録サイトがその都度更新される訳ではなさそうです...残念。
 この後は、処理を速くするコツを紹介します。

42年目の「メール振り分け」
位置はメモリー同士で判定する方が速くなります

 42年目の「メール振り分け」の場合、パネルの値に合ったシュレッダーを使う必要があり、シュレッダーの前で移動することになりますが、自分の足元のパネルの値をメモリーに記録して、メモリー同士で判定する方が処理速度は速くなります。

26年目の「コンベヤの如く・極」
作業を専属させる方が速くなります

 26年目の「コンベヤの如く・極」のように個人の作業内容が決まっている場合、最初にif文で個人を特定し、そのif文内で作業をループさせると処理速度が速くなります。

64年目の「バイナリカウンター」
相手に会話してから作業をすると速くなります

 64年目の「バイナリカウンター」のように会話が必要になる場合は、先に会話をしてから自分の作業をすると、全体の処理速度が速くなります。
 この後は、真面目に考えるとスピード目標よりも難しい、行数目標の話です。

32年目の「置き換え問題」
0を99に書き換えればいいだけですが...

 32年目の「置き換え問題」は0で繋がったパネルを99に書き換えればいいだけですが、行数目標が6行以下とかなり厳しい...。最短は5行ということなので、上の絵は5行にしてみたプログラムです。

32年目の「置き換え問題」
致命的ではないにしろ、エラー吐きまくり...

32年目の「置き換え問題」
平均999秒でなんとか処理

 もう1行追加することが許されているので、エラーを吐かないようif文を入れるのが正しいのでしょうねぇ...。
 最後は53年目の「100のパネル」です。これ、目標は16行以下で最短は9行なのですが...。

53年目の「100のパネル」
最短を超えて8行にしてみましたw

53年目の「100のパネル」
平均1198秒ですがタイムオーバーがいくつか...

53年目の「100のパネル」
これは最短の9行を塗り替え!?

 これはゲームなので処理できない場合があってもいいと思いますが、実際にこんなプログラムは無いでしょうね。
 このゲームは、表向きはパズルゲームですが中身はプログラムを組むもので、自分が組んだプログラムの良し悪しまで分かるようになるとても面白いゲームだと思います。頭の柔らかい人にオススメです。

このページのトップに戻る