農家は Replace() されました

提供:ペチラボ書庫
2026年2月16日 (月) 01:14時点におけるPtt (トーク | 投稿記録)による版 (→‎リーダーボード)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Pythonライクなコードで農業を自動化するゲーム。

面白かったので攻略メモを残したいと思います

https://store.steampowered.com/app/2060160/_Replace/?l=japanese

設定

Shift + Tab がデフォルトだとSteamオーバーレイのショートカットになっていて邪魔なので無効化しましょう。

ゲームの進め方

いい感じにループを組んで、色々アンロックしていくのが最初の目標になると思います

アンロックを進めるとリーダーボードが解放でき、各種ランで競うことができます。

文法

各種機能のアンロックが必要ですが、基本的な文法はほとんどPythonと同じです。

関数

移動系

move(方角)

East, West, North, South が指定できる

座標はループしていて、端まで行ったら反対側に移動する

農業系

plant(Entities.xx)

指定したエンティティを植える

多くのエンティティは till() したほうがいい

till()

耕す

use_item(Items.xx)

水やり、肥料などに使う

getter系

can_harvest()

収穫できるかどうか

get_entity_type()

エンティティの種類を見る

何もなかったらNoneを返す

get_ground_type()

土の状態を見る

耕す条件とかで使う

get_time()

ゲーム開始からの時間

get_tick_count()

実行開始からのtickカウント

sleep系

do_a_flip()

ドローンが宙返りをする

固定で1秒かかる

pet_the_piggy()

子ブタをなでます!

固定で1秒かかる

エンティティ

植えることができる植物など

Grass(草)

Bush(植え付け、茂み)

Tree(木)

1本あたり5つの木材が手に入る。

東西南北に隣接した木があると、1つにつき2倍の時間がかかる。(最大16倍)

Carrot(ニンジン)

Pumpkin(カボチャ)

20%確率で壊れる。

壊れてないカボチャが正方形に揃うと合体する。

とりあえず正方形に植えるのがよさそう

Sunflower(ヒマワリ)

収穫すると「パワー」を得てドローンが速くなる。

Cuctus(サボテン)

0~9 のサイズがランダムで出現する。

長方形に隣接したサボテンが sorted であれば同時に収穫され、そのサボテン数の2乗に等しいサボテンが獲得できる。

サイズを取得するmeasure() と、隣接したサボテンを入れ替える swap() が使用できる。


隣接した要素を入れ替えることによるソートといえば バブルソート を基本的には利用することになるんだろう。

さらなる高速化のためには、適宜枝刈りするほか、このゲームでは植え直してしまう手もあるかもしれない

要素

水やり

農場の広さとスピードに応じていい感じに使うのがよさそう

肥料

植物を即座に成長させることができる(2秒短縮)

副作用があり、収穫の半分が Items.Weird_Substance に変わる。

このアイテムを使うと、対象と隣接する植物の感染状態を反転させる

混植

plant_type, (x, y) = get_companion()

この座標にこの植物があると収量が増えるよ、という情報が得られる

拡大

広くなる

スピード

アンロックと、ヒマワリのパワーでドローンの動きが速くなる。

むやみに速くすると生育スピードが追いつかずうまく制御できなくなることがあるので注意

恐竜

尻尾を集めるのに最低限必要なことは、

  • (事前に)サボテンを十分な数もっておく
  • 農地を耕して何もない状態にする(リンゴが出現できる状態にする)
  • 恐竜の帽子をかぶるとリンゴが出現する
  • 適当なタイミングで恐竜以外の帽子に変えると尻尾が収穫される

帽子の着脱だけでも尻尾を集めることはできるようです。


効率化のためにはリンゴを集める必要があります。いわゆる「スネークゲーム」をプレイします

リンゴの回収数に応じて二乗で収穫数が増えるので、わりと真面目にスネークゲームをやるのがよさそうです

迷路

迷路の生成

まず、茂みをplant()する。

can_harvest() になったら、そこで奇妙な物質を使う。

必要数は (迷路の1辺のサイズ) × 2^(迷路アップグレードレベル - 1)

迷路の解法

ループが無い場合(初回)、進行方向に対して右側または左側の壁に沿うように動けば必ず宝箱に到達できる。

メガファーム

メガファームをアンロックすると、複数のドローンを同時に使用できる。

spawn_drone(func) で、ドローンが実行すべき関数を渡して、追加のドローンを召喚する。呼び出したドローンの位置と同じ位置に召喚される。

spawn_drone は drone ハンドルを返す。

各ドローンは変数を共有しない。

最大数を取得

max_drones()

農場にいるドローン数を取得

num_drones()

シミュレーション

リーダーボード

leaderboard_run(リーダーボード, filename, speedup) でリーダーボードを開始できる。

最速リセット: Leaderboards.Fastest_Reset

Unlocks.Leaderboard をアンロックするまでの時間を競う。

迷路: Leaderboards.Maze

恐竜: Leaderboards.Dinosaur

サボテン: Leaderboards.Cactus

ヒマワリ: Leaderboards.Sunflowers

カボチャ: Leaderboards.Pumpkins

木: Leaderboards.Wood

ニンジン: Leaderboards.Carrots

干し草: Leaderboards.Hay

_Single を付けてシングルドローンのリーダーボードでもプレイできる。


その他

帽子

デバッグ

print() とブレークポイントが使えます