 
     go: (steps) =>
         steps = 1 if steps is undefined
-        log "Go #{steps} steps."
+        # log "Go #{steps} steps."
         @gameState.move steps
 
     turn: (dir) =>
-        log "turn '#{dir}'"
+        # log "turn '#{dir}'"
         return if dir is undefined
         d = $.inArray(dir, ['N','E','S','W'])
         if d >= 0

        @gameManager.gameWon @score, @stars
        return

    move: (steps) ->
        # Bits are more fun that lookup tables or a switch
        # sign is positive 1 for North00, East01, and -1 for South10, West11
        [sign, isEastOrWest] = [1  - (@protagonist.dir & 2), @protagonist.dir & 1]
        @protagonist.x += sign if isEastOrWest
        @protagonist.y += sign unless isEastOrWest

        if @protagonist.x == @target.x and @protagonist.y * -1 == @target.y
            @gameWon()
        @gameVisual.gridMove @protagonist.index, steps
        return

    turnRight: ->

        return

    turnRight: =>
        # log "turnRight"
        @gameState.turnRight()
        return

    turnLeft: =>
        # log "turnLeft"
        @gameState.turnLeft()
        return

    turnAndGo: (direction, steps) =>
        # log "turnAndGo #{direction} #{steps}"
        @turn direction
        @go steps
        return
