parse2 = ship => ins => {
let shipclone = clone(ship)
const op = ins.substring(0,1)
const param = +ins.substring(1)
let wheading = Math.atan2(shipclone.wy, shipclone.wx)
let dist = Math.sqrt(Math.pow(shipclone.wx,2) + Math.pow(shipclone.wy,2))
switch(op) {
case "N":
shipclone.wy-=param
break;
case "S":
shipclone.wy+=param
break;
case "E":
shipclone.wx+=param
break;
case "W":
shipclone.wx-=param
break;
case "F":
shipclone.x += Math.cos(wheading) * param * dist
shipclone.y += Math.sin(wheading) * param * dist
break;
case "L":
wheading-=radians(param)
shipclone.wx = Math.cos(wheading) * dist
shipclone.wy = Math.sin(wheading) * dist
break;
case "R":
wheading+=radians(param)
shipclone.wx = Math.cos(wheading) * dist
shipclone.wy = Math.sin(wheading) * dist
break;
}
return shipclone
}