Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. import java.util.Random;
  2.  
  3. public class Map {
  4.  
  5.  
  6. private int rows = 10;
  7. private int columns = 20;
  8. private char[][] map = new char[10][20];
  9.  
  10.  
  11.  
  12. //fills map
  13. public void initialiseMap() {
  14. for(int i = 0; i < rows; i++) {
  15. for(int j = 0; j < columns; j++) {
  16. map[i][j] = generateSign();
  17. }
  18. }
  19. }
  20.  
  21. //returns random sign
  22. public char generateSign() {
  23. char sign = ' ';
  24. Random rng = new Random();
  25. int rngNumber = rng.nextInt(2);
  26.  
  27. if(rngNumber == 0) {
  28. sign = '#';
  29. }else if(rngNumber == 1) {
  30. sign = 'O';
  31. }
  32.  
  33. return sign;
  34. }
  35.  
  36. //prints map
  37. public void printMap() {
  38. System.out.println("");
  39. for(int i = 0; i < rows; i++) {
  40. for(int j = 0; j < columns; j++) {
  41. System.out.print(map[i][j]);
  42. }
  43. System.out.println("");
  44. }
  45. System.out.println("");
  46. }
  47.  
  48. //returns string of map
  49. public String toString() {
  50. String mapString = "";
  51. for(int i = 0; i < rows; i++) {
  52. for(int j = 0; j < columns; j++) {
  53. mapString = mapString.concat(Character.toString(map[i][j]));
  54. }
  55. }
  56.  
  57. return mapString;
  58. }
  59.  
  60. //recursive algorithm to eliminate signs
  61. public void eliminateArea(int rowElimination, int columnElimination,char signToEliminate) {
  62.  
  63. //origin
  64. if(map[rowElimination][columnElimination] == signToEliminate) {
  65. map[rowElimination][columnElimination] = ' ';
  66. }
  67.  
  68. if(columnElimination-1 >= 0) {
  69. //left of origin
  70. if(map[rowElimination][columnElimination-1] == signToEliminate) {
  71. eliminateArea(rowElimination,columnElimination-1,signToEliminate);
  72. }
  73. }
  74.  
  75. if(columnElimination+1 <= 19) {
  76. //right of origin
  77. if(map[rowElimination][columnElimination+1] == signToEliminate) {
  78. eliminateArea(rowElimination,columnElimination+1,signToEliminate);
  79. }
  80. }
  81.  
  82. if(rowElimination-1 >= 0) {
  83. //top of origin
  84. if(map[rowElimination-1][columnElimination] == signToEliminate) {
  85. eliminateArea(rowElimination-1,columnElimination,signToEliminate);
  86. }
  87. }
  88.  
  89. if(rowElimination+1 <= 9) {
  90. //bottom of origin
  91. if(map[rowElimination+1][columnElimination] == signToEliminate) {
  92. eliminateArea(rowElimination+1,columnElimination,signToEliminate);
  93. }
  94. }
  95. }
  96.  
  97. //determines which sign is to be eliminated
  98. public char determineEliminationSign(int row, int column) {
  99. char sign = map[row][column];
  100. return sign;
  101. }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement