FLP/Ukol2 2012

Z OI wiki

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

Vstupy a výstupy pro program evaluate

Podle řádků: programs, pairs, treshold, stack size

sample01-Right hand side rule program

(((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))) ((procedure start (put-mark (if wall? turn-left step) start))) ((procedure start (step step 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) southwest) (((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) northeast)) ((((w w w w w w) (w 0 w 0 w w) (w 0 w 2 0 w) (w 1 3 0 w w) (w w w w w w)) (3 3) northwest) (((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) northeast)))
(20 20 20 20)
5

output

(((8 7 5 1) ((procedure start (step step step put-mark)))) ((18 8 6 20) ((procedure start (put-mark (if wall? turn-left step) start)))))

sample02-Several programs for putting one mark at the end

(((procedure start put-mark)) ((procedure start (if wall? put-mark step))) ((procedure start (if wall? put-mark (step start)))) ((procedure start (if wall? put-mark (step start turn-left turn-left step turn-left turn-left)))))
(((((w w w) (w 0 w) (w w w)) (1 1) southeast) (((w w w) (w 1 w) (w w w)) (1 1) southeast)) ((((w w w w) (w 0 w w) (w w 0 w) (w w w w)) (1 1) southeast) (((w w w w) (w 0 w w) (w w 1 w) (w w w w)) (1 1) southeast)) ((((w w w w w w) (w 0 w w w w) (w w 0 w w w) (w w 0 w w w) (w w w 0 w w) (w w w 0 w w) (w w w w 0 w) (w w w w 0 w) (w w w w w w)) (1 1) southeast) (((w w w w w w) (w 0 w w w w) (w w 0 w w w) (w w 0 w w w) (w w w 0 w w) (w w w 0 w w) (w w w w 0 w) (w w w w 1 w) (w w w w w w)) (1 1) southeast)))
(50 50 50 50)
20

output

(((0 11 5 10) ((procedure start (if wall? put-mark (step start))))) ((0 13 10 14) ((procedure start (if wall? put-mark (step start turn-left turn-left step turn-left turn-left))))) ((2 4 4 3) ((procedure start (if wall? put-mark step)))) ((4 0 2 3) ((procedure start put-mark))))

sample03-A very huge sample

(((procedure start (if mark? (get-mark step start turn-180 step turn-180) (put-mark))) (procedure turn-180 (turn-left turn-left turn-left))) ((procedure start put-mark)) ((procedure start (if wall? put-mark step))) ((procedure start (if wall? put-mark (step start)))) ((procedure start (if wall? put-mark (step start turn-left turn-left step turn-left turn-left)))) ((procedure start (if wall? (turn-left start turn-left turn-left turn-left) go-and-return)) (procedure go-and-return (if wall? put-mark (step go-and-return turn-left turn-left step turn-left turn-left)))) ((procedure turn-right (turn-left turn-left turn-left)) (procedure start (if wall? (turn-left (if wall? (turn-left (if wall? (turn-left go-and-return turn-right) go-and-return) turn-right) go-and-return) turn-right) go-and-return)) (procedure go-and-return (if wall? put-mark (step go-and-return turn-left turn-left step turn-left turn-left)))) ((procedure start fill-maze) (procedure fill-maze (if mark? () (put-mark (if wall? () (step fill-maze step-back)) turn-left (if wall? () (step fill-maze step-back)) turn-left turn-left (if wall? () (step fill-maze step-back)) turn-left))) (procedure step-back (turn-left turn-left turn-left step turn-left turn-left turn-left))) ((procedure start 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 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))) ((procedure start ())) ((procedure start (go-west go)) (procedure go (if wall? (turn-left go) (step go-west go))) (procedure go-west (if west? () (turn-left go-west)))) ((procedure start (turn-west go)) (procedure go (if wall? () (step go))) (procedure turn-west (if west? () (turn-left turn-west)))))
(((((w w w) (w 3 w) (w w w)) (1 1) southeast) (((w w w) (w 3 w) (w w w)) (1 1) southeast)) ((((w w w) (w 4 w) (w 4 w) (w w w)) (1 2) southeast) (((w w w) (w 4 w) (w 4 w) (w w w)) (1 2) southeast)) ((((w w w w w w w w) (w 0 0 0 0 0 0 w) (w 0 0 0 0 0 0 w) (w 0 w w 0 w 0 w) (w 0 w 0 0 w 0 w) (w 0 w 0 0 w 0 w) (w 0 w w w w 0 w) (w 0 0 0 0 0 0 w) (w 0 0 0 0 0 0 w) (w w w w w w w w)) (1 8) southeast) (((w w w w w w w w) (w 0 0 0 0 0 0 w) (w 0 0 0 0 0 0 w) (w 0 w w 0 w 0 w) (w 0 w 0 0 w 0 w) (w 0 w 0 0 w 0 w) (w 0 w w w w 0 w) (w 0 0 0 0 0 0 w) (w 0 0 0 0 0 0 w) (w w w w w w w w)) (1 8) southeast)) ((((w w w w w w w w) (w 1 1 1 1 1 1 w) (w 1 1 1 1 1 1 w) (w 1 w w 9 w 1 w) (w 1 w 1 1 w 1 w) (w 1 w 1 1 w 1 w) (w 1 w w w w 1 w) (w 1 1 1 1 1 1 w) (w 1 1 1 1 1 1 w) (w 1 1 1 1 1 1 w) (w 1 1 1 1 1 1 w) (w w w w 1 w 1 w) (w 1 w 1 1 w 1 w) (w 1 w 1 1 w 1 w) (w 1 w w w w 1 w) (w 1 1 w 1 1 1 w) (w 1 1 1 1 w 1 w) (w w w w w w w w)) (1 16) east) (((w w w w w w w w) (w 1 1 1 1 1 1 w) (w 1 1 1 1 1 1 w) (w 1 w w 9 w 1 w) (w 1 w 1 1 w 1 w) (w 1 w 1 1 w 1 w) (w 1 w w w w 1 w) (w 1 1 1 1 1 1 w) (w 1 1 1 1 1 1 w) (w 1 1 1 1 1 1 w) (w 1 1 1 1 1 1 w) (w w w w 1 w 1 w) (w 1 w 1 1 w 1 w) (w 1 w 1 1 w 1 w) (w 1 w w w w 1 w) (w 1 1 w 1 1 1 w) (w 1 1 1 1 w 1 w) (w w w w w w w w)) (1 16) east)) ((((w w w w w w w w w w w) (w 0 0 0 0 0 0 0 0 0 w) (w w w w w 0 w w w 0 w) (w w w w w 0 w w w 0 w) (w 0 0 0 0 0 0 0 w 0 w) (w 0 0 0 0 0 w 0 w 0 w) (w w 0 w w 0 w 0 w 0 w) (w w 0 w 0 0 w 0 w 0 w) (w w 0 w w w w 0 w 0 w) (w w 0 0 0 0 0 0 w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w 0 0 0 0 0 0 0 0 0 w) (w w w w w w w w w w w)) (2 9) east) (((w w w w w w w w w w w) (w 0 0 0 0 0 0 0 0 0 w) (w w w w w 0 w w w 0 w) (w w w w w 0 w w w 0 w) (w 0 0 0 0 0 0 0 w 0 w) (w 0 0 0 0 0 w 0 w 0 w) (w w 0 w w 0 w 0 w 0 w) (w w 0 w 0 0 w 0 w 0 w) (w w 0 w w w w 0 w 0 w) (w w 0 0 0 0 0 0 w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w 0 0 0 0 0 0 0 0 0 w) (w w w w w w w w w w w)) (2 4) northwest)))
(107 500 9999 9999)
999

output

(((0 6 1 0) ((procedure start ()))) ((0 8 14 7788) ((procedure start (go-west go)) (procedure go (if wall? (turn-left go) (step go-west go))) (procedure go-west (if west? () (turn-left go-west))))) ((0 10 11 18) ((procedure start (turn-west go)) (procedure go (if wall? () (step go))) (procedure turn-west (if west? () (turn-left turn-west))))) ((3 8 4 5) ((procedure start (if wall? put-mark step)))) ((4 23 18 1059) ((procedure start (if wall? (turn-left start turn-left turn-left turn-left) go-and-return)) (procedure go-and-return (if wall? put-mark (step go-and-return turn-left turn-left step turn-left turn-left))))) ((5 6 2 5) ((procedure start put-mark))) ((5 14 5 13) ((procedure start (if wall? put-mark (step start))))) ((5 14 10 22) ((procedure start (if wall? put-mark (step start turn-left turn-left step turn-left turn-left))))) ((5 22 28 73) ((procedure turn-right (turn-left turn-left turn-left)) (procedure start (if wall? (turn-left (if wall? (turn-left (if wall? (turn-left go-and-return turn-right) go-and-return) turn-right) go-and-return) turn-right) go-and-return)) (procedure go-and-return (if wall? put-mark (step go-and-return turn-left turn-left step turn-left turn-left))))) ((8 9 13 11) ((procedure start (if mark? (get-mark step start turn-180 step turn-180) (put-mark))) (procedure turn-180 (turn-left turn-left turn-left)))) ((14 19 29 59) ((procedure start fill-maze) (procedure fill-maze (if mark? () (put-mark (if wall? () (step fill-maze step-back)) turn-left (if wall? () (step fill-maze step-back)) turn-left turn-left (if wall? () (step fill-maze step-back)) turn-left))) (procedure step-back (turn-left turn-left turn-left step turn-left turn-left turn-left)))) ((28 24 37 151) ((procedure start 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 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)))))


