Untitled
unknown
java
3 years ago
1.6 kB
4
Indexable
package com.comp301.a02adventure; public class MapImpl implements Map { private final int width; private final int height; private final int numItems; private final Cell[][] cells; public MapImpl(int width, int height, int numItems) throws IllegalArgumentException { this.width = width; if (this.width <= 0) { throw new IllegalArgumentException("Width less than 0"); } this.height = height; if (this.height <= 0) { throw new IllegalArgumentException("Height less than 0"); } this.numItems = numItems; cells = new Cell[width][height]; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { cells[i][j] = null; } } } @Override public int getWidth() { return width; } @Override public int getHeight() { return height; } @Override public Cell getCell(int x, int y) throws IndexOutOfBoundsException { if (x > width) { throw new IndexOutOfBoundsException(); } if (y > height) { throw new IndexOutOfBoundsException(); } return cells[x][y]; } @Override public Cell getCell(Position position) { if (position.getX() > width) { throw new IndexOutOfBoundsException(); } if (position.getY() > height) { throw new IndexOutOfBoundsException(); } return cells[position.getX()][position.getY()]; } @Override public void initCell(int x, int y) { cells[x][y] = new CellImpl(x, y); } @Override public int getNumItems() { return numItems; } }
Editor is loading...