Labeling42D
Model was written in NetLogo 5.0.4
•
Viewed 146 times
•
Downloaded 20 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
extensions [matrix] patches-own [ es-color e-color en-color s-color n-color ws-color w-color wn-color bojapolja change? change2? living? oznakaDoljeDesnoBoja ] globals [ broj-ticksCA stopBojenje? ] to setup-blank clear-all set stopBojenje? true ask patches [cell-death set change? false set change2? false] reset-ticks end to setup set broj-ticksCA 0 set stopBojenje? true ask patches [ set change? false set change2? false ifelse (random-float 1.0 < initial-density and (pxcor != min-pxcor and pxcor != max-pxcor and pycor != min-pycor and pycor != max-pycor)) [ cell-birth ;set broj-crnih broj-crnih + 1 ] [if ((pycor = min-pycor or pycor = max-pycor) and (pxcor < max-pxcor and pxcor > min-pxcor)) [ cell-death]] ] reset-ticks end to cell-birth ;; patch procedure set living? true set pcolor black end to cell-death ;; patch procedure set living? false set pcolor white end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to oznakaDoljeDesnoSvih8 oznakaDoljeDesno8 ask patches with [change?][set pcolor oznakaDoljeDesnoBoja set change? false] end to oznakaDoljeDesno8 ask patches with [pcolor = black] [ set change? false set es-color [pcolor] of patch-at 1 -1 set e-color [pcolor] of patch-at 1 0 set s-color [pcolor] of patch-at 0 -1 if( (s-color = white and e-color = white ) ) [ set oznakaDoljeDesnoBoja ((pxcor + max-pxcor + 1) + max-pxcor * (pycor + max-pycor + 1) ) / 10 + 10 set change? true ] ] tick set broj-ticksCA broj-ticksCA + 1 end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to Labeling8 while[stopBojenje?][ komponente8 ask patches with [change?][set pcolor bojapolja set change? false] tick set broj-ticksCA broj-ticksCA + 1 ] end to komponente8 set stopBojenje? false ask patches with [pcolor != white ] [ let postavljeno? false set es-color [pcolor] of patch-at 1 -1 set e-color [pcolor] of patch-at 1 0 set en-color [pcolor] of patch-at 1 1 set s-color [pcolor] of patch-at 0 -1 set n-color [pcolor] of patch-at 0 1 set ws-color [pcolor] of patch-at -1 -1 set w-color [pcolor] of patch-at -1 0 set wn-color [pcolor] of patch-at -1 1 set bojaPolja pcolor set change? false let nestoDrugo? false ;nestoDrugo? pamti da li u okolini imamo celiju koja nije ni crna ni bijela set nestoDrugo? (w-color != black and w-color != white) or (n-color != black and n-color != white) or (e-color != black and e-color != white) or (s-color != black and s-color != white) or (ws-color != black and ws-color != white) or (wn-color != black and wn-color != white) or (en-color != black and en-color != white) or (es-color != black and es-color != white) let k -1 if(nestoDrugo?)[ if(w-color != black and w-color != white ) [set k w-color set postavljeno? true] if(n-color != black and n-color != white and NOT postavljeno?) [set k n-color set postavljeno? true] if(e-color != black and e-color != white and NOT postavljeno?) [set k e-color set postavljeno? true] if(s-color != black and s-color != white and NOT postavljeno?) [set k s-color set postavljeno? true] if(wn-color != black and wn-color != white and NOT postavljeno?) [set k wn-color set postavljeno? true] if(ws-color != black and ws-color != white and NOT postavljeno?) [set k ws-color set postavljeno? true] if(en-color != black and en-color != white and NOT postavljeno?) [set k en-color set postavljeno? true] if(es-color != black and es-color != white and NOT postavljeno?) [set k es-color set postavljeno? true] if( postavljeno?)[ if( w-color > k) [set k w-color] if(s-color > k) [set k s-color] if( n-color > k) [set k n-color] if( e-color > k) [set k e-color] if( ws-color > k) [set k ws-color] if(wn-color > k) [set k wn-color] if(es-color > k) [set k es-color] if(en-color > k) [set k en-color] if(pcolor < k) [set bojaPolja k set change? true set stopBojenje? true];set pcolor k set stopUnutrasnjeRupe? true ] ] ] ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to draw-cells let erasing? [living?] of patch mouse-xcor mouse-ycor while [mouse-down?] [ ask patch mouse-xcor mouse-ycor [ ifelse erasing? [ cell-death ];set broj-crnih broj-crnih - 1] [ cell-birth ;set broj-crnih broj-crnih + 1 ] ] display ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to oznakaDoljeDesnoSvih4 oznakaDoljeDesno4 ask patches with [change?][set pcolor oznakaDoljeDesnoBoja set change? false] end to oznakaDoljeDesno4 ask patches with [pcolor = black] [ set change? false set es-color [pcolor] of patch-at 1 -1 set e-color [pcolor] of patch-at 1 0 set s-color [pcolor] of patch-at 0 -1 set w-color [pcolor] of patch-at -1 0 set n-color [pcolor] of patch-at 0 1 if( (s-color = white and e-color = white ) or (n-color = white and w-color = white )) [ set oznakaDoljeDesnoBoja ((pxcor + max-pxcor + 1) + max-pxcor * (pycor + max-pycor + 1) ) / 10 + 10 set change? true ] ] tick set broj-ticksCA broj-ticksCA + 1 end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to Labeling4 while[stopBojenje?][ komponente4 ask patches with [change?][set pcolor bojapolja set change? false] tick set broj-ticksCA broj-ticksCA + 1 ] end to komponente4 set stopBojenje? false ask patches with [pcolor != white ] [ let postavljeno? false set e-color [pcolor] of patch-at 1 0 set s-color [pcolor] of patch-at 0 -1 set n-color [pcolor] of patch-at 0 1 set w-color [pcolor] of patch-at -1 0 set bojaPolja pcolor set change? false let nestoDrugo? false ;nestoDrugo? pamti da li u okolini imamo celiju koja nije ni crna ni bijela set nestoDrugo? (w-color != black and w-color != white) or (n-color != black and n-color != white) or (e-color != black and e-color != white) or (s-color != black and s-color != white) let k -1 if(nestoDrugo?)[ if(w-color != black and w-color != white ) [set k w-color set postavljeno? true] if(n-color != black and n-color != white and NOT postavljeno?) [set k n-color set postavljeno? true] if(e-color != black and e-color != white and NOT postavljeno?) [set k e-color set postavljeno? true] if(s-color != black and s-color != white and NOT postavljeno?) [set k s-color set postavljeno? true] if( postavljeno?)[ if( w-color > k) [set k w-color] if(s-color > k) [set k s-color] if( n-color > k) [set k n-color] if( e-color > k) [set k e-color] if(pcolor < k) [set bojaPolja k set change? true set stopBojenje? true];set pcolor k set stopUnutrasnjeRupe? true ] ] ] ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to Labeling4Brzo while[stopBojenje?][ komponente4Brzo ask patches with [ change?][set pcolor bojapolja set change? false set change2? false] ask patches with [ pcolor != white and pycor = floor (max-pycor ) / 2] [set pcolor bojapolja set change? false set change2? false] tick set broj-ticksCA broj-ticksCA + 1 ] end ;;;;;;;;;;;;;;;;;;;; to komponente4Brzo set stopBojenje? false ask patches with [pcolor != white and pycor != floor ((max-pycor ) / 2)] [ let postavljeno? false set e-color [pcolor] of patch-at 1 0 set s-color [pcolor] of patch-at 0 -1 set n-color [pcolor] of patch-at 0 1 set w-color [pcolor] of patch-at -1 0 set bojaPolja pcolor set change? false set change2? false let nestoDrugo? false ;nestoDrugo? pamti da li u okolini imamo celiju koja nije ni crna ni bijela set nestoDrugo? (w-color != black and w-color != white) or (n-color != black and n-color != white) or (e-color != black and e-color != white) or (s-color != black and s-color != white) let k -1 if(nestoDrugo?)[ if(w-color != black and w-color != white ) [set k w-color set postavljeno? true] if(n-color != black and n-color != white and NOT postavljeno?) [set k n-color set postavljeno? true] if(e-color != black and e-color != white and NOT postavljeno?) [set k e-color set postavljeno? true] if(s-color != black and s-color != white and NOT postavljeno?) [set k s-color set postavljeno? true] if( postavljeno?)[ if( w-color > k) [set k w-color] if(s-color > k) [set k s-color] if( n-color > k) [set k n-color] if( e-color > k) [set k e-color] if(pcolor < k) [set bojaPolja k set change? true set stopBojenje? true] ] ] ] ;ask patches with[pcolor != white and pycor = floor ((max-pycor ) / 2)][ end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to mreza ask patches with [(pxcor mod 2 = 0 or pycor mod 2 = 0) and (pxcor != max-pxcor and pycor != max-pycor and pxcor != min-pxcor and pycor != min-pxcor)] [cell-birth] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to cioAlgoritam4 setup-blank setup oznakaDoljeDesnoSvih4 Labeling4 end to test4 set initial-density 0.3 while [initial-density < 0.89][ show initial-density let suma 0 let i 100 ;show i while[i > 0][ cioAlgoritam4 set suma suma + broj-ticksCA set i i - 1] show suma / 100 set initial-density initial-density + 0.1] end
There are 2 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Labeling42D.png | preview | Preview for 'Labeling42D' | over 8 years ago, by Biljana Stamatovic | Download |
This model does not have any ancestors.
This model does not have any descendants.