]> code.bitgloo.com Git - clyne/advent-of-code.git/commitdiff
add day 3
authorClyne Sullivan <clyne@bitgloo.com>
Sat, 3 Dec 2022 15:26:52 +0000 (10:26 -0500)
committerClyne Sullivan <clyne@bitgloo.com>
Sat, 3 Dec 2022 15:26:52 +0000 (10:26 -0500)
day3/part1.bas [new file with mode: 0644]
day3/part2.bas [new file with mode: 0644]

diff --git a/day3/part1.bas b/day3/part1.bas
new file mode 100644 (file)
index 0000000..dc73234
--- /dev/null
@@ -0,0 +1,32 @@
+REM Advent of Code 2022: Day 3, part 1
+REM Written in Applesoft BASIC
+
+ 10  ONERR  GOTO 900
+ 20 PT = 0
+ 30  PRINT  CHR$ (4),"OPEN INPUT"
+ 40  PRINT  CHR$ (4),"READ INPUT"
+ 100 S$ = ""
+ 110  GET C$: GET D$
+ 120  IF  ASC (C$) = 13 GOTO 200
+ 130 S$ = S$ + C$
+ 140  GOTO 110
+ 200 L =  LEN (S$) / 2
+ 210 LS$ =  LEFT$ (S$,L)
+ 220 RS$ =  RIGHT$ (S$,L)
+ 230 LL =  LEN (LS$)
+ 240 RL =  LEN (RS$)
+ 250  FOR I = 1 TO LL
+ 260  FOR J = 1 TO RL
+ 270  IF  MID$ (LS$,I,1) =  MID$ (RS$,J,1) GOTO 400
+ 280  NEXT J
+ 290  NEXT I
+ 400 PR =  ASC ( MID$ (LS$,I,1))
+ 410 PR = PR - 64
+ 420  IF PR > 32 THEN PP = PR - 32
+ 430  IF PR < 32 THEN PP = PR + 26
+ 440 PT = PT + PP
+ 450  PRINT "FOUND: "; MID$ (LS$,I,1);" PRIO ";PP;"    TOTAL: ";PT
+ 500  GOTO 100
+ 900  PRINT  CHR$ (4),"CLOSE"
+ 910  END 
+
diff --git a/day3/part2.bas b/day3/part2.bas
new file mode 100644 (file)
index 0000000..ba4e7b9
--- /dev/null
@@ -0,0 +1,39 @@
+REM Advent of Code 2022: Day 3, part 2
+REM Written in Applesoft BASIC
+
+ 10  ONERR  GOTO 900
+ 20 PT = 0:SN = 0:GN = 1
+ 30  PRINT  CHR$ (4),"OPEN INPUT"
+ 40  PRINT  CHR$ (4),"READ INPUT"
+ 100 S$ = ""
+ 110  GET C$: GET D$
+ 120  IF  ASC (C$) = 13 GOTO 200
+ 130 S$ = S$ + C$
+ 140  GOTO 110
+ 200  IF SN = 0 THEN X$ = S$:SN = 1: GOTO 100
+ 210  IF SN = 1 THEN Y$ = S$:SN = 2: GOTO 100
+ 220 Z$ = S$
+ 230 SN = 0
+ 240  PRINT "SEARCHING GROUP ";GN;"'s RUCKSACKS..."
+ 250 GN = GN + 1
+ 300  FOR I = 1 TO  LEN (X$)
+ 310  FOR J = 1 TO  LEN (Y$)
+ 320  IF  MID$ (X$,I,1) =  MID$ (Y$,J,1) GOTO 340
+ 330  NEXT J: NEXT I
+ 340  FOR J = 1 TO  LEN (Z$)
+ 370  IF  MID$ (X$,I,1) =  MID$ (Z$,J,1) GOTO 400
+ 380  NEXT J: NEXT I
+ 400 XC$ =  MID$ (X$,I,1)
+ 410 PR =  ASC (XC$)
+ 420 PR = PR - 64
+ 430  IF PR > 32 THEN PP = PR - 32
+ 440  IF PR < 32 THEN PP = PR + 26
+ 450 PT = PT + PP
+ 460  PRINT "FOUND ITEM TYPE FOR GROUP ";GN - 1;"'S BADGES: ";XC$
+ 470  PRINT "APPLYING AUTHENTICITY STICKERS..."
+ 480  FOR Q = 1 TO 1000: NEXT Q
+ 490  PRINT "PRIORITY TOTAL IS NOW ";PT
+ 499  GOTO 100
+ 900  PRINT  CHR$ (4),"CLOSE"
+ 910  END 
+