Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- breed [cars car]
- patches-own [ what-semaphores? w-s? ] ;;implicit merg semafoarele strazilor orizontale
- to setup
- clear-all
- ask patches
- [ setup-road
- set what-semaphores? true
- ]
- setup-cars
- reset-ticks
- end
- to go
- move-cars-horizontal
- if (ticks = 1000000)
- [
- change-semaphores
- reset-ticks
- ]
- tick
- end
- to setup-road
- set pcolor brown
- setup-horizontal-roads
- setup-vertical-roads
- setup-semaphores
- end
- to setup-horizontal-roads ;; creeaza drumurile orizontale
- if(pycor > -12) and (pycor < -10) [set pcolor white]
- if(pycor > -10) and (pycor < -8) [set pcolor white]
- if(pycor > -2) and (pycor < 0) [set pcolor white]
- if(pycor > 0) and (pycor < 2) [set pcolor white]
- if(pycor > 8) and (pycor < 10) [set pcolor white]
- if(pycor > 10) and (pycor < 12) [set pcolor white]
- end
- to setup-vertical-roads ;; creaza drumurile verticale
- if(pxcor > -8) and (pxcor < -6) [set pcolor white]
- if(pxcor > -6) and (pxcor < -4) [set pcolor white]
- if(pxcor > 4) and (pxcor < 6) [set pcolor white]
- if(pxcor > 6) and (pxcor < 8) [set pcolor white]
- end
- to setup-semaphores
- ;; semafoare drumuri orizontale
- ;; stanga
- if(pxcor = -8) and (pycor = -12) [set pcolor red]
- if(pxcor = -8) and (pycor = -2) [set pcolor red]
- if(pxcor = -8) and (pycor = 8) [set pcolor red]
- if(pxcor = -4) and (pycor = -8) [set pcolor red]
- if(pxcor = -4) and (pycor = 2) [set pcolor red]
- if(pxcor = -4) and (pycor = 12) [set pcolor red]
- ;; dreapta
- if(pxcor = 4) and (pycor = -12) [set pcolor red]
- if(pxcor = 4) and (pycor = -2) [set pcolor red]
- if(pxcor = 4) and (pycor = 8) [set pcolor red]
- if(pxcor = 8) and (pycor = -8) [set pcolor red]
- if(pxcor = 8) and (pycor = 2) [set pcolor red]
- if(pxcor = 8) and (pycor = 12) [set pcolor red]
- ;; semafoare drumuri verticale
- ;; stanga
- if(pxcor = -8) and (pycor = 12) [set pcolor green]
- if(pxcor = -8) and (pycor = 2) [set pcolor green]
- if(pxcor = -8) and (pycor = -8) [set pcolor green]
- if(pxcor = -4) and (pycor = 8) [set pcolor green]
- if(pxcor = -4) and (pycor = -2) [set pcolor green]
- if(pxcor = -4) and (pycor = -12) [set pcolor green]
- ;;dreapta
- if(pxcor = 4) and (pycor = 12) [set pcolor green]
- if(pxcor = 4) and (pycor = 2) [set pcolor green]
- if(pxcor = 4) and (pycor = -8) [set pcolor green]
- if(pxcor = 8) and (pycor = 8) [set pcolor green]
- if(pxcor = 8) and (pycor = -2) [set pcolor green]
- if(pxcor = 8) and (pycor = -12) [set pcolor green]
- end
- to setup-cars
- ;;masini care merg spre dreapta
- create-turtles random 10
- [
- set shape "car"
- set color yellow
- setxy random-xcor -11
- ]
- create-turtles random 10
- [
- set shape "car"
- set color blue
- setxy random-xcor -1
- ]
- create-turtles random 10
- [
- set shape "car"
- set color pink
- setxy random-xcor 9
- ]
- ;; masini care merg spre stanga
- create-turtles random 10
- [
- set shape "car-rev"
- set color pink
- setxy random-xcor -9
- ]
- create-turtles random 10
- [
- set shape "car-rev"
- set color pink
- setxy random-xcor 1
- ]
- create-turtles random 10
- [
- set shape "car-rev"
- set color pink
- setxy random-xcor 11
- ]
- ;; masini care merg in sus
- create-turtles random 10
- [
- set shape "car-up"
- set color pink
- setxy 7 random-ycor
- ]
- create-turtles random 10
- [
- set shape "car-up"
- set color pink
- setxy -5 random-ycor
- ]
- ;; masini care merg in jos
- create-turtles random 10
- [
- set shape "car-down"
- set color pink
- setxy 5 random-ycor
- ]
- create-turtles random 10
- [
- set shape "car-down"
- set color pink
- setxy -7 random-ycor
- ]
- end
- to move-cars-horizontal
- ;; la atatea tickuri distanta se misca o masina o unitate
- if ticks mod 50000 = 0
- [
- ask turtles [
- if(what-semaphores? = false) [
- if(shape = "car") [ set xcor xcor + 1 ]
- if(shape = "car-rev") [ set xcor xcor - 1]
- ]
- if(what-semaphores? = true) [
- if(shape = "car-up") [ set ycor ycor + 1]
- if(shape = "car-down") [set ycor ycor - 1]
- ]
- ]
- ]
- end
- to move-cars-vertical
- ask turtles [
- ;; increment y
- ]
- end
- to change-semaphores
- ask patches[
- ;; metoda paharelor
- if(pcolor = green) [ set pcolor yellow]
- if(pcolor = red) [set pcolor green]
- if(pcolor = yellow) [set pcolor red]
- if(what-semaphores? = true)
- [
- set w-s? false
- ]
- if(what-semaphores? = false)
- [
- set w-s? true
- ]
- set what-semaphores? w-s?
- ]
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement