Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.04 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class SpaceStationEstablishment {
  4. private static class spaceship{
  5. private int rpos;
  6. private int cpos;
  7. private int power ;
  8. spaceship(int rpos , int cpos){
  9. this.rpos=rpos;
  10. this.cpos=cpos;
  11. }
  12.  
  13. public void setPower(int power) {
  14. this.power += power;
  15. }
  16.  
  17. public int getPower() {
  18. return power;
  19. }
  20. }
  21. public static void main(String[] args) {
  22. Scanner scanner = new Scanner(System.in);
  23. int size = Integer.parseInt(scanner.nextLine().trim());
  24. int rpos=0;
  25. int cpos=0;
  26. char matrix [][] = new char[size][size];
  27. for (int row = 0; row<matrix.length; row++) {
  28. String nl = scanner.nextLine();
  29. for (int col = 0; col<matrix[row].length; col++) {
  30. matrix[row][col] = nl.charAt(col);
  31. if (matrix[row][col]=='S'){
  32. cpos=col;
  33. rpos=row;
  34. matrix[row][col]='-';
  35. }
  36. }
  37. }
  38.  
  39. spaceship ss = new spaceship(rpos,cpos);
  40. int nexcol =0;
  41. int netrow =0;
  42. while (scanner.hasNextLine()){
  43.  
  44. String comanda = scanner.nextLine();
  45.  
  46. switch (comanda){
  47. case "up":
  48. if (rpos-1<0){
  49. System.out.println("Bad news, the spaceship went to the void.");
  50. System.out.printf("Star power collected: %d%n",ss.getPower());
  51. pintMatrix(matrix);
  52. return;
  53. }else {
  54. rpos--;
  55. if (Character.isDigit(matrix[rpos][cpos])){
  56. int a = Integer.parseInt(String.valueOf(matrix[rpos][cpos]));
  57. ss.setPower(a);
  58. }
  59. else if (matrix[rpos][cpos]=='O') {
  60. outerloop:
  61. for (int i = 0; i<matrix.length; i++) {
  62. for (int j = 0; j<matrix[i].length; j++) {
  63. if (matrix[i][j]=='O' && i!=rpos && j!=cpos){
  64. netrow=i;
  65. nexcol=j;
  66. break outerloop;
  67. }
  68. }
  69. }
  70. matrix[rpos][cpos]= '-';
  71. matrix[netrow][nexcol]='-';
  72. rpos=netrow;
  73. cpos=nexcol;
  74. }
  75. }
  76.  
  77. break;
  78. case "down":
  79. if (rpos+1>=size){
  80. System.out.println("Bad news, the spaceship went to the void.");
  81. System.out.printf("Star power collected: %d%n",ss.getPower());
  82. pintMatrix(matrix);
  83. return;
  84. }else {
  85. rpos++;
  86. if (Character.isDigit(matrix[rpos][cpos])) {
  87. int a = Integer.parseInt(String.valueOf(matrix[rpos][cpos]));
  88. ss.setPower(a);
  89. }
  90. else if (matrix[rpos][cpos]=='O'){
  91. outerloop:
  92. for (int i = 0; i<matrix.length; i++) {
  93. for (int j = 0; j<matrix[i].length; j++) {
  94. if (matrix[i][j]=='O' && i!=rpos && j!=cpos){
  95. netrow=i;
  96. nexcol=j;
  97. break outerloop;
  98. }
  99. }
  100. }
  101. matrix[rpos][cpos]= '-';
  102. matrix[netrow][nexcol]='-';
  103. rpos=netrow;
  104. cpos=nexcol;
  105. }
  106. }
  107. break;
  108. case "left":
  109. if (cpos-1<0){
  110. System.out.println("Bad news, the spaceship went to the void.");
  111. System.out.printf("Star power collected: %d%n",ss.getPower());
  112. pintMatrix(matrix);
  113. return;
  114. }else {
  115. cpos--;
  116. if (Character.isDigit(matrix[rpos][cpos])){
  117. int a = Integer.parseInt(String.valueOf(matrix[rpos][cpos]));
  118. ss.setPower(a);
  119. }
  120. else if (matrix[rpos][cpos]=='O') {
  121. outerloop:
  122. for (int i = 0; i<matrix.length; i++) {
  123. for (int j = 0; j<matrix[i].length; j++) {
  124. if (matrix[i][j]=='O' && i!=rpos && j!=cpos){
  125. netrow=i;
  126. nexcol=j;
  127. break outerloop;
  128. }
  129. }
  130. }
  131. matrix[rpos][cpos]= '-';
  132. matrix[netrow][nexcol]='-';
  133. rpos=netrow;
  134. cpos=nexcol;
  135. }
  136. }
  137. break;
  138. case "right":
  139. if (cpos+1>=size){
  140. System.out.println("Bad news, the spaceship went to the void.");
  141. System.out.printf("Star power collected: %d%n",ss.getPower());
  142. pintMatrix(matrix);
  143. return;
  144. }else {
  145. cpos++;
  146. if (Character.isDigit(matrix[rpos][cpos])) {
  147. int a = Integer.parseInt(String.valueOf(matrix[rpos][cpos]));
  148. ss.setPower(a);
  149. }
  150. else if (matrix[rpos][cpos]=='O'){
  151. outerloop:
  152. for (int i = 0; i<matrix.length; i++) {
  153. for (int j = 0; j<matrix[i].length; j++) {
  154. if (matrix[i][j]=='O' && i!=rpos && j!=cpos){
  155. netrow=i;
  156. nexcol=j;
  157. break outerloop;
  158. }
  159. }
  160. }
  161. matrix[rpos][cpos]= '-';
  162. matrix[netrow][nexcol]='-';
  163. rpos=netrow;
  164. cpos=nexcol;
  165. }
  166. }
  167.  
  168. break;
  169. }
  170. if (comanda.equals("")){
  171. break;
  172. }
  173.  
  174. }
  175. if (ss.getPower()>=50){
  176. System.out.println("Good news! Stephen succeeded in collecting enough star power!");
  177. }
  178. System.out.printf("Star power collected: %d%n",ss.getPower());
  179. pintMatrix(matrix);
  180.  
  181.  
  182.  
  183. }
  184.  
  185. private static void pintMatrix(char matrix [][]) {
  186. for (int i = 0; i<matrix.length; i++) {
  187. for (int j = 0; j<matrix[i].length; j++) {
  188. System.out.print(matrix[i][j]+"");
  189. }
  190. System.out.println();
  191. }
  192. }
  193.  
  194.  
  195. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement