FLP/Ukol1 2012

Z OI wiki

Přejít na: navigace, hledání

Vstupy a výstupy pro robota.

Podle řádků: state, expr, program, limit, požadovaný výstup

sample01 'The right hand side rule program.'

(((w w w w w w) (w 0 w 0 w w) (w 0 w 0 0 w) (w 0 0 0 w w) (w w w w w w)) (1 1) west)
start
((procedure start (turn-right (if wall? (turn-left (if wall? (turn-left (if wall? turn-left step)) step)) step) put-mark start)) (procedure turn-right (turn-left turn-left turn-left turn-left turn-left)))
3
input
(simulate '(((w w w w w w) (w 0 w 0 w w) (w 0 w 0 0 w) (w 0 0 0 w w) (w w w w w w)) (1 1) west) 'start '((procedure start (turn-right (if wall? (turn-left (if wall? (turn-left (if wall? turn-left step)) step)) step) put-mark start)) (procedure turn-right (turn-left turn-left turn-left turn-left turn-left))) 
output
((turn-left turn-left turn-left turn-left turn-left turn-left turn-left step put-mark turn-left turn-left turn-left turn-left turn-left turn-left turn-left step put-mark) (((w w w w w w) (w 0 w 0 w w) (w 1 w 0 0 w) (w 1 0 0 w w) (w w w w w w)) (1 3) southeast))

sample02 'The turn north program.'

(((w w w) (w 0 w) (w 0 w) (w w w)) (1 2) southwest)
turn-west
((procedure turn-west (if west? () (turn-left turn-west))))
4
input
(simulate '(((w w w) (w 0 w) (w 0 w) (w w w)) (1 2) southwest) 'turn-west '((procedure turn-west (if west? () (turn-left turn-west)))) 4)
output
((turn-left turn-left turn-left turn-left) (((w w w) (w 0 w) (w 0 w) (w w w)) (1 2) northwest))

sample03 'Several commands without any program.'

(((w w w) (w 0 w) (w 0 w) (w w w)) (1 2) northeast)
(step put-mark put-mark turn-left)
()
3
input
(simulate '(((w w w) (w 0 w) (w 0 w) (w w w)) (1 2) northeast) '(step put-mark put-mark turn-left) '() 3)
output
((step put-mark put-mark turn-left) (((w w w) (w 2 w) (w 0 w) (w w w)) (1 1) northwest))

sample04 'The binary counter program.'

(((w w w w w w) (w 0 0 0 0 w) (w w w w w w)) (4 1) west)
(add-one add-one add-one add-one add-one)
((procedure add-one (if mark? (get-mark step add-one turn-180 step turn-180) (put-mark))) (procedure turn-180 (turn-left turn-left turn-left)))
30
input
(simulate '(((w w w w w w) (w 0 0 0 0 w) (w w w w w w)) (4 1) west) '(add-one add-one add-one add-one add-one) '((procedure add-one (if mark? (get-mark step add-one turn-180 step turn-180) (put-mark))) (procedure turn-180 (turn-left turn-left turn-left))) 30)
output
((put-mark get-mark step put-mark turn-left turn-left turn-left step turn-left turn-left turn-left put-mark get-mark step get-mark step put-mark turn-left turn-left turn-left step turn-left turn-left turn-left turn-left turn-left turn-left step turn-left turn-left turn-left put-mark) (((w w w w w w) (w 0 1 0 1 w) (w w w w w w)) (4 1) west))

sample05 'The Robot versus wall program.'

(((w w w) (w 0 w) (w w w)) (1 1) west)
step
()
1
input
(simulate '(((w w w) (w 0 w) (w w w)) (1 1) west) 'step '() 1)
output
(() (((w w w) (w 0 w) (w w w)) (1 1) west))

sample06 'The Robot's journey, or there and back again.'

(((w w w) (w 0 w) (w 0 w) (w 0 w) (w 0 w) (w 0 w) (w w w)) (1 4) southwest)
(go go)
((procedure go (if wall? (turn-left turn-left turn-left) (step go step))))
2
input
(simulate '(((w w w) (w 0 w) (w 0 w) (w 0 w) (w 0 w) (w 0 w) (w w w)) (1 4) southwest) '(go go) '((procedure go (if wall? (turn-left turn-left turn-left) (step go step)))) 2)
output
((turn-left turn-left turn-left step turn-left turn-left turn-left step) (((w w w) (w 0 w) (w 0 w) (w 0 w) (w 0 w) (w 0 w) (w w w)) (1 4) southwest))

sample07 'A very hard sample.'

(((w w w w w w w w w) (w 3 0 w 0 0 0 0 w) (w w 0 w 0 w w 0 w) (w 0 1 0 0 0 0 8 w) (w w 0 0 0 w w 0 w) (w 0 5 0 w 0 1 0 w) (w 4 w 0 w 1 7 0 w) (w w w w w w w w w)) (4 1) west)
add-mark-to-maze
((procedure add-mark-to-maze (if mark? (get-mark (if mark? (put-mark) (put-mark put-mark (if wall? () (step add-mark-to-maze step-back)) turn-left (if wall? () (step add-mark-to-maze step-back)) turn-left (if wall? () (step add-mark-to-maze step-back)) turn-left turn-left (if wall? () (step add-mark-to-maze step-back)) turn-left (if wall? () (step add-mark-to-maze step-back)) turn-left get-mark))) (put-mark add-mark-to-maze get-mark))) (procedure step-back (turn-left turn-left turn-left step turn-left turn-left turn-left)))
20
input
(simulate '(((w w w w w w w w w) (w 3 0 w 0 0 0 0 w) (w w 0 w 0 w w 0 w) (w 0 1 0 0 0 0 8 w) (w w 0 0 0 w w 0 w) (w 0 5 0 w 0 1 0 w) (w 4 w 0 w 1 7 0 w) (w w w w w w w w w)) (4 1) west) 'add-mark-to-maze '((procedure add-mark-to-maze (if mark? (get-mark (if mark? (put-mark) (put-mark put-mark (if wall? () (step add-mark-to-maze step-back)) turn-left (if wall? () (step add-mark-to-maze step-back)) turn-left (if wall? () (step add-mark-to-maze step-back)) turn-left turn-left (if wall? () (step add-mark-to-maze step-back)) turn-left (if wall? () (step add-mark-to-maze step-back)) turn-left get-mark))) (put-mark add-mark-to-maze get-mark))) (procedure step-back (turn-left turn-left turn-left step turn-left turn-left turn-left))) 20)
output
((put-mark get-mark put-mark put-mark turn-left step put-mark get-mark put-mark put-mark step put-mark get-mark put-mark put-mark step put-mark get-mark put-mark put-mark step get-mark put-mark turn-left turn-left turn-left step turn-left turn-left turn-left turn-left step put-mark get-mark put-mark put-mark turn-left turn-left step put-mark get-mark put-mark put-mark step put-mark get-mark put-mark put-mark turn-left step get-mark put-mark turn-left turn-left turn-left step turn-left turn-left turn-left turn-left step get-mark put-mark turn-left turn-left turn-left step turn-left turn-left turn-left turn-left turn-left turn-left step put-mark get-mark put-mark put-mark step put-mark get-mark put-mark put-mark step get-mark put-mark turn-left turn-left turn-left step turn-left turn-left turn-left turn-left step put-mark get-mark put-mark put-mark step) (((w w w w w w w w w) (w 3 0 w 2 0 0 0 w) (w w 0 w 2 w w 2 w) (w 0 1 2 2 2 2 8 w) (w w 0 2 2 w w 0 w) (w 0 5 2 w 0 1 0 w) (w 4 w 0 w 1 7 0 w) (w w w w w w w w w)) (7 1) northeast))

sample08 'A binary arithmetic program.'

(((w w w w w w w) (w 0 0 1 1 w w) (w w 0 1 1 0 w) (w w w w w w w)) (4 1) west)
add
((procedure add (sub-one turn-180 go turn-right step turn-right turn-right add-one turn-180 go turn-left turn-left step turn-left add)) (procedure add-one (if mark? (get-mark step add-one turn-180 step turn-180) (put-mark))) (procedure sub-one (if mark? (get-mark) (put-mark step sub-one turn-180 step turn-180))) (procedure turn-180 (turn-left turn-left turn-left)) (procedure turn-right (turn-left turn-left turn-left turn-left turn-left)) (procedure go (if wall? () (step go))))
100

input
(simulate '(((w w w w w w w) (w 0 0 1 1 w w) (w w 0 1 1 0 w) (w w w w w w w)) (4 1) west) 'add '((procedure add (sub-one turn-180 go turn-right step turn-right turn-right add-one turn-180 go turn-left turn-left step turn-left add)) (procedure add-one (if mark? (get-mark step add-one turn-180 step turn-180) (put-mark))) (procedure sub-one (if mark? (get-mark) (put-mark step sub-one turn-180 step turn-180))) (procedure turn-180 (turn-left turn-left turn-left)) (procedure turn-right (turn-left turn-left turn-left turn-left turn-left)) (procedure go (if wall? () (step go)))) 100)
output
((get-mark turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left step turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left put-mark turn-left turn-left turn-left turn-left turn-left step turn-left put-mark step get-mark turn-left turn-left turn-left step turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left step turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left get-mark step get-mark step get-mark step put-mark turn-left turn-left turn-left step turn-left turn-left turn-left turn-left turn-left turn-left step turn-left turn-left turn-left turn-left turn-left turn-left step turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left step turn-left get-mark turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left step turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left turn-left put-mark turn-left turn-left turn-left turn-left turn-left step turn-left put-mark step put-mark step put-mark step put-mark) (((w w w w w w w) (w 1 1 1 1 w w) (w w 1 0 0 1 w) (w w w w w w w)) (1 1) west))
Events Upcoming
More »