All pastes #482763 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-11 12:11 UTC
rendered paste body
import greenfoot.*;  // imports Actor, World, Greenfoot, GreenfootImage

import java.util.List;
import java.util.ArrayList;
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;
import javax.swing.*;

public class Etch extends Mouse
{
        //set values for all directions
        private int direction;
        private static final int NORTH = 1;
        private static final int EAST = 2;
        private static final int SOUTH = 3;
        private static final int WEST = 4;
        //set up wall number int
        int wallNumber;
        //set up routes and shortest path ints
        int routeValue = 0;
        int shortPathValue = 0;
        //set up boolean for reached center
        boolean reachedCenter = false;
        //set up arrays
        int visited[][]  = new int [16][16];
        int route[][] = new int [16][16];
        int path[][] = new int [16][16];
        int deadEnd[][] = new int [16][16];
        int returnPath[][] = new int [16][16];
        
        public Etch()
        {
            //Mouse information for the scorer
            super("Etch","Ryan","Orcimsoft");
            //Scale and set image for use on the maze
            GreenfootImage i = new GreenfootImage( "images/tux.png" ); 
            i.scale( 20, 20 );
            setImage( i );
            setDirection(NORTH);
        }


        public void act()
        {
             //check if any of the center squares have been visited
             if (route[7][7]==0 || route[7][8]==0 ||route [8][8]==0 || route [8][7]==0)
             {   
                 reachedCenter = false; //set reachedCenter as false if not
             }
             
             if (canMove())
             {
                move();
                getWalls();
             }
        }//end act
        public void move()
        {
            int cellX = getX()/4;
            int cellY = getY()/4;
            //have we reached center?
            reachedCenterC();
            //add number to visited trail so provides number path
            visited[cellX][cellY] = visited[cellX][cellY] + 1;
            //set value of first cell to first number in route
            route[0][15] = 1;
            
            
        }//end move
        
        //all the main move methods - left, right, return home.
        
        public void moveLeft()
        {
            int x = getX();
            int y = getY();
            World myWorld = getWorld();
            
            switch(direction) {
            case SOUTH :
                setDirection(EAST);
                setLocation(getX() + 4, getY());
                break;
            case EAST :
                setDirection(NORTH);
                setLocation(getX(), getY() - 4);
                break;
            case NORTH :
                setDirection(WEST);
                setLocation(getX() - 4, getY());
                break;
            case WEST :
                setDirection(SOUTH);
                setLocation(getX(), getY() + 4);
                break;
            }
       }//end move left
       
       public void moveRight()
       {   
              int x = getX();
              int y = getY();
              World myWorld = getWorld();
            
              switch(direction) {
              case SOUTH :
              setDirection(WEST);
              setLocation(getX()-4, getY() );
              break;
              
              case EAST :
              setDirection(SOUTH);
              setLocation(getX(), getY() + 4);
              break;
              
              case NORTH :
              setDirection(EAST);
              setLocation(getX()+4, getY() );
              break; 
              
              case WEST :
              setDirection(NORTH);
              setLocation(getX(), getY() - 4);
              break;
            }
        } //end move right
       
       //end all the main move methods section
        
             
        public boolean canMove()
        {
            World myWorld = getWorld();
            //get x and y co-ords and change to cell values
            int x = getX();
            int y = getY();
            int cellX = getX()/4;
            int cellY = getY()/4;
       
        //check for outsideborder
        if (x >= myWorld.getWidth() || y >= myWorld.getHeight())
        {
            return false;
        }
        else if (x < 0 || y < 0) 
        {
            return false;
        }

        return true;
        }//end canMove
        
        public void reachedCenterC()
        {
               if ((visited[7][7])>(visited[0][15]))
               {
                     reachedCenter = true;
                     route[0][15] = 0;
               } 
               else 
               { 
                   reachedCenter = false;
               };
          }//end reachedCenterC
        
        public void getWalls()
        {
               World myWorld = getWorld();
               //get x and y co-ords and change to cell values
               int x = getX();
               int y = getY();
               int cellX = getX()/4;
               int cellY = getY()/4;
               //get surrounding wall information
               List northBrick = myWorld.getObjectsAt(x,y-2, Brick.class);
               List eastBrick = myWorld.getObjectsAt(x+2,y, Brick.class);
               List southBrick = myWorld.getObjectsAt(x,y+2, Brick.class);
               List westBrick = myWorld.getObjectsAt(x-2,y, Brick.class);
               //wall number set to 4 and then value removed later
               wallNumber = 4;
               //remove one from the wall number for each wall around cell
               if (northBrick.isEmpty())
               {
                   wallNumber--;
               }
               if (eastBrick.isEmpty())
               {
                   wallNumber--;
               }
               if (southBrick.isEmpty())
               {
                   wallNumber--;
               }
               if (westBrick.isEmpty())
               {
                   wallNumber--;
               }
                  
            }//end checkWalls
            
      public void setDirection(int direction)
            {
             this.direction = direction;
             switch(direction) 
                {
                    case SOUTH :
                    setRotation(90);
                    break;
                    case EAST :
                    setRotation(0);
                    break;
                    case NORTH :
                    setRotation(270);
                    break;
                    case WEST :
                    setRotation(180);
                    break;
                    default :
                    break;
                }
            }//end setDirection

}//end class bracket