Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Random;
- public class Map {
- private int rows = 10;
- private int columns = 20;
- private char[][] map = new char[10][20];
- //fills map
- public void initialiseMap() {
- for(int i = 0; i < rows; i++) {
- for(int j = 0; j < columns; j++) {
- map[i][j] = generateSign();
- }
- }
- }
- //returns random sign
- public char generateSign() {
- char sign = ' ';
- Random rng = new Random();
- int rngNumber = rng.nextInt(2);
- if(rngNumber == 0) {
- sign = '#';
- }else if(rngNumber == 1) {
- sign = 'O';
- }
- return sign;
- }
- //prints map
- public void printMap() {
- System.out.println("");
- for(int i = 0; i < rows; i++) {
- for(int j = 0; j < columns; j++) {
- System.out.print(map[i][j]);
- }
- System.out.println("");
- }
- System.out.println("");
- }
- //returns string of map
- public String toString() {
- String mapString = "";
- for(int i = 0; i < rows; i++) {
- for(int j = 0; j < columns; j++) {
- mapString = mapString.concat(Character.toString(map[i][j]));
- }
- }
- return mapString;
- }
- //recursive algorithm to eliminate signs
- public void eliminateArea(int rowElimination, int columnElimination,char signToEliminate) {
- //origin
- if(map[rowElimination][columnElimination] == signToEliminate) {
- map[rowElimination][columnElimination] = ' ';
- }
- if(columnElimination-1 >= 0) {
- //left of origin
- if(map[rowElimination][columnElimination-1] == signToEliminate) {
- eliminateArea(rowElimination,columnElimination-1,signToEliminate);
- }
- }
- if(columnElimination+1 <= 19) {
- //right of origin
- if(map[rowElimination][columnElimination+1] == signToEliminate) {
- eliminateArea(rowElimination,columnElimination+1,signToEliminate);
- }
- }
- if(rowElimination-1 >= 0) {
- //top of origin
- if(map[rowElimination-1][columnElimination] == signToEliminate) {
- eliminateArea(rowElimination-1,columnElimination,signToEliminate);
- }
- }
- if(rowElimination+1 <= 9) {
- //bottom of origin
- if(map[rowElimination+1][columnElimination] == signToEliminate) {
- eliminateArea(rowElimination+1,columnElimination,signToEliminate);
- }
- }
- }
- //determines which sign is to be eliminated
- public char determineEliminationSign(int row, int column) {
- char sign = map[row][column];
- return sign;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement