不使用品种,但处理两种类型的龟

时间:2018-01-18 13:48:53

标签: netlogo agent-based-modeling

我有两套代理商:零售商和零售商B.以前,我使用品种来创建它们,但是因为我想创建一个随机网络,它要求所有的海龟并随机选择一些连接,我认为最好将乌龟保留在随机网络代码中(在库)并做这个改变:

#include <stdio.h>
#include <stdlib.h>

const int BIT = 16;

void binary(int);
void bin(char*, int);


int main(int argc, char* argv[]) {

    int x ;

    x = atoi(argv[1]);

    char arr[BIT+1];

    //binary(16);

    bin(arr, x);   // functions overwrites array arr

    arr[BIT] = '\0';   // strings have to be null-terminated in C

    printf("%s \n", arr);

    return 0;
}

void bin(char *arr1,int x) {


    if (x >= 0 && x <= 65535)
      {
        for (int i = BIT-1; i >= 0; i--) 
              {
            if (x % 2 == 0) 
                  {
                    arr1[i] = '0';
                  } else 
                  {
                    arr1[i] = '1';
                  }
            x = x / 2;
               }

      }

}

现在我希望每组代理都有不同的显示。零售商A将随机分散,而零售商B应以圆圈显示。但是,以下代码不能满足我的要求。

    Dim numero As String 'Numéro d'assurance maladie
    Dim lettre As String 'Quatre premières lettres 
    Dim chiffre1 As String 'Quatre premiers chiffres
    Dim chiffre2 As String 'Quatre derniers chiffres

    numero = txtNumero.Text
    lettre = txtNumero.Text.Substring(0, 4)
    chiffre1 = txtNumero.Text.Substring(4, 4)
    chiffre2 = txtNumero.Text.Substring(8, 4)

这会让所有海龟都有圆圈显示。

谢谢,

1 个答案:

答案 0 :(得分:2)

创建turtles-own变量时,默认值为0.因此,如果您执行

  create-turtles 100 [
    set retailerA? true
    set shape "person"
    setxy random-xcor random-ycor
  ]

您已将retailerA?正确设置为true,但由于您未为此代理集设置retailerB?,因此retailerB?的值均为0。因此,如果您尝试使用with评估true / false表达式(例如turtles with [retailerB?]...),但有些海龟会返回值0而不是true或{ {1}},NetLogo不知道该怎么做。要解决此问题,您可以在设置过程中显式设置这些变量,如下所示:

false

或者您可以明确说出to spawn-a create-turtles 100 [ set retailerA? true set retailerB? false set shape "person" setxy random-xcor random-ycor ] end

此外,请查看syntax for layout-circle - 您不需要with [retailerB? = true]具有该原语的海龟。要解决您的问题,您需要以下内容:

ask