Java :a user-defined starting position (other than 0,0)

Assignment Help JAVA Programming
Reference no: EM13162885

modifying the program so that it can start from a user-defined starting position (other than 0,0) and search for a user defined ending point (other than row-1, column-1) .

 

import java.util.*;
import java.io.*;

public class Maze
{
    private static final int TRIED = 2;
    private static final int PATH = 3;


    private int [][] grid = { {1,1,1,0,1,1,0,0,0,1,1,1,1},
            {1,0,0,1,1,0,1,1,1,1,0,0,1},
            {1,1,1,1,1,0,1,0,1,0,1,0,0},
            {0,0,0,0,1,1,1,0,1,0,1,1,1},
            {1,1,1,0,1,1,1,0,1,0,1,1,1},
            {1,0,1,0,0,0,0,1,1,1,0,0,1},
            {1,0,1,1,1,1,1,1,0,1,1,1,1},
            {1,0,0,0,0,0,0,0,0,0,0,0,0},
            {1,1,1,1,1,1,1,1,1,1,1,1,1} };
  
   

    /**
     * Marks the specified position in the maze as TRIED
     *
     * @param row the index of the row to try
     * @param col the index of the column to try
     */
    public void tryPosition(int row, int col)
    {
        grid[row][col] = TRIED;
    }
   
    /**
     * Return the number of rows in this maze
     *
     * @return the number of rows in this maze
     */
    public int getRows()
    {
        return grid.length;
    }
   
    /**
     * Return the number of columns in this maze
     *
     * @return the number of columns in this maze
     */
    public int getColumns()
    {
        return grid[0].length;
    }

    /**
     * Marks a given position in the maze as part of the PATH
     *
     * @param row the index of the row to mark as part of the PATH
     * @param col the index of the column to mark as part of the PATH
     */
    public void markPath(int row, int col)
    {
        grid[row][col] = PATH;
    }

    /**
     * Determines if a specific location is valid. A valid location
     * is one that is on the grid, is not blocked, and has not been TRIED.
     *
     * @param row the row to be checked
     * @param column the column to be checked
     * @return true if the location is valid   
     */
    public boolean validPosition(int row, int column)
    {
        boolean result = false;

        // check if cell is in the bounds of the matrix
        if (row >= 0 && row < grid.length &&
            column >= 0 && column < grid[row].length)

            // check if cell is not blocked and not previously tried
            if (grid[row][column] == 1)
                result = true;

        return result;
    }

    /**
     * Returns the maze as a string.
     *
     * @return a string representation of the maze
     */
    public String toString()
    {
        String result = "\n";

        for (int row=0; row < grid.length; row++)
        {
            for (int column=0; column < grid[row].length; column++)
                result += grid[row][column] + "";
            result += "\n";
        }

        return result;
    }
private Maze maze;
   
    /**
     * Constructor for the MazeSolver class.
     * @return
     */
    public void MazeSearch(Maze maze)
    {
        this.maze = maze;
    }

public boolean traverse()
{
    boolean done = false;
    int row, column;
    Position pos = new Position();
    Deque<Position> stack = new LinkedList<Position>();
    stack.push(pos);
   
    while (!(done) && !stack.isEmpty())
    {
        pos = stack.pop();
        maze.tryPosition(pos.getx(),pos.gety()); // this cell has been tried
        if ((pos).GetX() == maze.getRows()-1 && pos.gety() == maze.getColumns()-1)
            done = true; // the maze is solved
        else
        {
            push_new_pos(pos.getx() - 1,pos.gety(), stack);
            push_new_pos(pos.getx() + 1,pos.gety(), stack);
            push_new_pos(pos.getx(),pos.gety() - 1, stack);
            push_new_pos(pos.getx(),pos.gety() + 1, stack);
        }
        if (done)
            maze.markPath(pos.getx(),pos.gety());
    }
   
    return done;
}
private void push_new_pos(int x, int y,
        Deque<Position> stack)
{
Position npos = new Position();
npos.setx(x);
npos.sety(y);
if (maze.validPosition(x,y))
stack.push(npos);
}
}

 

Reference no: EM13162885

Questions Cloud

Calculate the frequency of light : Calculate the frequency (in Hz) of light necessary to move an electron in a He+ ion from the n =2 to n =4 energy level. The Rydberg constant for a helium ion is R = 4.390 x 107 m-1
How many grams of water was in the sample : 67 g of ice at 0 degree C added to a sample of water at 6 degrees, all the ice melts and decreases to 0 degrees. how many grams of water was in the sample?
What is the approximate value of ka for the acid : A student dissolves 1.01 grams of nicotinic acid, C_6_H_5_NO_2_, in water to give 60 mL of solution having a pH of 2.67. What is the approximate value of Ka for the acid based on this observation?
Describe how a crystal of alum differs from potassium : In the chemical formula for alu, there are 12 water molecules present. It is also possible to prepare the anhydrous compound potassium aluminum sulfate. On the "molecular scale" describe how a crystal of alum differs from a crystal of potassium al..
Java :a user-defined starting position (other than 0,0) : modifying the program so that it can start from a user-defined starting position (other than 0,0) and search for a user defined ending point (other than row-1, column-1) .
Profit marketing strategies to nonprofit organization : What are the primary drivers for applying for-profit marketing strategies to a nonprofit organization?
Conservation biologists and wildlife specialists argue : Most conservation biologists and wildlife specialists argue that the Endangered Species Act of 1973 could be made more effective if whole threatened habitats are protected rather than just individual species (that is, the "Sanctuary Approach"). By sa..
State derive an expression for the instantaneous temperature : Derive an expression for the instantaneous temperature as a function of the instantaneous pressure, and use it to sketch T/Ti vs P/Pi.
Discuss the different poetic techniques and themes : Discuss the different poetic techniques, themes, and the uses of language in the poetry of Shakespeare, Blake, Whitman, Dickinson, Frost, and Rich?

Reviews

Write a Review

JAVA Programming Questions & Answers

  Recursive factorial program

Write a class Array that encapsulates an array and provides bounds-checked access. Create a recursive factorial program that prompts the user for an integer N and writes out a series of equations representing the calculation of N!.

  Hunt the wumpus game

Reprot on Hunt the Wumpus Game has Source Code listing, screen captures and UML design here and also, may include Javadoc source here.

  Create a gui interface

Create GUI Interface in java programing with these function: Sort by last name and print all employees info, Sort by job title and print all employees info, Sort by weekly salary and print all employees info, search by job title and print that emp..

  Plot pois on a graph

Write a JAVA program that would get the locations of all the POIs from the file and plot them on a map.

  Write a university grading system in java

University grading system maintains number of tables to store, retrieve and manipulate student marks. Write a JAVA program that would simulate a number of cars.

  Wolves and sheep: design a game

This project is designed a game in java. you choose whether you'd like to write a wolf or a sheep agent. Then, you are assigned to either a "sheep" or a "wolf" team.

  Build a graphical user interface for displaying the image

Build a graphical user interface for displaying the image groups (= cluster) in JMJRST. Design and implement using a Swing interface.

  Determine the day of the week for new year''s day

This assignment contains a java project. Project evaluates the day of the week for New Year's Day.

  Write a java windowed application

Write a Java windowed application to do online quiz on general knowledge and the application also displays the quiz result.

  Input pairs of natural numbers

Java program to input pairs of natural numbers.

  Create classes implement java interface

Interface that contains a generic type. Create two classes that implement this interface.

  Java class, array, link list , generic class

These 14 questions covers java class, Array, link list , generic class.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd