Anonymous user
Stair-climbing puzzle: Difference between revisions
Fixed Prolog to match requirements
m (minor fix to reporting in Prolog implementation) |
(Fixed Prolog to match requirements) |
||
Line 910:
=={{header|Prolog}}==
The robot code is very short
<lang Prolog>
nb_setval(level, 1),▼
The test program keeps track of the level in a dynamic predicate.
<lang Prolog>:- dynamic level/1.
setup :-
assert(level(1)).
step :-
random_between(0,3,N),
(
Line 928:
succ(NewLevel, Level), format('Fell down to ~d~n', NewLevel)
),
assert(level(NewLevel)),
N > 0. % Fail if 0 because that is a non step up.</lang>
{{out}}
<pre>
?- setup, between(1,10,_), step_up, fail.
Climbed up to 2
Climbed up to 3
Line 939 ⟶ 940:
Fell down to 4
Climbed up to 5
Climbed up to 6
Climbed up to 7
Climbed up to 8
Climbed up to
false.
▲Fell down to 9
▲Climbed up to 10
?-
</pre>
|