summaryrefslogtreecommitdiff
path: root/day1/part2.TXT
blob: 59e033fa793e5aa3b9b4580eae75df8ad8c1bc23 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
\START92\
\COMMENT=Single file dated Tue Dec  2 23:21:07 20
\NAME=part2
\FILE=day1.part2.92f
(inp,position)
Func
Local pos1,pos2,curr,direct,step,result
0\->\result
1\->\pos1
While pos1<dim(inp)
 inString(inp," ",pos1)\->\pos2
 If pos2<1 Then
  dim(inp)+1\->\pos2
 EndIf
 mid(inp,pos1,pos2-pos1)\->\curr
 pos2+1\->\pos1
 If dim(curr)=0 Then
  continue
 EndIf
 expr(right(curr,dim(curr)-1))\->\step
 left(curr,1)\->\direct
 If direct="L" Then
  mod(100-position,100)\->\position
  position+step\->\position
  result+floor(position/100)\->\result
  mod(100-position,100)\->\position
 ElseIf direct="R" Then
  position+step\->\position
  result+floor(position/100)\->\result
  mod(position,100)\->\position
 Else
  Return {\(-)\1,position}
 EndIf
EndWhile

Return {result,position}
EndFunc

\STOP92\