progress on day 21, pt 2
parent
7e403be225
commit
dc2182e0d1
@ -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
|
@ -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
|
Loading…
Reference in New Issue