Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7569745
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 30, 20262026-05-30T15:14:35+00:00 2026-05-30T15:14:35+00:00

I am creating a maze game. For that I have created 4 separate class

  • 0

I am creating a maze game. For that I have created 4 separate class files. I’d like to know how I can access the inmates of Maze.class in Player.class move() method and not just read it but also add to it and overwrite it:

Maze.class

package y1;

import java.util.*;

@SuppressWarnings(value = "all")

public class Maze {
private Room entry;
private Map <Room, ArrayList<Player>> inmates=new HashMap<Room,ArrayList<Player>>();
/**
 * 
 * @param r The room that is going to be the entry
 */
public void setEntry(Room r){
    this.entry=r;
    }
/**
 * 
 * @return Returns the entry room
 */
    public Room getEntry(){
        return this.entry;
    }
    /**
     * Method adds a player to the maze
    * @param p Player to be added to the maze
    */
    public void addPlayer(Player p){
        ArrayList<Player> players=new ArrayList<Player>();
        p.setRoom(getEntry());
        if (this.inmates.isEmpty()==true){
        players.add(p);
        this.inmates.put(this.entry,players);
        }
        else{
        players=this.inmates.get(this.entry);
        players.add(p);
        }

        this.inmates.put(p.getRoom(), players);

    }
    public void getPlayers(Room r){
        if(this.inmates.get(r)!=null){
        System.out.println(Arrays.asList(this.inmates.get(r)));
        }
        else{
        System.out.println("Ruum on tühi");

        }
    }
    public Map getInmates(){
        return this.inmates;
    }
}

Room.class

package y1;

import java.util.*;

@SuppressWarnings(value = "all")
public class Room {

private String name;
private Room north;
private Room east;
private Room west;
private Room south;
private boolean isExit = false;
private boolean isPortal = false;
private Maze maze;

/**
 * @return Returns the name of the room
 */
public String getName() {
    return this.name;
}

/**
 * Sets room name
 * 
 * @param name
 */
public void setName(String name) {
    this.name = name;
}

/**
 * Gets northern room if any
 * 
 * @return pointer to northern room if any, otherwise <code>null</code>
 */
public Room getNorth() {
    return this.north;
}

/**
 * Sets the door to the next room to the north in that room and in the other
 * room sets southern door as connecting back to that room
 * 
 * @param otherRoom
 */
public void setNorth(Room otherRoom) {
    this.north = otherRoom;
    otherRoom.south = this;
}
public Room getSouth() {
    return this.south;
}

/**
 * Sets the door to the next room to the south in that room and in the other
 * room sets northern door as connecting back to that room
 * 
 * @param otherRoom
 */
public void setSouth(Room otherRoom) {
    this.south = otherRoom;
    otherRoom.north = this;
}
public Room getEast() {
    return this.east;
}

/**
 * Sets the door to the next room to the east in that room and in the other
 * room sets western door as connecting back to that room
 * 
 * @param otherRoom
 */
public void setEast(Room otherRoom) {
    this.east = otherRoom;
    otherRoom.west = this;
}
public Room getWest() {
    return this.west;
}

/**
 * Sets the door to the next room to the west in that room and in the other
 * room sets eastern door as connecting back to that room
 * 
 * @param otherRoom
 */
public void setWest(Room otherRoom) {
    this.west = otherRoom;
    otherRoom.east = this;
}
/**
 * Returns the room in the given direction
 * 
 * @param Which way to move?
 * @return The room in that direction.
 */
public Room get(String direction){
    Room dir=this;
    if(direction=="N" && this.north!=null){
        dir=dir.getNorth();
        return dir;
    }
    else if(direction=="W" && this.west!=null){
        dir=dir.getWest();
        return dir;
    }
    else if(direction=="E" && this.east!=null){
        dir=dir.getEast();
        return dir;
    }
    else if(direction=="S" && this.south!=null){
        dir=dir.getSouth();
        return dir;
    }
    else{
        return dir;
    }


}
/**
 * Returns the room that givens coordinates point to
 * 
 * @param dirlist List of directions
 * @return returns Returns the room it stops in
 */
public Room get(List<String> dirlist){
    Room dir=this;
    if (validate(dirlist)==true){
        for(int i=0;i<dirlist.size();i++){
            if(dirlist.get(i)=="N"){
                dir=dir.getNorth();
            }
            else if(dirlist.get(i)=="W"){
                dir=dir.getWest();
            }
            else if(dirlist.get(i)=="E"){
                dir=dir.getEast();
            }
            else if(dirlist.get(i)=="S"){
                dir=dir.getSouth();
            }
        }
    }
    return dir;     
}


/**
 * creates a new room to the north and connects back to this room
 * 
 * @param toa nimi
 *            0
 * @return uus tuba
 */
public Room createNorth(String name) {
    Room otherRoom = null;

    // Creates new room only when no room lies ahead in this direction
    if (this.getNorth() == null) { // Checks north - if nothing there then new room is create
        otherRoom = new Room(); // Creates new room
        this.setNorth(otherRoom); // Creates door between rooms
        otherRoom.setName(name); // Names the room

    } else { // If room already exists then prints alert message
        System.out.println("Room already exist!");
    }

    return otherRoom;
}
public Room createSouth(String name) {
    Room otherRoom = null;
    if (this.getSouth() == null) {
        otherRoom = new Room();
        this.setSouth(otherRoom); 
        otherRoom.setName(name);

    } else {
        System.out.println("Room already exists!");
    }

    return otherRoom;
}
public Room createEast(String name) {
    Room otherRoom = null;
    if (this.getEast() == null) {
        otherRoom = new Room();
        this.setEast(otherRoom);
        otherRoom.setName(name);

    } else {
        System.out.println("Room already exists!");
    }

    return otherRoom;
}
public Room createWest(String name) {
    Room otherRoom = null;
    if (this.getWest() == null) {
        otherRoom = new Room();
        this.setWest(otherRoom);
        otherRoom.setName(name);

    } else {
        System.out.println("Room already exists!");
    }

    return otherRoom;
}
public void setExit(){
    this.isExit=true;
}

public void setPortalA(){
    this.isPortal=true;
}
public boolean validate(List<String> pathList){
    Room check = this;
    boolean value=false;
    for(int i = 0;i<pathList.size();i++){
        if(pathList.get(i)=="N" && check.north!=null){
            check=check.north;
            value=true;
        }
        else if(pathList.get(i)=="S" && check.south!=null){
            check=check.south;
            value=true;
        }
        else if(pathList.get(i)=="W" && check.west!=null){
            check=check.west;
            value=true;
        }
        else if(pathList.get(i)=="E" && check.east!=null){
            check=check.east;
            value=true;
        }
        else{ 
            value = false;
            System.out.println("Can't move in the given directions!");
        }
    }
    return value;       
}

@Override
public String toString() {
    return this.getName();
}

}

and Player.class

package y1;

import java.util.*;

public class Player {
private String name;
private Room location;

public void setRoom(Room r){
    this.location=r;
}
public Room getRoom(){
    System.out.println(this.name+" is at " +this.location);
    return this.location;

}


public Room move(String dir){
    Player p=this;
    if(dir=="N" && this.location.getNorth()!=null){
        p.location=p.location.getNorth();
    }
    else if(dir=="S" && this.location.getSouth()!=null){
        p.location=p.location.getSouth();
    }
    else if(dir=="W" && this.location.getWest()!=null){
        p.location=p.location.getWest();
    }
    else if(dir=="E" && this.location.getEast()!=null){
        p.location=p.location.getEast();
    }
    else{
        System.out.println("There's a wall in the way!");
    }
    return this.location;   
}
public Room move(List<String> dirList){
    Player player=this;
        for(int i=0 ; i<dirList.size() ; i++){
            if(dirList.get(i)=="N" && player.location.getNorth()!=null){
                player.location=player.location.getNorth();
            }
            else if(dirList.get(i)=="S" && player.location.getSouth()!=null){
                player.location=player.location.getSouth();
            }
            else if(dirList.get(i)=="W" && player.location.getWest()!=null){
                player.location=player.location.getWest();
            }
            else if(dirList.get(i)=="E" && player.location.getEast()!=null){
                player.location=player.location.getEast();
            }   
            else{
                System.out.println("Wall in the way. Stopping!");
                break;
            }
        }
    return this.location;   
}

public void setName(String n){
    this.name=n;
}


@Override
public String toString() {
    return this.name;
}

}

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-30T15:14:37+00:00Added an answer on May 30, 2026 at 3:14 pm

    The player needs to have a reference in some way to the Maze object in order to call the getInmates() method (or any other modifier method) on it.

    How you get the reference is up to you, and there are many ways to do it. One way would be to have the Player’s location (Room object) provide the reference. To do that, you could implement a getMaze() method in the Room object that would return that Room’s Maze. In the move() method of Player, you could call getMaze() on the Player’s ‘location’ property (which is a Room), and then call getInmates() on the returned Maze object.

    After that, it’s just how you want to implement the modifier/reset methods on the Maze object.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Creating a calculator-like dialog, I noticed that quickly clicking on a button in IE
Creating an installer for possible remote systems so that if they do not have
I have little program creating a maze. It uses lots of collections (the default
I'm creating a maze program, that randomly generates a path. I'm using an idle
i have to implement a small and simple game in c++ (a maze) and
Creating liquid layouts is an immense pain. Now, I totally understand that tables should
(creating a separate question after comments on this: Javascript redeclared global variable overrides old
Creating a JApplet I have 2 Text Fields, a button and a Text Area.
When creating a web application, and lets say you have a User object denoting
I'm trying to write a simple maze game, without using any deprecated OpenGL API

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.