butterflies and human interaction
Model was written in NetLogo 6.3.0
•
Viewed 82 times
•
Downloaded 4 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
breed [peoples people] breed [butterflies butterfly] breed [food flowers] breed [venom vpod] butterflies-own[people_seen people_hit health robustness speed_variation per_vis_rad per_vis_ang food_around_me closest_food have_venom vis_rand ] food-own [amount] patches-own [solid] globals [rad daytime starting_color current_color color_adjust color_range timer_reset ] to setup clear-all reset-ticks set rad 5 ;after rad addition globals added then setup this function set timer_reset 1000 set daytime true set starting_color 85 set current_color starting_color set color_range 5 set color_adjust ( color_range / ( timer_reset + 10 )) create-peoples number_of_people[ setxy random-xcor random-ycor set color grey set size 10 set shape "person" ] create-butterflies number_of_butterflies[ setxy random-xcor random-ycor set color blue set size 10 set shape "butterfly" ;making butteflies unique set health 50 + random 50 adjust_vision_cone set robustness random 10 set speed_variation random 10 set heading 0 pendown set vis_rand random 20 ] create-food 10[ grow_food ] create-venom 20 [ make_venom ] draw_building end to draw_building ask patches [ set solid false ] ask patches with [ pxcor >= -30 and pxcor <= 30 and pycor >= -30 and pycor <= 30][ set pcolor brown set solid true ] end to grow_food setxy random-xcor random-ycor set color yellow set size 10 set shape "plant" set amount random 100 end to make_venom setxy random-xcor random-ycor set color green set size 5 set shape "x" end to pickup_venom let pickup [false] ask venom in-radius rad [ set pickup true die ] if pickup = true [ set have_venom have_venom + 1 ] end to go make_people_move reset_patch_color make_butterflies_move grow_more_food tick end to make_people_move ask peoples[ set color grey right (random pwr -( pwr / 2)) detect_wall forward people_speed ] end to make_butterflies_move ask butterflies [ ifelse health > 0 [ show_visualisations pickup_venom set color blue let have_seen_person people_function let can_smell_food food_function 30 ifelse ( have_seen_person = true ) [ right 180 ][ ifelse ( can_smell_food = true ) and ( health < 100)[ set heading ( towards closest_food ) ][ right (random bwr - (bwr / 2)) ]] adjust_vision_cone detect_wall forward butterflies_speed + ( speed_variation * 0.1) ][ set color gray die ] ] end to grow_more_food if ticks > timer_reset [ ask patch random-xcor random-ycor[ sprout-food 1 [grow_food] ] ifelse daytime = true [ set daytime false ][ set daytime true ] reset-ticks ] end to show_visualisations if show_col_rad = true[ ask patches in-radius rad [ if solid = false [ set pcolor orange ] ] ] if show_vis_cone = true[ ask patches in-cone per_vis_rad per_vis_ang[ if solid = false [ set pcolor red ] ] ] end to reset_patch_color ifelse daytime = true [ set current_color current_color - color_adjust ][ set current_color current_color + color_adjust ] ask patches [ if solid = false [ set pcolor current_color ] ] end to detect_wall if [solid] of patch-ahead 1 = true [ right 180 ] end to adjust_vision_cone if ((((vis_rad + vis_rand)*(health * 0.01))) - ((starting_color - current_color) * 2) > 0) [ set per_vis_rad (((vis_rad + vis_rand)*(health * 0.01))) - ((starting_color - current_color) * 2) ] if ((vis_ang + vis_rand)*(health * 0.01)) > 0 [ set per_vis_ang (( vis_ang + vis_rand)*(health * 0.01)) ] end to-report people_function let seen [false] let hit [false] let person_hit 0 ask peoples in-cone vis_rad vis_ang[ set color green set seen true ] ask peoples in-radius rad[ set hit true set person_hit who show person_hit ] ifelse seen = true [ set people_seen people_seen + 1 set color white ; right 180 ][ ;right (random bwr - (bwr / 2)) ] if hit = true [ ifelse have_venom > 0 [ ask people person_hit [die] set have_venom have_venom - 1 ][ set people_hit people_hit + 1 set color green set health health - robustness ;++++++ adjust_vision_cone ] ] report seen end to-report food_function [senstivity] set food_around_me other ( food in-radius senstivity ) set closest_food min-one-of food_around_me [distance myself] let can_smell_food [false] let eating_food [false] if health < 100 [ ask food in-radius rad [ ifelse amount > 0 [ set eating_food true set amount amount - 5 set color color - .25 ][ die ] ] ] if eating_food = true [ set health health + 5 adjust_vision_cone ] if ( closest_food != nobody) [ set can_smell_food true ] report can_smell_food end
There is only one version of this model, created about 1 year ago by waqas majeed.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
butterflies and human interaction.png | preview | Preview for 'butterflies and human interaction' | about 1 year ago, by waqas majeed | Download |
This model does not have any ancestors.
This model does not have any descendants.