Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class SpaceStationEstablishment {
- private static class spaceship{
- private int rpos;
- private int cpos;
- private int power ;
- spaceship(int rpos , int cpos){
- this.rpos=rpos;
- this.cpos=cpos;
- }
- public void setPower(int power) {
- this.power += power;
- }
- public int getPower() {
- return power;
- }
- }
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int size = Integer.parseInt(scanner.nextLine().trim());
- int rpos=0;
- int cpos=0;
- char matrix [][] = new char[size][size];
- for (int row = 0; row<matrix.length; row++) {
- String nl = scanner.nextLine();
- for (int col = 0; col<matrix[row].length; col++) {
- matrix[row][col] = nl.charAt(col);
- if (matrix[row][col]=='S'){
- cpos=col;
- rpos=row;
- matrix[row][col]='-';
- }
- }
- }
- spaceship ss = new spaceship(rpos,cpos);
- int nexcol =0;
- int netrow =0;
- while (scanner.hasNextLine()){
- String comanda = scanner.nextLine();
- switch (comanda){
- case "up":
- if (rpos-1<0){
- System.out.println("Bad news, the spaceship went to the void.");
- System.out.printf("Star power collected: %d%n",ss.getPower());
- pintMatrix(matrix);
- return;
- }else {
- rpos--;
- if (Character.isDigit(matrix[rpos][cpos])){
- int a = Integer.parseInt(String.valueOf(matrix[rpos][cpos]));
- ss.setPower(a);
- }
- else if (matrix[rpos][cpos]=='O') {
- outerloop:
- for (int i = 0; i<matrix.length; i++) {
- for (int j = 0; j<matrix[i].length; j++) {
- if (matrix[i][j]=='O' && i!=rpos && j!=cpos){
- netrow=i;
- nexcol=j;
- break outerloop;
- }
- }
- }
- matrix[rpos][cpos]= '-';
- matrix[netrow][nexcol]='-';
- rpos=netrow;
- cpos=nexcol;
- }
- }
- break;
- case "down":
- if (rpos+1>=size){
- System.out.println("Bad news, the spaceship went to the void.");
- System.out.printf("Star power collected: %d%n",ss.getPower());
- pintMatrix(matrix);
- return;
- }else {
- rpos++;
- if (Character.isDigit(matrix[rpos][cpos])) {
- int a = Integer.parseInt(String.valueOf(matrix[rpos][cpos]));
- ss.setPower(a);
- }
- else if (matrix[rpos][cpos]=='O'){
- outerloop:
- for (int i = 0; i<matrix.length; i++) {
- for (int j = 0; j<matrix[i].length; j++) {
- if (matrix[i][j]=='O' && i!=rpos && j!=cpos){
- netrow=i;
- nexcol=j;
- break outerloop;
- }
- }
- }
- matrix[rpos][cpos]= '-';
- matrix[netrow][nexcol]='-';
- rpos=netrow;
- cpos=nexcol;
- }
- }
- break;
- case "left":
- if (cpos-1<0){
- System.out.println("Bad news, the spaceship went to the void.");
- System.out.printf("Star power collected: %d%n",ss.getPower());
- pintMatrix(matrix);
- return;
- }else {
- cpos--;
- if (Character.isDigit(matrix[rpos][cpos])){
- int a = Integer.parseInt(String.valueOf(matrix[rpos][cpos]));
- ss.setPower(a);
- }
- else if (matrix[rpos][cpos]=='O') {
- outerloop:
- for (int i = 0; i<matrix.length; i++) {
- for (int j = 0; j<matrix[i].length; j++) {
- if (matrix[i][j]=='O' && i!=rpos && j!=cpos){
- netrow=i;
- nexcol=j;
- break outerloop;
- }
- }
- }
- matrix[rpos][cpos]= '-';
- matrix[netrow][nexcol]='-';
- rpos=netrow;
- cpos=nexcol;
- }
- }
- break;
- case "right":
- if (cpos+1>=size){
- System.out.println("Bad news, the spaceship went to the void.");
- System.out.printf("Star power collected: %d%n",ss.getPower());
- pintMatrix(matrix);
- return;
- }else {
- cpos++;
- if (Character.isDigit(matrix[rpos][cpos])) {
- int a = Integer.parseInt(String.valueOf(matrix[rpos][cpos]));
- ss.setPower(a);
- }
- else if (matrix[rpos][cpos]=='O'){
- outerloop:
- for (int i = 0; i<matrix.length; i++) {
- for (int j = 0; j<matrix[i].length; j++) {
- if (matrix[i][j]=='O' && i!=rpos && j!=cpos){
- netrow=i;
- nexcol=j;
- break outerloop;
- }
- }
- }
- matrix[rpos][cpos]= '-';
- matrix[netrow][nexcol]='-';
- rpos=netrow;
- cpos=nexcol;
- }
- }
- break;
- }
- if (comanda.equals("")){
- break;
- }
- }
- if (ss.getPower()>=50){
- System.out.println("Good news! Stephen succeeded in collecting enough star power!");
- }
- System.out.printf("Star power collected: %d%n",ss.getPower());
- pintMatrix(matrix);
- }
- private static void pintMatrix(char matrix [][]) {
- for (int i = 0; i<matrix.length; i++) {
- for (int j = 0; j<matrix[i].length; j++) {
- System.out.print(matrix[i][j]+"");
- }
- System.out.println();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement