【農家は Replace() されました】第4回 茂み解禁 |ギャルから学ぶドローン農業【超初心者向け攻略】

当記事はChatGPTが出力した文章を使用しています。

 

このゲームの関連記事

www.himajin-block30.com

 

前回

www.himajin-block30.com

 

plant(Entities.Bush)解禁

フェーズ1:初回の植え付け(1回だけ実行)

最初に各マスへ茂みを植えるパスを回すよ。いまは変数もforもないから、素直に3回書いちゃう方式でOK👌

# —— 植え付け用(1回流したら止めてOK)——
plant(Entities.Bush)
move(North)

plant(Entities.Bush)
move(North)

plant(Entities.Bush)
# 3マス植え終わり。ここで停止ボタンでもOK
  • 位置はどこからでもOK。端まで行くとラップして反対側に戻るから安心。

  • もし変な場所に植えちゃってリセットしたい時は clear() で畑も位置も初期化できるよ🧹


フェーズ2:巡回しながら収穫(常時回すやつ)

植え付けが済んだら、1マスごとに収穫チェック→次のマスへ移動のループで巡回!

while True:
    if can_harvest():
        harvest()
        plant(Entities.Bush)
    move(North)
  • if can_harvest():True の時だけ harvest()。ムダ打ちしない省エネ✨

  • その後 必ず1歩進むから、3マスをクルクル巡回して取りこぼしナシ。

  • コロン :インデント(TabならTabだけ/SpaceならSpaceだけ)を厳守ね!

空振りが多いと感じたら(“ちょい待ち”版)

成長が遅めなら、待ち1ティック入れると安定することがあるよ👇

while True:
    if can_harvest():
        harvest()
        plant(Entities.Bush)
    else:
        do_a_flip()   # ここが待ち1tick
    move(North)

それでも早すぎるなら do_a_flip() を2回に増やして“待ち2tick”にすればOK。


トラブル時のチェック👀

  • NameError っぽいのが出た:NorthEntities.Bush綴り・大文字確認(文字列じゃないよ!)

  • 何も起きない:() 忘れや全角カッコ混入を疑って打ち直し

  • インデントエラー:TabとSpace混在NG。どっちかに統一(おすすめはSpace×4)


この2フェーズで、「植えた→巡回して刈る」が完成!

 

move(North)if の前に置いてもOK?

“振る舞い”がちょっと変わるから、狙いで使い分けるのがコツ💅

サクッと違いまとめ

  • チェック→移動(今の提案)

    while True:
        if can_harvest():
            harvest()
            plant(Entities.Bush)
        move(North)
    
    • “今いるマス”を先に判定してから移動。

    • その場で熟した瞬間を拾いやすい(“居残り型”)。

  • 移動→チェック(move先案)

    while True:
        move(North)
        if can_harvest():
            harvest()
            plant(Entities.Bush)
    
    • “移動先のマス”をすぐ判定(“到着即チェック型”)。

    • ループ開始1回目だけスタート地点をスキップする=1マス分の遅れが出るけど、周回すれば追いつくよ。

どっちも1周あたりのティック数はほぼ同じ(move1 + can_harvest1 + 収穫時はさらに+1)。
つまり速さはほぼ同等、違うのは“どのマスで待つ/拾うか”のクセだけ✌️

待ちを入れる場合の置き場所の意味

  • チェック→(必要なら待ち)→移動

    while True:
        if can_harvest():
            harvest()
            plant(Entities.Bush)
        else:
            do_a_flip()   # ここで待つ=今のマスを見張る
        move(North)
    

    “このマスがもう少しで熟す”ってときに離れる前に待つから、取りこぼしに強い。

  • 移動→チェック→(必要なら待ち)

    while True:
        move(North)
        if can_harvest():
            harvest()
            plant(Entities.Bush)
        else:
            do_a_flip()   # 到着先で待つ=次のマスの熟し待ち
    

    “到着したらすぐ刈りたい”派に向く。到着タイミングで熟す作物を拾いやすい。

小ワザ(スタート地点の一回遅れを無くしたいなら)

# 1回だけ事前チェック
if can_harvest():
    harvest()
    plant(Entities.Bush)

while True:
    move(North)
    if can_harvest():
        harvest()
        plant(Entities.Bush)

注意点だけ💣

  • moveifの中に入れない(収穫できないと動かなくなって詰む)。

  • インデントはTabだけ or Spaceだけで統一。

  • North / can_harvest の綴り・大文字は厳守、() も忘れずに!


どっちのクセで回したいか、君の畑の“熟しリズム”に合わせて決めよ〜🌾

 

続き

www.himajin-block30.com

このゲームの関連記事

www.himajin-block30.com