⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 building.java

📁 大厦游览图,通过命令行来实现 System.out.println("where 显示当前在什么地方") System.out.println("list 列出当前位置的物品") S
💻 JAVA
字号:
package xiang;

/**
 * 大厦类,记录Spot的个数,以及各个Spot之间的关系
 */
public class Building {
	final static float NOTAdjacent = Float.MAX_VALUE;// 不相邻

	private int spotNumber;// 地点个数

	private Spot[] spots;// 存储各个地点

	// private Person visitor;
	private float[][] distance;// 各个地点之间距离

	/**
	 * 构造函数
	 * 
	 * @param n
	 *            大厦内地点个数
	 * 
	 */
	public Building(int n) {
		spotNumber = n;
		spots = new Spot[n];
		// setDistance();
		for (int i = 0; i < n; i++) {
			spots[i] = new Spot();
			// wait to implementation
		}
	}

	/**
	 * 默认构造函数 假设大厦内地点个数4
	 * 
	 */
	public Building() {
		int n = 4;
		spotNumber = n;
		spots = new Spot[n];
		for (int i = 0; i < n; i++) {
			spots[i] = new Spot();
		}

		spots[0].description = "大厅";
		spots[0].id = 0;
		spots[0].goodsList.add("飞机模型");
		spots[0].goodsList.add("保安");
		spots[0].goodsList.add("登记本");

		spots[1].description = "电梯";
		spots[1].id = 1;
		spots[1].goodsList.add("按钮");
		spots[1].goodsList.add("电视");

		spots[2].description = "仓库";
		spots[2].id = 2;
		spots[2].goodsList.add("电脑");

		spots[3].description = "计算机中心";
		spots[3].id = 3;
		spots[3].goodsList.add("电脑");
		spots[3].goodsList.add("研发人员");

		spots[0].adjacentList.add(spots[1]);
		spots[1].adjacentList.add(spots[0]);

		spots[1].adjacentList.add(spots[2]);
		spots[2].adjacentList.add(spots[1]);

		spots[1].adjacentList.add(spots[3]);
		spots[3].adjacentList.add(spots[1]);

		// setDistance();

		distance = new float[spotNumber][spotNumber];
		for (int i = 0; i < spotNumber; i++)
			for (int j = 0; j < spotNumber; j++)
				distance[i][j] = NOTAdjacent;
		distance[0][1] = distance[1][0] = 10;
		distance[1][2] = distance[2][1] = 5;
		distance[1][3] = distance[3][1] = 10;

	}

	/**
	 * 
	 * 设置地点之间的距离
	 * 
	 */
	public void setDistance(float[][] dis) {
		distance = new float[spotNumber][spotNumber];
		for (int i = 0; i < spotNumber; i++)
			for (int j = 0; j < spotNumber; j++)
				distance[i][j] = NOTAdjacent;
		// wait to implementation
	}

	/**
	 * 获取大厦内各个地点的数组
	 * 
	 */
	public Spot[] getSpots() {
		return spots;
	}

	public int getSpotNumber() {
		return spotNumber;
	}

	public float[][] getDistance() {
		return distance;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -