Advertisement
Guest User

Untitled

a guest
Jan 13th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. breed [cars car]
  2.  
  3. patches-own [ what-semaphores? w-s? ] ;;implicit merg semafoarele strazilor orizontale
  4.  
  5. to setup
  6.   clear-all
  7.   ask patches
  8.   [ setup-road
  9.     set what-semaphores? true  
  10.   ]
  11.   setup-cars
  12.  
  13.   reset-ticks
  14. end
  15.  
  16. to go
  17.   move-cars-horizontal
  18.   if (ticks = 1000000)
  19.   [
  20.     change-semaphores
  21.     reset-ticks
  22.   ]
  23.   tick  
  24. end
  25.  
  26. to setup-road
  27.   set pcolor brown
  28.  
  29.   setup-horizontal-roads
  30.   setup-vertical-roads
  31.   setup-semaphores
  32. end
  33.  
  34. to setup-horizontal-roads ;; creeaza drumurile orizontale
  35.   if(pycor > -12) and (pycor < -10) [set pcolor white]
  36.   if(pycor > -10) and (pycor < -8) [set pcolor white]
  37.  
  38.   if(pycor > -2) and (pycor < 0) [set pcolor white]
  39.   if(pycor > 0) and (pycor < 2) [set pcolor white]
  40.  
  41.  
  42.   if(pycor > 8) and (pycor < 10) [set pcolor white]
  43.   if(pycor > 10) and (pycor < 12) [set pcolor white]
  44. end
  45.  
  46. to setup-vertical-roads ;; creaza drumurile verticale
  47.   if(pxcor > -8) and (pxcor < -6) [set pcolor white]
  48.   if(pxcor > -6) and (pxcor < -4) [set pcolor white]
  49.  
  50.   if(pxcor > 4) and (pxcor < 6) [set pcolor white]
  51.   if(pxcor > 6) and (pxcor < 8) [set pcolor white]
  52. end
  53.  
  54. to setup-semaphores
  55.  
  56.   ;; semafoare drumuri orizontale
  57.  
  58.   ;; stanga
  59.   if(pxcor = -8) and (pycor = -12) [set pcolor red]
  60.   if(pxcor = -8) and (pycor = -2) [set pcolor red]
  61.   if(pxcor = -8) and (pycor = 8) [set pcolor red]
  62.  
  63.   if(pxcor = -4) and (pycor = -8) [set pcolor red]
  64.   if(pxcor = -4) and (pycor = 2) [set pcolor red]
  65.   if(pxcor = -4) and (pycor = 12) [set pcolor red]
  66.  
  67.   ;; dreapta
  68.   if(pxcor = 4) and (pycor = -12) [set pcolor red]
  69.   if(pxcor = 4) and (pycor = -2) [set pcolor red]
  70.   if(pxcor = 4) and (pycor = 8) [set pcolor red]
  71.  
  72.   if(pxcor = 8) and (pycor = -8) [set pcolor red]
  73.   if(pxcor = 8) and (pycor = 2) [set pcolor red]
  74.   if(pxcor = 8) and (pycor = 12) [set pcolor red]
  75.  
  76.   ;; semafoare drumuri verticale
  77.  
  78.   ;; stanga
  79.   if(pxcor = -8) and (pycor = 12) [set pcolor green]
  80.   if(pxcor = -8) and (pycor = 2) [set pcolor green]
  81.   if(pxcor = -8) and (pycor = -8) [set pcolor green]
  82.  
  83.   if(pxcor = -4) and (pycor = 8) [set pcolor green]
  84.   if(pxcor = -4) and (pycor = -2) [set pcolor green]
  85.   if(pxcor = -4) and (pycor = -12) [set pcolor green]
  86.  
  87.   ;;dreapta
  88.   if(pxcor = 4) and (pycor = 12) [set pcolor green]
  89.   if(pxcor = 4) and (pycor = 2) [set pcolor green]
  90.   if(pxcor = 4) and (pycor = -8) [set pcolor green]
  91.  
  92.   if(pxcor = 8) and (pycor = 8) [set pcolor green]
  93.   if(pxcor = 8) and (pycor = -2) [set pcolor green]
  94.   if(pxcor = 8) and (pycor = -12) [set pcolor green]
  95.  
  96. end
  97.  
  98. to setup-cars
  99.  
  100.   ;;masini care merg spre dreapta
  101.   create-turtles random 10
  102.   [
  103.     set shape "car"
  104.     set color yellow
  105.     setxy random-xcor -11
  106.   ]
  107.  
  108.   create-turtles random 10
  109.   [
  110.     set shape "car"
  111.     set color blue
  112.     setxy random-xcor -1
  113.   ]
  114.  
  115.  
  116.   create-turtles random 10
  117.   [
  118.     set shape "car"
  119.     set color pink
  120.     setxy random-xcor 9
  121.   ]
  122.  
  123.   ;; masini care merg spre stanga
  124.    create-turtles random 10
  125.   [
  126.     set shape "car-rev"
  127.     set color pink
  128.     setxy random-xcor -9
  129.   ]
  130.  
  131.   create-turtles random 10
  132.   [
  133.     set shape "car-rev"
  134.     set color pink
  135.     setxy random-xcor 1
  136.   ]
  137.  
  138.   create-turtles random 10
  139.   [
  140.     set shape "car-rev"
  141.     set color pink
  142.     setxy random-xcor 11
  143.   ]  
  144.   ;; masini care merg in sus
  145.  
  146.   create-turtles random 10
  147.   [
  148.     set shape "car-up"
  149.     set color pink
  150.     setxy 7 random-ycor
  151.   ]
  152.  
  153.   create-turtles random 10
  154.   [
  155.     set shape "car-up"
  156.     set color pink
  157.     setxy -5 random-ycor
  158.   ]
  159.  
  160.   ;; masini care merg in jos
  161.  
  162.   create-turtles random 10
  163.   [
  164.     set shape "car-down"
  165.     set color pink
  166.     setxy 5 random-ycor
  167.   ]
  168.  
  169.  
  170.   create-turtles random 10
  171.   [
  172.     set shape "car-down"
  173.     set color pink
  174.     setxy -7 random-ycor
  175.   ]
  176.  
  177. end
  178.  
  179. to move-cars-horizontal
  180.   ;; la atatea tickuri distanta se misca o masina o unitate
  181.   if ticks mod 50000 = 0
  182.   [
  183.     ask turtles [
  184.       if(what-semaphores? = false) [
  185.         if(shape = "car") [ set xcor xcor + 1 ]
  186.         if(shape = "car-rev") [ set xcor xcor - 1]
  187.       ]
  188.      
  189.       if(what-semaphores? = true) [
  190.         if(shape = "car-up") [ set ycor ycor + 1]
  191.         if(shape = "car-down") [set ycor ycor - 1]
  192.       ]
  193.     ]
  194.   ]
  195. end
  196.  
  197. to move-cars-vertical
  198.   ask turtles [
  199.     ;; increment y
  200.   ]
  201. end
  202.  
  203. to change-semaphores
  204.   ask patches[
  205.     ;; metoda paharelor
  206.     if(pcolor = green) [ set pcolor yellow]
  207.     if(pcolor = red) [set pcolor green]
  208.     if(pcolor = yellow) [set pcolor red]
  209.    
  210.      
  211.     if(what-semaphores? = true)
  212.     [
  213.       set w-s? false
  214.     ]
  215.    
  216.     if(what-semaphores? = false)
  217.     [
  218.       set w-s? true
  219.     ]
  220.    
  221.     set what-semaphores? w-s?
  222.   ]
  223.  
  224. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement