Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- io = require("stdio")
- print = console.log
- gen_num = 1
- gen = ->
- v = Math.round(Math.random()*5000)
- v = gen_num + 1
- gen_num = v
- v
- p =
- acc: " "
- stack: []
- cob: (a,b) ->
- print("\tCOB #{a} #{b}")
- @
- if: (a, state) ->
- print("\tST#{state} #{a}")
- @
- if_do: (a, state, run) ->
- print("\tST#{state} #{a}")
- id = "if_over_#{gen()}"
- @jmp("L", id) if state=="H"
- @jmp("H", id) if state=="L"
- run() if run?
- print "#{id}:"
- @
- acc_set: (state) ->
- print("\tACC #{state}")
- @
- com: (a, force=false) ->
- @acc_set("H") if force
- print "\tcom #{a}"
- @
- set: (a, state, force=false) ->
- print("\tACC #{state}") if @acc != state or force
- @acc = state
- print("\tOUT #{a}")
- @
- jmp: (state, label) ->
- print("\tJR #{state} #{label}")
- @
- jmp_if: (a, state, label) ->
- print("\tSTH #{a}")
- print("\tJR #{state} #{label}")
- @
- label: (name) ->
- print("#{name}:")
- @
- while: (a, state, run) ->
- id = gen()
- begin = "while_#{id}"
- end = "while_end_#{id}"
- print("#{begin}:")
- @stack.push([begin, end])
- @jmp_if(a,state,end)
- run() if run?
- @stack.pop()
- @acc_set("H")
- @jmp("H", begin)
- print("#{end}:")
- @
- break: ->
- @acc_set("H")
- @jmp("H", @stack[@stack.length-1][1])
- @
- start_timer: (name, secs) ->
- print "\tLD #{name} #{secs*100}"
- @
- end: ->
- print "ECOB"
- print("-----------------------------------")
- p.cob(0,0).
- if_do("button", "H", -> p.
- start_timer("timer", 1).
- while("timer", "H", -> p.
- jmp_if("button", "L", "end")
- ).
- com("output")
- ).
- label("end").
- end()
- print("-----------------------------------")
- Times=
- wait_on_green: 1
- wait_on_yellow: 2
- wait_on_red: 2
- go_on_green: 3
- run_on_green: 1
- back_to_red: 1
- back_to_yellow: 1
- blink: 0.2
- # p.cob(0, 0).
- # set("car_red", "L").
- # set("car_yellow", "L").
- # set("ped_green", "L").
- # set("ped_red", "H").
- # set("car_red", "H").
- # while("button", "L", -> p.
- # set("gp", "L")
- # ).
- #
- # start_timer("timer", Times.wait_on_green).
- # while("time_wait", "H").
- #
- # start_timer("timer", Times.wait_on_yellow).
- # set("car_red", "L", true).
- # set("car_yellow", "H").
- # while("time_wait", "H").
- #
- # start_timer("timer", Times.wait_on_red).
- # set("car_yellow", "L", true).
- # set("car_red", "H").
- # while("time_wait", "H").
- #
- # start_timer("timer", Times.go_on_green).
- # set("ped_red", "L", true).
- # set("ped_green", "H").
- # while("time_wait", "H").
- #
- # start_timer("timer", Times.run_on_green).
- # start_timer("blink", Times.blink).
- # while("time_wait", "H", -> p.
- # if_do("blink", "L", -> p.
- # start_timer("blink", Times.blink).
- # com("ped_green")
- # )
- # ).
- # start_timer("timer", Times.back_to_red).
- # set("ped_red", "H", true).
- # set("ped_green", "L").
- # while("time_wait", "H").
- #
- # start_timer("timer", Times.back_to_yellow).
- # set("car_yellow", "H", true).
- # while("time_wait", "H").
- #
- # start_timer("timer", Times.back_to_green).
- # set("ped_red", "L", true).
- # set("ped_yellow", "L").
- # set("ped_green", "H").
- # while("time_wait", "H").
- #
- # end()
- #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement