advent-of-code/21/21.awk

29 lines
407 B
Awk

{
pos[$2] = $5
}
END{
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]<1000 && score[2]<1000)
if(score[1]>=1000){
print rollcount*score[2]
}
else{
print rollcount*score[1]
}
}