Labeling42D

Labeling42D preview image

1 collaborator

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.0.4 • Viewed 146 times • Downloaded 20 times • Run 0 times
Download the 'Labeling42D' modelDownload this modelEmbed this model

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.

Uploaded by When Description Download
Biljana Stamatovic over 8 years ago Better image Download this version
Biljana Stamatovic over 8 years ago Initial upload Download this version

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.