#!/usr/bin/env tclsh set x 0; set y 0; set face 0 while {[gets stdin line] >= 0} { if {$line eq ""} continue set op [string index $line 0] set n [string range $line 1 end] switch -- $op { N { incr y -$n } S { incr y $n } E { incr x $n } W { incr x -$n } L { set turn [expr {-1 * $n/90}] set face [expr {($face + $turn) % 4}] } R { set turn [expr {$n/90}] set face [expr {($face + $turn) % 4}] } F { switch -- $face { 0 { # East incr x $n } 1 { # South incr y $n } 2 { # West incr x -$n } 3 { # North incr y -$n } } } } } if {$x < 0} {set x [expr {-1 * $x}]} if {$y < 0} {set y [expr {-1 * $y}]} puts [expr {$x + $y}]