sample04-Another useful sample

(((procedure start (turn-left (if wall? (turn-right (if wall? (turn-right (if wall? turn-right step)) step)) step) put-mark start)) (procedure turn-right (turn-left turn-left turn-left turn-left turn-left))) ((procedure start put-mark)) ((procedure start (if wall? put-mark step))) ((procedure start add) (procedure add (sub-one turn-180 go turn-right step turn-right turn-right add-one turn-180 go turn-left step turn-left add)) (procedure add-one (if mark? (get-mark (if wall? (turn-180 go turn-180) (step add-one))) (put-mark))) (procedure sub-one (if mark? (get-mark) (put-mark (if wall? (turn-180 go turn-right step (if wall? turn-right (turn-right sub-one))) (step sub-one))))) (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)))) ((procedure start (go-west go)) (procedure go (if wall? (turn-left go) (step go-west go))) (procedure go-west (if west? () (turn-left go-west)))) ((procedure start (turn-west go)) (procedure go (if wall? () (step go))) (procedure turn-west (if west? () (turn-left turn-west)))))
(((((w w w) (w 0 w) (w w w)) (1 1) west) (((w w w) (w 0 w) (w w w)) (1 1) northwest)) ((((w w w) (w 1 w) (w 0 w) (w w w)) (1 2) west) (((w w w) (w 1 w) (w 0 w) (w w w)) (1 1) northwest)) ((((w w w w w w w w) (w 0 0 1 1 w w w) (w w 0 0 0 1 w w) (w w 0 0 0 1 w w) (w w w 0 0 1 0 w) (w w w 0 1 0 1 w) (w w w w w w w w)) (6 5) west) (((w w w w w w w w) (w 0 0 1 1 w w w) (w w 0 0 0 1 w w) (w w 0 0 0 1 w w) (w w w 0 0 1 0 w) (w w w 0 1 0 1 w) (w w w w w w w w)) (4 1) northwest)) ((((w w w w w w w w w w w) (w 0 0 0 0 0 0 0 0 0 w) (w w w w w 0 w w w 0 w) (w w w w w 0 w w w 0 w) (w 0 0 0 0 0 0 0 w 0 w) (w 0 0 0 0 0 w 0 w 0 w) (w w 0 w w 0 w 0 w 0 w) (w w 0 w 0 0 w 0 w 0 w) (w w 0 w w w w 0 w 0 w) (w w 0 0 0 0 0 0 w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w 0 0 0 0 0 0 0 0 0 w) (w w w w w w w w w w w)) (2 9) east) (((w w w w w w w w w w w) (w 0 0 0 0 0 0 0 0 0 w) (w w w w w 0 w w w 0 w) (w w w w w 0 w w w 0 w) (w 0 0 0 0 0 0 0 w 0 w) (w 0 0 0 0 0 w 0 w 0 w) (w w 0 w w 0 w 0 w 0 w) (w w 0 w 0 0 w 0 w 0 w) (w w 0 w w w w 0 w 0 w) (w w 0 0 0 0 0 0 w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w w w w w w w w w 0 w) (w 0 0 0 0 0 0 0 0 0 w) (w w w w w w w w w w w)) (2 4) northwest)))
(200 80 200 150)
5

output

(((0 15 11 6) ((procedure start (turn-west go)) (procedure go (if wall? () (step go))) (procedure turn-west (if west? () (turn-left turn-west))))) ((0 16 14 19) ((procedure start (go-west go)) (procedure go (if wall? (turn-left go) (step go-west go))) (procedure go-west (if west? () (turn-left go-west))))) ((2 16 4 4) ((procedure start (if wall? put-mark step)))) ((4 16 2 4) ((procedure start put-mark))) ((6 19 56 33) ((procedure start add) (procedure add (sub-one turn-180 go turn-right step turn-right turn-right add-one turn-180 go turn-left step turn-left add)) (procedure add-one (if mark? (get-mark (if wall? (turn-180 go turn-180) (step add-one))) (put-mark))) (procedure sub-one (if mark? (get-mark) (put-mark (if wall? (turn-180 go turn-right step (if wall? turn-right (turn-right sub-one))) (step sub-one))))) (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))))))
Events Upcoming
More »