package turtleonestep;

/**
 * @author Burt Rosenberg
 * @version 12 June 2002
 * Copyright (c) 2002 Burt Rosenberg. All rights reserved
 */

public class TurtleModel {

    private static final int STEP_AMOUNT = 3 ;

    ModelView mv ;

    int x ;
    int y ;
    int dir ;

    void setModelView( ModelView mv ) {
       this.mv = mv ;
    }

    int getX() { return x ; }
    int getY() { return y ; }
    int getDirection() { return dir ; }

    void spinTurtle(int dd) { // dir delta, +1 or -1
       if ( dd==-1 ) dd = 3 ;
       else dd = 1 ;
       dir = (dir + dd) % 4 ;
       mv.repaint() ;
    }

    void moveTurtle(int l) {
       switch ( dir ) {
          case 0 : x += STEP_AMOUNT ; break ;
          case 1 : y -= STEP_AMOUNT ; break ;
          case 2 : x -= STEP_AMOUNT ; break ;
          case 3 : y += STEP_AMOUNT ; break ;
       }
       mv.repaint() ;
    }

    void moveToCenter() {
       x = mv.getWidth()/2 ;
       y = mv.getHeight()/2 ;
    }

}