progress on day 21, pt 2

This commit is contained in:
sejo 2021-12-21 01:25:43 -06:00
parent 7e403be225
commit dc2182e0d1
2 changed files with 160 additions and 0 deletions

146
21/21_2.awk Normal file
View File

@ -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<expn;e++){
n[e] = int((r%(7^(e+1)))/7^e)
r -= n[e]
}
printf "running %d: ",i
for(e=expn-1;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<expn-j) maxwonturns=expn-j
}
}
print won[1], won[2], won[1]+won[2], 7^expn
print wonu[1], wonu[2]
print maxwonturns
exit
turn = 1
roll= 1
rollcount = 0
do{
r=0
for(i=1;i<=3;i++){
r += roll
roll = roll%100 + 1
rollcount++
}
pos[turn] = 1+(pos[turn]-1+r)%10
score[turn] += pos[turn]
# print roll,turn, pos[turn],score[turn]
turn = (turn==1) ? 2 : 1
}while(score[1]<21 && score[2]<21)
print rollcount, score[1], score[2]
}
#roll result : amount of times /27
#3 : 1
#4 : 3
#5 : 6
#6 : 7
#7 : 6
#8 : 3
#9 : 1
# 1 1 1 = 3
# 1 1 2 = 4
# 1 1 3 = 5
# 1 2 1 = 4
# 1 2 2 = 5
# 1 2 3 = 6
# 1 3 1 = 5
# 1 3 2 = 6
# 1 3 3 = 7
# 2 1 1
# 2 1 2
# 2 1 3
# 2 2 1
# 2 2 2
# 2 2 3
# 2 3 1
# 2 3 2
# 2 3 3
# 3 1 1
# 3 1 2
# 3 1 3
# 3 2 1
# 3 2 2
# 3 2 3
# 3 3 1
# 3 3 2
# 3 3 3

14
21/Makefile Normal file
View File

@ -0,0 +1,14 @@
1t:
awk -f 21.awk test
1i:
awk -f 21.awk input
2t:
awk -f 21_2.awk test
2i:
awk -f 21_2.awk input
paste:
xclip -sel c -o > test