progress on day 21, pt 2
This commit is contained in:
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