From dc2182e0d1fc2d0ca712a3acfefde568f5cf1869 Mon Sep 17 00:00:00 2001 From: sejo Date: Tue, 21 Dec 2021 01:25:43 -0600 Subject: [PATCH] progress on day 21, pt 2 --- 21/21_2.awk | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 21/Makefile | 14 +++++ 2 files changed, 160 insertions(+) create mode 100644 21/21_2.awk create mode 100644 21/Makefile diff --git a/21/21_2.awk b/21/21_2.awk new file mode 100644 index 0000000..b0364e1 --- /dev/null +++ b/21/21_2.awk @@ -0,0 +1,146 @@ +{ + pos[$2] = $5 +} +END{ + for(i=0;i<27;i++){ + n2 = int(i/9) + n1 = int( (i%9)/3 ) + n0 = int( (i%9)%3 ) + sum = n2+n1+n0+3 + c[sum]++ + print n2+1, n1+1, n0+1, "=", sum + } + print "roll result : amount of times /27" + for(sum in c){ + print sum,":",c[sum] + } + + for(turn=1;turn<=2;turn++){ + print "starting with",pos[turn] + for(i=3;i<=9;i++){ + p=pos[turn]; sc=0 + print "incrementing",i + for(j=1;j<=15;j++){ + p = 1 + (p-1+i)%10 + sc+=p + printf "%d ", p + if(sc>=21) break + } + printf ": %d in %d",sc, j + print "" + } + print "----" + } + expn = 6 + maxwonturns=0 + for(i=0;i<7^expn;i++){ + r = i + for(e=0;e=0;e--){ + n[e] += 3 + printf "%d ",n[e] + } + print "" + + p1 = pos[1]; p2 = pos[2] + s1 = 0; s2 = 0; + nu = 0; + swon = 0 + for(j=expn-1;j>=0;j--){ + p1 = 1 + (p1-1+n[j])%10 + s1 += p1 + p2 = 1 + (p2-1+n[j])%10 + s2 += p2 + nu += c[ n[j] ] + print p1,s1, p2,s2 + if(s1>=21){ + print "p1 won", s1, nu, expn-j + won[1]++; + wonu[1] += nu + swon = 1 + break + } + if(s2>=21){ + print "p2 won", s2, nu, expn-j + wonu[2] += nu + won[2]++ + swon = 1 + break + } + } + if(!swon){ + print "no one won" + break + } else{ + if(maxwonturns test