3

白亀に黄亀を 8 つの隣接する空きスペースの 1 つに作成するように依頼しようとしています。空き領域がない場合、タートルは何も生成しません。注: 白いカメは白いままで、他の黄色いカメと同様に自分自身を再生できる黄色いカメを生成します。要約すると、最後に黒いスペースを黄色のタートルで埋めたいと思います。

breed [ cells cell ]
cells-own [ n ]

to setup
  clear-all
  set-default-shape cells "square"
  ask patches [ if pycor = min-pycor [sprout-cells 1]]
  ask cells [ ifelse random 10 < 2 [set color white] [set color yellow]]

返信いただきありがとうございます。

私がやろうとしていることを説明します:

  1. 白い四角は「幹細胞」を表し、自分自身を再生して別のタイプの細胞 (TA 細胞など) を生成する能力を持っているため、最初に各白い細胞がその上または上の角の 1 つで別の細胞を生成します。
  2. 2 番目のステップでは、各 TA セルが周囲の空きスペースに他のセルをランダムに生成します。
  3. 第三に、幹細胞 (白い四角) はステップ 1 を繰り返し、同時に TA 細胞がそれらの周りの空きスペースの 1 つを埋めます。細胞 (幹細胞と TA 細胞の両方) は、周囲に空きスペースがなくなると (8 つの隣接細胞が既に埋められている場合)、新しい細胞の生成を停止します。
  4. 最終段階で、すべての黒いスペースを TA セルで埋める必要があります。最後の行の黄色い四角は基本的に何もしません。

ご協力いただきありがとうございます。

  reset-ticks
end

to go
  ask cells
    [ set n count neighbors with [pcolor = yellow] ]
  ask cells
    [ if n >= 1
      [ set color yellow] ]
  tick
  ;ask cells 
  ;[if ticks = 10
    ;[set color yellow]]
end
4

1 に答える 1

2

あなたがやろうとしていることは、私には完全には明らかではありません。私はありそうな解釈で行くつもりですが、私の解釈が正しいかどうかにかかわらず、あなたはあなたの質問を明確にするよう努めるべきです.

patchesあなたのコードを理解しようとすると、 と の間に少し混乱があるように思えますturtlesgo手順でcellsは、黄色の隣人がいる場合は黄色にするように依頼します。あなたが望むのは、黄色の正方形の隣にあるパッチに黄色の正方形を表示することだと思います。埋めようとしている空のパッチにはcellsまだ何もないので、ask cellsここでは黄色に変えても役に立ちません。

cell現在の手順を維持して、本当にエージェントに固執したい場合は、次のsetupようにすることができます。

to go
  ask patches with [not any? turtles-here] [
    if any? neighbors with [any? turtles-here] [
      sprout-cells 1 [
        set color yellow
      ]
    ]
  ]
end

(セルを下から上にのみ成長させたい場合は、ビューを右クリックして を選択し、ビュー設定でラップをオフにする必要がありますEdit...)

まったく別のアプローチとして、何らかのセル オートマトンだけが必要な場合は、エージェントを捨ててパッチのみを使用する方が簡単です。それはあなたに次のようなものを与えるでしょう:

to setup
  clear-all
  ask patches [
    if pycor = min-pycor [
      ifelse random 10 < 2 
        [set pcolor white]
        [set pcolor yellow]  
    ]
  ]
  reset-ticks
end

to go
  ask patches with [pcolor = black] [
    if any? neighbors with [pcolor = yellow or pcolor = white] [
      set pcolor yellow
    ]
  ]
  tick
end

どちらのアプローチも有効です。最初のものはもう少し視覚的に楽しいです。2 番目の方法は、タートルがまったく必要ないため、少し単純です。最終的に何をしたいかによります。

于 2012-11-05T17:54:41.360 に答える