• # un bout de AWK

    Posté par . En réponse au message Avent du Code, jour 10. Évalué à 4.

    Je me suis laissé emporté par le python du jour 9.
    Le problème du jour passe très bien en AWK.

    part 1, 11 lines

    BEGIN { x=1 }
    function inc() {
     c+=1
     S += index("20,60,100,140,180,220,", c ",")>0 ? x*c : 0
    }
    { inc() }
    $1 == "addx" {
     inc()
     x+=$2
    }
    END { print S }

    part 2, 20 lines

    BEGIN { x=1 }
    function inc() {
     i = (c%40)
     A[c+1] = (i==x-1||i==x||i==x+1) ? "█" : "░"
     c+=1
    }
    { inc() }
    $1 == "addx" {
     inc()
     x+=$2
    }
    END {
     for (i=0;i<=5;i++) {
     r = ""
     for (j=1;j<=40;j++) {
     r = r A[i*40+j]
     }
     print r
     }
    }