# randomwalk: simple finite state machine for TD learning.  (random walk)

vector StateSeq Nsequence
scalar State
define Terminal0 0
define Terminal1 (Nstate-1)
define Start Nstate/2
scalar prob 0.5		# probability of going to the right.
procedure nextInput layer input expr isEnd expr outcome
    State += randomstate(prob)*2 - 1
    push State StateSeq
    isEnd = FALSE
    if State == Terminal1 do
	outcome = 1
	isEnd = TRUE
	here end
    endif
    if State == Terminal0 do
	outcome = 0
	isEnd = TRUE
	here end
    endif
    input[State-1] = 1;
end

procedure initState
    State = Start
    StateSeq = 0
    push State StateSeq
end
