Maze

download Maze

If you can't read please download the document

description

Maze Sample test

Transcript of Maze

import java.io.*;import java.util.Scanner;public class Maze{ private int rows; private int columns; private String [][] maze; private int marioRow; private int marioColumn; private int targetRow; private int targetColumn; private int moves; public Maze ( String fileName )throws IOException { Scanner file = new Scanner ( new FileReader (fileName) ); rows = file.nextInt(); columns = file.nextInt(); file.nextLine(); maze = new String[rows][columns]; for ( int r = 0; r < rows ; r++ ) { String s = file.nextLine(); for ( int c = 0; c < columns; c++ ) { String character = s.charAt(c) + ""; maze[r][c] = character; if ( maze[r][c].equals("M")) { marioRow = r; marioColumn = c; } if ( maze[r][c].equals("X")) { targetRow = r; targetColumn = c; } }//close forloop }//close forloop file.close(); }//close maze constructor public void printMaze() { for ( int r = 0; r < rows; r++) { for ( int c = 0; c < columns; c++ ) { System.out.print(maze[r][c]); } System.out.println(); } } public void moveUp() { if ( marioRow - 1 < 0 ) { System.out.println("Invalid move"); } else if ( maze[marioRow - 1][marioColumn].equals("+") ) { System.out.println("Invalid move"); } else { maze [marioRow][marioColumn] = "."; marioRow--; moves++; maze[marioRow][marioColumn] = "M"; } } public void moveDown() { if ( marioRow + 1 == rows ) { System.out.println("Invalid move"); } else if ( maze[marioRow +1][marioColumn].equals("+")) { System.out.println("Invalid move"); } else { maze[marioRow][marioColumn] = "."; marioRow++; moves++; maze[marioRow][marioColumn] = "M"; } } public void moveLeft() { if (marioColumn - 1 < 0 ) { System.out.println("Invalid move"); } else if (maze[marioRow][marioColumn - 1].equals("+")) { System.out.println("Invalid move"); } else { maze[marioRow][marioColumn] = "."; marioColumn--; moves++; maze[marioRow][marioColumn] = "M"; } } public void moveRight() { if (marioColumn + 1 == columns ) { System.out.println("Invalid move"); } else if ( maze[marioRow][marioColumn + 1].equals("+") ) { System.out.println("Invalid move"); } else { maze[marioRow][marioColumn] = "."; marioColumn++; moves++; maze[marioRow][marioColumn] = "M"; } } public boolean isSolved() { return marioRow == targetRow && marioColumn == targetColumn; } public int getMoves() { return this.moves; } }//end class