breed [customers customer]
turtles-own [group-pref phantom-group-pref tech-pref influence-by-marketing friends contract-time]
globals [
  iphone-resources blackberry-resources 
  tech-iphone tech-blackberry 
  iphone-upgrade-cost blackberry-upgrade-cost 
  marketing-percentage-iphone patches-sum
  current-turtle-size current-friend-status growth-rate 
  cost-of-marketing
  iphone-marketing-spending iphone-tech-spending blackberry-marketing-spending blackberry-tech-spending 
  iphone-spent-on-marketing blackberry-spent-on-marketing iphone-spent-on-tech blackberry-spent-on-tech 
  iphone-tech-next-stage blackberry-tech-next-stage iphone-marketing-next-stage blackberry-marketing-next-stage
]

to setup
  clear-all
  initialize-variables
  
  set-default-shape customers "circle"
  create-customers initial-customers [
    ifelse random 100 < initial-iphone-percent [
      set color orange
    ][
      set color magenta
    ]
    create-helper
  ]
  ask turtles [
    create-links
  ]
  ask patches [
    set pcolor 5
  ]
  setup-marketing
  reset-ticks
end

to go
  set-go-variables
  set-marketing-variable
  
  add-resources
  spend-resources
  
  change-turtle-size
  update-friends-status
  update-growth-rate
  add-customers
  update-contracts-and-remake-decision-if-expired
  
  tick
end

to update-growth-rate ; this procedure updates the growth rate based on an inverse exponential function
  ifelse inverse-exp-growth? [
    ifelse e ^ (ticks / maximum-new-adoptors) > maximum-new-adoptors [
      set growth-rate maximum-new-adoptors
    ][
      set growth-rate int (e ^ (ticks / maximum-new-adoptors))
    ]
  ][
    set growth-rate 1
  ]
end

to add-customers ; introduce customers to the world based on the function given by update-growth-rate
  if ticks mod growth-rate = 0 [
    create-customers 1 [
      create-helper
      create-links
      set-phone-choice
    ]
  ]
end

to update-contracts-and-remake-decision-if-expired ; turtle proceture -- updates when their contract expires, and remakes their decision if expired
  ask customers [
    ifelse contract-time = 0 [
      set-phone-choice
      set contract-time 4 * 356
    ][
      set contract-time contract-time - 1
    ]
  ]
end

to add-resources ; give each company an income based on the amount of customers they have
  set iphone-resources iphone-resources + count turtles with [color = orange]
  set blackberry-resources blackberry-resources + count turtles with [color = magenta]
end

; this procedure also updates tech and marketing levels for both companies, after spending both company's income
; if the income is not enough to pay for a technology upgrade, the company still puts money towards it, but only
; gets the point after it has put enough money towards it
; this procedure also increases the technology cost as it updates
to spend-resources 
  ifelse random (iphone-tech-spending + iphone-marketing-spending) < iphone-marketing-spending [
    set iphone-spent-on-marketing iphone-spent-on-marketing + iphone-resources
    if iphone-spent-on-marketing > iphone-marketing-next-stage [
      if any? patches with [pcolor != 109] [
        ask one-of patches with [pcolor != 109] [
          set pcolor pcolor + 1
          set iphone-resources iphone-resources - cost-of-marketing
        ]
      ]
      set iphone-marketing-next-stage iphone-marketing-next-stage + cost-of-marketing
    ]
  ][
    set iphone-spent-on-tech iphone-spent-on-tech + iphone-resources
    if iphone-spent-on-tech > iphone-tech-next-stage [
      set tech-iphone tech-iphone + 1
      set iphone-tech-next-stage iphone-tech-next-stage + cost-of-marketing + tech-iphone * 300
    ]
  ]
  set iphone-resources 0
  
  ifelse random (blackberry-tech-spending + blackberry-marketing-spending) < blackberry-marketing-spending [
    set blackberry-spent-on-marketing blackberry-spent-on-marketing + blackberry-resources
    if blackberry-spent-on-marketing > blackberry-marketing-next-stage [
      if any? patches with [pcolor != 100] [
        ask one-of patches with [pcolor != 100] [
          set pcolor pcolor - 1
          set blackberry-resources blackberry-resources - cost-of-marketing
        ]
      ]
      set blackberry-marketing-next-stage blackberry-marketing-next-stage + cost-of-marketing
    ]
  ][
    set blackberry-spent-on-tech blackberry-spent-on-tech + blackberry-resources
    if blackberry-spent-on-tech > blackberry-tech-next-stage [
      set tech-blackberry tech-blackberry + 1
      set blackberry-tech-next-stage blackberry-tech-next-stage + cost-of-marketing + tech-blackberry * 300
    ]
  ]
  set blackberry-resources 0
end

to setup-marketing ; this sets the initial random gradient marketing environment on setup
  ask one-of patches [
    set pcolor 104
    ask-neighbors
  ]
end

to ask-neighbors ; this is a recursive procedure for patches
  let my-color pcolor
  ask neighbors [
    if pcolor = 5 [
      ifelse random 10 < 5 [
        ifelse my-color + 1 > 109 [
          set pcolor 109
        ][
          set pcolor my-color + 1
        ]
      ][
        ifelse my-color - 1 < 100 [
          set pcolor 100
        ][
          set pcolor my-color - 1
        ]
      ]
      ask-neighbors
    ]
  ]
end

to set-phone-choice ; turtles use this procedure to decide which which preference they will consider when choosing a phone
  let sum-of-preference group-pref + tech-pref + influence-by-marketing
  let r random sum-of-preference
  ifelse r < group-pref [
    set-according-to-neighbors
  ][
    ifelse r < tech-pref + group-pref [
      set-according-to-tech
    ][
      set-according-to-marketing
    ]
  ]
end

to set-according-to-neighbors ; this procedure is called if turtles prefer what their friends use over other preferences
  ifelse any? friends [
    let blackberry-neighbors 0
    let iphone-neighbors 0
    ask friends [
      ifelse color = orange [
        set iphone-neighbors iphone-neighbors + 1
      ][
        set blackberry-neighbors blackberry-neighbors + 1
      ]
    ]
    let r blackberry-neighbors + iphone-neighbors
    ifelse random r < iphone-neighbors [
      set color orange
    ][
      set color magenta
    ]
  ][
    ifelse random tech-pref + influence-by-marketing < tech-pref [
      set-according-to-tech
    ][
      set-according-to-marketing
    ]
  ]
end

to set-according-to-tech ; this procedure is called if turtles prefer technology use over other preferences
  ifelse tech-blackberry < tech-iphone [
    set color orange
  ][
    set color magenta
  ]
end

to set-according-to-marketing ; this procedure is called if turtles are more susceptible to marketing over other preferences
  ifelse random 10 <= pcolor - 100 [
    set color orange
  ][
    set color magenta
  ]
end

to create-links ; this is a turtle procedure which sets a random amount of friends for each turtle
  if random 100 < 40 [
    set friends min-n-of random 15 turtles [distance myself]
  ]
end

to initialize-variables ; initialize variables at setup
  set patches-sum count patches
  set iphone-resources 0
  set blackberry-resources 0
  set tech-blackberry 0
  set tech-iphone 0
  set current-turtle-size turtle-size
  set current-friend-status 999
  set cost-of-marketing 3000
  set iphone-spent-on-marketing 0
  set blackberry-spent-on-marketing 0
  set iphone-spent-on-tech 0
  set blackberry-spent-on-tech 0
  set iphone-tech-next-stage cost-of-marketing
  set blackberry-tech-next-stage cost-of-marketing
  set iphone-marketing-next-stage cost-of-marketing
  set blackberry-tech-next-stage cost-of-marketing
end

to create-helper ; this sets up the variables required whenever a customer is introduced into the world--mostly personal preference variables
  setxy random-xcor random-ycor
  set size turtle-size
  set friends no-turtles
  set group-pref random-normal 10 3
  set phantom-group-pref group-pref
  set tech-pref random-normal 10 3
  set influence-by-marketing random-normal 10 3
  set contract-time 4 * 356
end

to set-go-variables ; this procedure updates spending for companies, and is updated every tick
  set iphone-marketing-spending percentage-spent-on-marketing-iphone
  set iphone-tech-spending 100 - percentage-spent-on-marketing-iphone
  set blackberry-marketing-spending percentage-spent-on-marketing-blackberry
  set blackberry-tech-spending 100 - percentage-spent-on-marketing-blackberry
end

to change-turtle-size ; this procedure updates the size of turtles, and is called at every tick
  if current-turtle-size != turtle-size [
    set-turtle-size
    set current-turtle-size  turtle-size
  ]
end

to set-turtle-size ; ; this is a helper procedure used by change-turtle-size
  ask turtles [
    set size turtle-size
  ]
end

to update-friends-status ; this procedure updates the status of friends, and is called at every tick
  if current-friend-status != friends? [
    ifelse friends? [
      set-back-group
    ][
      set-group-zero
    ]
    set current-friend-status friends?
  ]
end

to set-group-zero ; this is a helper procedure used by update-friends-status
  ask turtles [
    set group-pref 0
  ]
end

to set-back-group ; this is a helper procedure used by update-friends-status
  ask turtles [
    set group-pref phantom-group-pref
  ]
end

to set-marketing-variable ; this procedure updates the the percentage of marketing influence iphone has in the world.
  let iphone-sum 0
  ask patches [
    set iphone-sum iphone-sum + pcolor - 100
  ]
  set marketing-percentage-iphone iphone-sum / (9 * patches-sum)
end
@#$#@#$#@
GRAPHICS-WINDOW
363
11
742
411
20
20
9.0
1
10
1
1
1
0
1
1
1
-20
20
-20
20
1
1
1
ticks
30.0

BUTTON
21
106
87
139
NIL
setup
NIL
1
T
OBSERVER
NIL
NIL
NIL
NIL
1

SLIDER
20
17
229
50
initial-customers
initial-customers
500
2500
1500
5
1
NIL
HORIZONTAL

SLIDER
20
53
235
86
initial-iphone-percent
initial-iphone-percent
0
100
50
1
1
NIL
HORIZONTAL

BUTTON
96
106
159
139
NIL
go
T
1
T
OBSERVER
NIL
NIL
NIL
NIL
0

PLOT
364
427
744
577
iphone vs blackberry
time
customers
0.0
10.0
0.0
10.0
true
true
"" ""
PENS
"iphones" 1.0 0 -955883 true "" "plot count customers with [color = orange]"
"blackberries" 1.0 0 -7858858 true "" "plot count customers with [color = magenta]"

MONITOR
754
57
833
102
tech level
tech-iphone
17
1
11

MONITOR
897
55
983
100
tech level
tech-blackberry
17
1
11

MONITOR
755
111
883
156
marketing percentage
marketing-percentage-iphone * 100
1
1
11

SLIDER
22
469
194
502
turtle-size
turtle-size
0.1
2
0.34
.03
1
NIL
HORIZONTAL

SWITCH
21
296
127
329
friends?
friends?
0
1
-1000

SWITCH
21
336
209
369
inverse-exp-growth?
inverse-exp-growth?
0
1
-1000

SWITCH
22
376
216
409
increasing-tech-cost?
increasing-tech-cost?
0
1
-1000

TEXTBOX
33
163
254
195
Money not spent on marketing is spent on research and development
12
0.0
1

SLIDER
16
239
328
272
percentage-spent-on-marketing-iphone
percentage-spent-on-marketing-iphone
0
100
50
1
1
NIL
HORIZONTAL

SLIDER
16
202
331
235
percentage-spent-on-marketing-blackberry
percentage-spent-on-marketing-blackberry
0
100
80
1
1
NIL
HORIZONTAL

SLIDER
22
428
231
461
maximum-new-adoptors
maximum-new-adoptors
1000
25000
12500
500
1
NIL
HORIZONTAL

TEXTBOX
760
25
910
43
iPhone\n
14
0.0
1

TEXTBOX
902
26
1052
44
Blackberry
14
0.0
1

MONITOR
898
111
1029
156
marketing percentage
100 - marketing-percentage-iphone * 100
1
1
11

MONITOR
756
183
880
228
total money spent
iphone-spent-on-marketing + iphone-spent-on-tech
17
1
11

MONITOR
899
182
1023
227
total money spent
blackberry-spent-on-marketing + blackberry-spent-on-tech
17
1
11

MONITOR
757
239
854
284
spent on tech
iphone-spent-on-tech
17
1
11

MONITOR
755
300
888
345
spent on marketing
iphone-spent-on-marketing
17
1
11

MONITOR
900
238
997
283
spent on tech
blackberry-spent-on-tech
17
1
11

MONITOR
901
299
1034
344
spent on marketing
blackberry-spent-on-marketing
17
1
11

MONITOR
756
372
835
417
customers
count turtles with [color = orange]
17
1
11

MONITOR
902
372
981
417
customers
count turtles with [color = magenta]
17
1
11

@#$#@#$#@
## WHAT IS IT?

This is a classic model of forces competing for a limited resource. In this model, the two forces are Apple (iPhone) and Blackberry. The limited resource is customers, and the setting is the mobile market. These two forces accumulate income based on how many customers they have, and the user controls how these two forces invest that income.

This model shows how different methods of investment can drastically change the market share. 

## HOW IT WORKS

Customers are represented by circles. Orange circles signify iPhone users, and magenta circles signify Blackberry users. Marketing influence is represented by patches. The darker the patch, the more influence Blackberry has on that patch. The bluer and lighter the patch, the more influence iPhone has on that patch.

Setup:
An inital amount of customers is created, with their phone choices already made. The patches are present, with a roughly 50/50 split between iPhones and Blackberries.
Each customer has their own set of preferences, represented by a number. The larger the number, the bigger the preference. The preferences are: 

- Susceptibility to marketing
- Preference to what their friends use
- Attraction to advanced technology

Each tick:

- New customers are introduced into the market. They follow an inverse exponential graph, unless the controlling switch is off. 
- Both forces gain an income based on how many customers they have, and spend it based on user controlled sliders
- Marketing upgrade changes the color of one patch by one, and the cost of marketing does not change
- Technology upgrades cost increasingly more, unless the controlling switch is off
- New customers and customers renewing their contract make their decision based on the current environment and their personal preferences.
- Customers with contracts expiring remake their decision on a new phone

## HOW TO USE IT

You control how the two companies spend their resources. Try and find the most optimal combination of spending for one corporation to spend their money so that the amount of customers using their technology is maximized. Or see how an equilibrium can be achieved. Or see what a corporation should avoid to not be completely wiped from the market.

You may adjust switches to see if they have any affect on the outcome of market share. You may also adjust the maximum adopters allowed slider to see how that affects the effectiveness of investment percentages. 

You may also adjust the turtle size, if there are too many turtles on the screen. 

This model may run a little slow at times, so try turning the speed to fastest.

## THINGS TO NOTICE

When the model is run, at first it may seem that spending on technology dictates the market share, but be sure to wait for the model to run for a while, before noticing changes caused by marketing. 

Take note of the population and marketing percentage if you see one techonology's market share surpass the other's, and compare it with other spending patterns.

## THINGS TO TRY

Don't just keep the spending percentages the same throughout a run. Change it and see if any emergent behaviors occur as you change the sliders. This more realistically simulates a company, as they do not just have the same spending percentage throughout their entire lifespan. 

Pretend that you are the CEO of one of the companies. If the competing company is ahead, what can you do to regain market share? If the competing company is behind, what can you do to secure your lead?

## EXTENDING THE MODEL

There are many things that can make this model more realistic. Here are some suggestions.

- Phone technology is tricky to model, as there are milestones that technology reaches, which causes essentially all adoptors to never choose the phone which does not contain that milestone. For example, regardless of how good the marketing is for a flip phone, it is going to sell nominally compared to a touch screen phone. 
- Add competition (bidding) for patch spots that more more densely populated. Allow population to also cluster. This simulates cities, and places that are expensive to advertise in, such as Times Square.
- Have customers change their friends around, based on people around them, and personal preference.
- Have customers walk around in random paths, and befriend other customers which have similar paths. 
- Have companies specifically target a patch which has a density of customers not using their technology.
@#$#@#$#@
default
true
0
Polygon -7500403 true true 150 5 40 250 150 205 260 250

airplane
true
0
Polygon -7500403 true true 150 0 135 15 120 60 120 105 15 165 15 195 120 180 135 240 105 270 120 285 150 270 180 285 210 270 165 240 180 180 285 195 285 165 180 105 180 60 165 15

arrow
true
0
Polygon -7500403 true true 150 0 0 150 105 150 105 293 195 293 195 150 300 150

box
false
0
Polygon -7500403 true true 150 285 285 225 285 75 150 135
Polygon -7500403 true true 150 135 15 75 150 15 285 75
Polygon -7500403 true true 15 75 15 225 150 285 150 135
Line -16777216 false 150 285 150 135
Line -16777216 false 150 135 15 75
Line -16777216 false 150 135 285 75

bug
true
0
Circle -7500403 true true 96 182 108
Circle -7500403 true true 110 127 80
Circle -7500403 true true 110 75 80
Line -7500403 true 150 100 80 30
Line -7500403 true 150 100 220 30

butterfly
true
0
Polygon -7500403 true true 150 165 209 199 225 225 225 255 195 270 165 255 150 240
Polygon -7500403 true true 150 165 89 198 75 225 75 255 105 270 135 255 150 240
Polygon -7500403 true true 139 148 100 105 55 90 25 90 10 105 10 135 25 180 40 195 85 194 139 163
Polygon -7500403 true true 162 150 200 105 245 90 275 90 290 105 290 135 275 180 260 195 215 195 162 165
Polygon -16777216 true false 150 255 135 225 120 150 135 120 150 105 165 120 180 150 165 225
Circle -16777216 true false 135 90 30
Line -16777216 false 150 105 195 60
Line -16777216 false 150 105 105 60

car
false
0
Polygon -7500403 true true 300 180 279 164 261 144 240 135 226 132 213 106 203 84 185 63 159 50 135 50 75 60 0 150 0 165 0 225 300 225 300 180
Circle -16777216 true false 180 180 90
Circle -16777216 true false 30 180 90
Polygon -16777216 true false 162 80 132 78 134 135 209 135 194 105 189 96 180 89
Circle -7500403 true true 47 195 58
Circle -7500403 true true 195 195 58

circle
false
0
Circle -7500403 true true 0 0 300

circle 2
false
0
Circle -7500403 true true 0 0 300
Circle -16777216 true false 30 30 240

cow
false
0
Polygon -7500403 true true 200 193 197 249 179 249 177 196 166 187 140 189 93 191 78 179 72 211 49 209 48 181 37 149 25 120 25 89 45 72 103 84 179 75 198 76 252 64 272 81 293 103 285 121 255 121 242 118 224 167
Polygon -7500403 true true 73 210 86 251 62 249 48 208
Polygon -7500403 true true 25 114 16 195 9 204 23 213 25 200 39 123

cylinder
false
0
Circle -7500403 true true 0 0 300

dot
false
0
Circle -7500403 true true 90 90 120

face happy
false
0
Circle -7500403 true true 8 8 285
Circle -16777216 true false 60 75 60
Circle -16777216 true false 180 75 60
Polygon -16777216 true false 150 255 90 239 62 213 47 191 67 179 90 203 109 218 150 225 192 218 210 203 227 181 251 194 236 217 212 240

face neutral
false
0
Circle -7500403 true true 8 7 285
Circle -16777216 true false 60 75 60
Circle -16777216 true false 180 75 60
Rectangle -16777216 true false 60 195 240 225

face sad
false
0
Circle -7500403 true true 8 8 285
Circle -16777216 true false 60 75 60
Circle -16777216 true false 180 75 60
Polygon -16777216 true false 150 168 90 184 62 210 47 232 67 244 90 220 109 205 150 198 192 205 210 220 227 242 251 229 236 206 212 183

fish
false
0
Polygon -1 true false 44 131 21 87 15 86 0 120 15 150 0 180 13 214 20 212 45 166
Polygon -1 true false 135 195 119 235 95 218 76 210 46 204 60 165
Polygon -1 true false 75 45 83 77 71 103 86 114 166 78 135 60
Polygon -7500403 true true 30 136 151 77 226 81 280 119 292 146 292 160 287 170 270 195 195 210 151 212 30 166
Circle -16777216 true false 215 106 30

flag
false
0
Rectangle -7500403 true true 60 15 75 300
Polygon -7500403 true true 90 150 270 90 90 30
Line -7500403 true 75 135 90 135
Line -7500403 true 75 45 90 45

flower
false
0
Polygon -10899396 true false 135 120 165 165 180 210 180 240 150 300 165 300 195 240 195 195 165 135
Circle -7500403 true true 85 132 38
Circle -7500403 true true 130 147 38
Circle -7500403 true true 192 85 38
Circle -7500403 true true 85 40 38
Circle -7500403 true true 177 40 38
Circle -7500403 true true 177 132 38
Circle -7500403 true true 70 85 38
Circle -7500403 true true 130 25 38
Circle -7500403 true true 96 51 108
Circle -16777216 true false 113 68 74
Polygon -10899396 true false 189 233 219 188 249 173 279 188 234 218
Polygon -10899396 true false 180 255 150 210 105 210 75 240 135 240

house
false
0
Rectangle -7500403 true true 45 120 255 285
Rectangle -16777216 true false 120 210 180 285
Polygon -7500403 true true 15 120 150 15 285 120
Line -16777216 false 30 120 270 120

leaf
false
0
Polygon -7500403 true true 150 210 135 195 120 210 60 210 30 195 60 180 60 165 15 135 30 120 15 105 40 104 45 90 60 90 90 105 105 120 120 120 105 60 120 60 135 30 150 15 165 30 180 60 195 60 180 120 195 120 210 105 240 90 255 90 263 104 285 105 270 120 285 135 240 165 240 180 270 195 240 210 180 210 165 195
Polygon -7500403 true true 135 195 135 240 120 255 105 255 105 285 135 285 165 240 165 195

line
true
0
Line -7500403 true 150 0 150 300

line half
true
0
Line -7500403 true 150 0 150 150

pentagon
false
0
Polygon -7500403 true true 150 15 15 120 60 285 240 285 285 120

person
false
0
Circle -7500403 true true 110 5 80
Polygon -7500403 true true 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90
Rectangle -7500403 true true 127 79 172 94
Polygon -7500403 true true 195 90 240 150 225 180 165 105
Polygon -7500403 true true 105 90 60 150 75 180 135 105

plant
false
0
Rectangle -7500403 true true 135 90 165 300
Polygon -7500403 true true 135 255 90 210 45 195 75 255 135 285
Polygon -7500403 true true 165 255 210 210 255 195 225 255 165 285
Polygon -7500403 true true 135 180 90 135 45 120 75 180 135 210
Polygon -7500403 true true 165 180 165 210 225 180 255 120 210 135
Polygon -7500403 true true 135 105 90 60 45 45 75 105 135 135
Polygon -7500403 true true 165 105 165 135 225 105 255 45 210 60
Polygon -7500403 true true 135 90 120 45 150 15 180 45 165 90

sheep
false
15
Circle -1 true true 203 65 88
Circle -1 true true 70 65 162
Circle -1 true true 150 105 120
Polygon -7500403 true false 218 120 240 165 255 165 278 120
Circle -7500403 true false 214 72 67
Rectangle -1 true true 164 223 179 298
Polygon -1 true true 45 285 30 285 30 240 15 195 45 210
Circle -1 true true 3 83 150
Rectangle -1 true true 65 221 80 296
Polygon -1 true true 195 285 210 285 210 240 240 210 195 210
Polygon -7500403 true false 276 85 285 105 302 99 294 83
Polygon -7500403 true false 219 85 210 105 193 99 201 83

square
false
0
Rectangle -7500403 true true 30 30 270 270

square 2
false
0
Rectangle -7500403 true true 30 30 270 270
Rectangle -16777216 true false 60 60 240 240

star
false
0
Polygon -7500403 true true 151 1 185 108 298 108 207 175 242 282 151 216 59 282 94 175 3 108 116 108

target
false
0
Circle -7500403 true true 0 0 300
Circle -16777216 true false 30 30 240
Circle -7500403 true true 60 60 180
Circle -16777216 true false 90 90 120
Circle -7500403 true true 120 120 60

tree
false
0
Circle -7500403 true true 118 3 94
Rectangle -6459832 true false 120 195 180 300
Circle -7500403 true true 65 21 108
Circle -7500403 true true 116 41 127
Circle -7500403 true true 45 90 120
Circle -7500403 true true 104 74 152

triangle
false
0
Polygon -7500403 true true 150 30 15 255 285 255

triangle 2
false
0
Polygon -7500403 true true 150 30 15 255 285 255
Polygon -16777216 true false 151 99 225 223 75 224

truck
false
0
Rectangle -7500403 true true 4 45 195 187
Polygon -7500403 true true 296 193 296 150 259 134 244 104 208 104 207 194
Rectangle -1 true false 195 60 195 105
Polygon -16777216 true false 238 112 252 141 219 141 218 112
Circle -16777216 true false 234 174 42
Rectangle -7500403 true true 181 185 214 194
Circle -16777216 true false 144 174 42
Circle -16777216 true false 24 174 42
Circle -7500403 false true 24 174 42
Circle -7500403 false true 144 174 42
Circle -7500403 false true 234 174 42

turtle
true
0
Polygon -10899396 true false 215 204 240 233 246 254 228 266 215 252 193 210
Polygon -10899396 true false 195 90 225 75 245 75 260 89 269 108 261 124 240 105 225 105 210 105
Polygon -10899396 true false 105 90 75 75 55 75 40 89 31 108 39 124 60 105 75 105 90 105
Polygon -10899396 true false 132 85 134 64 107 51 108 17 150 2 192 18 192 52 169 65 172 87
Polygon -10899396 true false 85 204 60 233 54 254 72 266 85 252 107 210
Polygon -7500403 true true 119 75 179 75 209 101 224 135 220 225 175 261 128 261 81 224 74 135 88 99

wheel
false
0
Circle -7500403 true true 3 3 294
Circle -16777216 true false 30 30 240
Line -7500403 true 150 285 150 15
Line -7500403 true 15 150 285 150
Circle -7500403 true true 120 120 60
Line -7500403 true 216 40 79 269
Line -7500403 true 40 84 269 221
Line -7500403 true 40 216 269 79
Line -7500403 true 84 40 221 269

wolf
false
0
Polygon -16777216 true false 253 133 245 131 245 133
Polygon -7500403 true true 2 194 13 197 30 191 38 193 38 205 20 226 20 257 27 265 38 266 40 260 31 253 31 230 60 206 68 198 75 209 66 228 65 243 82 261 84 268 100 267 103 261 77 239 79 231 100 207 98 196 119 201 143 202 160 195 166 210 172 213 173 238 167 251 160 248 154 265 169 264 178 247 186 240 198 260 200 271 217 271 219 262 207 258 195 230 192 198 210 184 227 164 242 144 259 145 284 151 277 141 293 140 299 134 297 127 273 119 270 105
Polygon -7500403 true true -1 195 14 180 36 166 40 153 53 140 82 131 134 133 159 126 188 115 227 108 236 102 238 98 268 86 269 92 281 87 269 103 269 113

x
false
0
Polygon -7500403 true true 270 75 225 30 30 225 75 270
Polygon -7500403 true true 30 75 75 30 270 225 225 270

@#$#@#$#@
NetLogo 5.0.4
@#$#@#$#@
@#$#@#$#@
@#$#@#$#@
<experiments>
  <experiment name="variable iphone spending with friends and exp growth" repetitions="1" runMetricsEveryStep="true">
    <setup>setup</setup>
    <go>go</go>
    <timeLimit steps="40000"/>
    <metric>count turtles with [color = orange]</metric>
    <metric>count turtles with [color = magenta]</metric>
    <metric>marketing-percentage-iphone</metric>
    <enumeratedValueSet variable="initial-iphone-percent">
      <value value="50"/>
    </enumeratedValueSet>
    <enumeratedValueSet variable="turtle-size">
      <value value="0.34"/>
    </enumeratedValueSet>
    <enumeratedValueSet variable="initial-customers">
      <value value="1500"/>
    </enumeratedValueSet>
    <enumeratedValueSet variable="percentage-spent-on-marketing-blackberry">
      <value value="50"/>
    </enumeratedValueSet>
    <enumeratedValueSet variable="percentage-spent-on-marketing-iphone">
      <value value="100"/>
    </enumeratedValueSet>
    <enumeratedValueSet variable="inverse-exp-growth?">
      <value value="true"/>
    </enumeratedValueSet>
    <enumeratedValueSet variable="increasing-tech-cost?">
      <value value="true"/>
    </enumeratedValueSet>
    <enumeratedValueSet variable="friends?">
      <value value="true"/>
    </enumeratedValueSet>
  </experiment>
</experiments>
@#$#@#$#@
@#$#@#$#@
default
0.0
-0.2 0 1.0 0.0
0.0 1 1.0 0.0
0.2 0 1.0 0.0
link direction
true
0
Line -7500403 true 150 150 90 180
Line -7500403 true 150 150 210 180

@#$#@#$#@
0
@#$#@#$#@
