Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.73 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.*;
  4. public class Main {
  5.     public static boolean wyswietlStatki = true;
  6.  
  7.     public static void stworzPlansze(String[][] plansza) {
  8.         for (int w = 0; w < plansza.length; w++) {
  9.             for (int k = 0; k < plansza[0].length; k++) {
  10.                 plansza[w][k] = "~";
  11.             }
  12.         }
  13.     }
  14.  
  15.     public static void rysujPlansze(String[][] plansza) {
  16.         System.out.println("______________________");
  17.         System.out.print("  ");
  18.         for (int i = 0; i < plansza.length; i++) {
  19.             System.out.print(i+1 + " ");
  20.         }
  21.         System.out.println("");
  22.         for (int w = 0; w < plansza.length; w++) {
  23.             System.out.print((char)(w+65));
  24.             if (wyswietlStatki == true) {
  25.                 for (int k = 0; k < plansza[0].length; k++) {
  26.                     System.out.print(" " + plansza[w][k]);
  27.                 }
  28.                 System.out.println("");
  29.             } else {
  30.                 for (int k = 0; k < plansza[0].length; k++) {
  31.                     if (plansza[w][k].equals("S")) {
  32.                         System.out.print(" " + "~");
  33.                     } else {
  34.                         System.out.print(" " + plansza[w][k]);
  35.                     }
  36.                 }
  37.                 System.out.println("");
  38.             }
  39.         }
  40.         System.out.println("______________________");
  41.     }
  42.  
  43.     public static void stworzStatki(String[][] plansza) {
  44.         /*if (Math.random() < 0.5) { //statek poziomo
  45.             int k = (int) (Math.random() * 6);
  46.             int w = (int) (Math.random() * 9);
  47.             for (int i = 0; i < 4; i++) {
  48.                     plansza[w][k + i] = "S";
  49.             }
  50.         } else { //statek pionowo
  51.             int k = (int) (Math.random() * 9);
  52.             int w = (int) (Math.random() * 6);
  53.             for (int i = 0; i < 4; i++) {
  54.                 plansza[w + i][k] = "S";
  55.             }
  56.         }*/
  57.  
  58.         System.out.println("Umieszczanie statków");
  59.         Scanner skaner = new Scanner(System.in);
  60.  
  61.         for (int i = 0; i < 4; i++) { //jednomasztowce
  62.             System.out.println("Jednomasztowiec nr " + (i + 1));
  63.             System.out.println("Wybierz wiersz od A do J");
  64.             int w = (int)(skaner.next().charAt(0)) - 64;
  65.             while (w > 10 || w < 1) {
  66.                 System.out.println("Od A do J...!");
  67.                 w = skaner.next().charAt(0) - 64;
  68.             }
  69.             System.out.println("Wybierz kolumnę od 1 do 10");
  70.             int k = skaner.nextInt();
  71.             while (k > 10 || k < 1) {
  72.                 System.out.println("Od 1 do 10...!");
  73.                 k = skaner.nextInt();
  74.             }
  75.             if (Objects.equals(plansza[w - 1][k - 1], "S")) {
  76.                 System.out.println("Statek jest już w tym miejscu!");
  77.                 i--;
  78.             } else {
  79.                 plansza[w - 1][k - 1] = "S";
  80.             }
  81.         }
  82.  
  83.         for (int i = 0; i < 3; i++) { //dwumasztowce
  84.             boolean czyZajete = false;
  85.             System.out.println("Dwumasztowiec nr " + (i + 1));
  86.             System.out.println("Pionowo w dół(0) czy poziomo w lewo(1)?");
  87.             int kierunek = skaner.nextInt();
  88.             if (kierunek == 0) {
  89.                 System.out.println("Wybierz wiersz od A do I");
  90.                 int w = (int)(skaner.next().charAt(0)) - 64;
  91.                 while (w > 9 || w < 1) {
  92.                     System.out.println("Od A do I...!");
  93.                     w = skaner.next().charAt(0) - 64;
  94.                 }
  95.                 System.out.println("Wybierz kolumnę od 1 do 10");
  96.                 int k = skaner.nextInt();
  97.                 while (k > 10 || k < 1) {
  98.                     System.out.println("Od 1 do 10...!");
  99.                     k = skaner.nextInt();
  100.                 }
  101.                 for (int j = 0; j < 2; j++) {
  102.                     if (Objects.equals(plansza[w + j - 1][k - 1], "S")) {
  103.                         System.out.println("Statek jest już w tym miejscu!");
  104.                         i--;
  105.                         czyZajete = true;
  106.                         break;
  107.                     }
  108.                 }
  109.                 if (!czyZajete) {
  110.                     for (int j = 0; j < 2; j++) {
  111.                         plansza[w + j - 1][k - 1] = "S";
  112.                     }
  113.                 }
  114.             } else if (kierunek == 1) {
  115.                 System.out.println("Wybierz wiersz od A do J");
  116.                 int w = (int)(skaner.next().charAt(0)) - 64;
  117.                 while (w > 10 || w < 1) {
  118.                     System.out.println("Od A do J...!");
  119.                     w = skaner.next().charAt(0) - 64;
  120.                 }
  121.                 System.out.println("Wybierz kolumnę od 1 do 9");
  122.                 int k = skaner.nextInt();
  123.                 while (k > 9 || k < 1) {
  124.                     System.out.println("Od 1 do 9...!");
  125.                     k = skaner.nextInt();
  126.                 }
  127.                 for (int j = 0; j < 2; j++) {
  128.                     if (Objects.equals(plansza[w - 1][k + j - 1], "S")) {
  129.                         System.out.println("Statek jest już w tym miejscu!");
  130.                         i--;
  131.                         czyZajete = true;
  132.                         break;
  133.                     }
  134.                 }
  135.                 if (!czyZajete) {
  136.                     for (int j = 0; j < 2; j++) {
  137.                         plansza[w - 1][k + j - 1] = "S";
  138.                     }
  139.                 }
  140.             } else {
  141.                 System.out.println("Zła wartość, wybierz jeszcze raz...");
  142.                 i--;
  143.             }
  144.         }
  145.  
  146.         for (int i = 0; i < 2; i++) { //trójmasztowce
  147.             boolean czyZajete = false;
  148.             System.out.println("Trójmasztowiec nr " + (i + 1));
  149.             System.out.println("Pionowo w dół(0) czy poziomo w lewo(1)?");
  150.             int kierunek = skaner.nextInt();
  151.             if (kierunek == 0) {
  152.                 System.out.println("Wybierz wiersz od A do H");
  153.                 int w = (int)(skaner.next().charAt(0)) - 64;
  154.                 while (w > 8 || w < 1) {
  155.                     System.out.println("Od A do H...!");
  156.                     w = skaner.next().charAt(0) - 64;
  157.                 }
  158.                 System.out.println("Wybierz kolumnę od 1 do 10");
  159.                 int k = skaner.nextInt();
  160.                 while (k > 10 || k < 1) {
  161.                     System.out.println("Od 1 do 10...!");
  162.                     k = skaner.nextInt();
  163.                 }
  164.                 for (int j = 0; j < 3; j++) {
  165.                     if (Objects.equals(plansza[w + j - 1][k - 1], "S")) {
  166.                         System.out.println("Statek jest już w tym miejscu!");
  167.                         i--;
  168.                         czyZajete = true;
  169.                         break;
  170.                     }
  171.                 }
  172.                 if (!czyZajete) {
  173.                     for (int j = 0; j < 3; j++) {
  174.                         plansza[w + j - 1][k - 1] = "S";
  175.                     }
  176.                 }
  177.             } else if (kierunek == 1) {
  178.                 System.out.println("Wybierz wiersz od A do J");
  179.                 int w = (int)(skaner.next().charAt(0)) - 64;
  180.                 while (w > 10 || w < 1) {
  181.                     System.out.println("Od A do J...!");
  182.                     w = skaner.next().charAt(0) - 64;
  183.                 }
  184.                 System.out.println("Wybierz kolumnę od 1 do 8");
  185.                 int k = skaner.nextInt();
  186.                 while (k > 8 || k < 1) {
  187.                     System.out.println("Od 1 do 8...!");
  188.                     k = skaner.nextInt();
  189.                 }
  190.                 for (int j = 0; j < 3; j++) {
  191.                     if (Objects.equals(plansza[w - 1][k + j - 1], "S")) {
  192.                         System.out.println("Statek jest już w tym miejscu!");
  193.                         i--;
  194.                         czyZajete = true;
  195.                         break;
  196.                     }
  197.                 }
  198.                 if (!czyZajete) {
  199.                     for (int j = 0; j < 3; j++) {
  200.                         plansza[w - 1][k + j - 1] = "S";
  201.                     }
  202.                 }
  203.             } else {
  204.                 System.out.println("Zła wartość, wybierz jeszcze raz...");
  205.                 i--;
  206.             }
  207.         }
  208.  
  209.         for (int i = 0; i < 2; i++) { //czteromasztowiec
  210.             boolean czyZajete = false;
  211.             System.out.println("Czteromasztowiec nr " + (i + 1));
  212.             System.out.println("Pionowo w dół(0) czy poziomo w lewo(1)?");
  213.             int kierunek = skaner.nextInt();
  214.             if (kierunek == 0) {
  215.                 System.out.println("Wybierz wiersz od A do G");
  216.                 int w = (int)(skaner.next().charAt(0)) - 64;
  217.                 while (w > 7 || w < 1) {
  218.                     System.out.println("Od A do G...!");
  219.                     w = skaner.next().charAt(0) - 64;
  220.                 }
  221.                 System.out.println("Wybierz kolumnę od 1 do 10");
  222.                 int k = skaner.nextInt();
  223.                 while (k > 10 || k < 1) {
  224.                     System.out.println("Od 1 do 10...!");
  225.                     k = skaner.nextInt();
  226.                 }
  227.                 for (int j = 0; j < 4; j++) {
  228.                     if (Objects.equals(plansza[w + j - 1][k - 1], "S")) {
  229.                         System.out.println("Statek jest już w tym miejscu!");
  230.                         i--;
  231.                         czyZajete = true;
  232.                         break;
  233.                     }
  234.                 }
  235.                 if (!czyZajete) {
  236.                     for (int j = 0; j < 4; j++) {
  237.                         plansza[w + j - 1][k - 1] = "S";
  238.                     }
  239.                 }
  240.  
  241.             } else if (kierunek == 1) {
  242.                 System.out.println("Wybierz wiersz od A do J");
  243.                 int w = (int)(skaner.next().charAt(0)) - 64;
  244.                 while (w > 10 || w < 1) {
  245.                     System.out.println("Od A do J...!");
  246.                     w = skaner.next().charAt(0) - 64;
  247.                 }
  248.                 System.out.println("Wybierz kolumnę od 1 do 7");
  249.                 int k = skaner.nextInt();
  250.                 while (k > 7 || k < 1) {
  251.                     System.out.println("Od 1 do 7...!");
  252.                     k = skaner.nextInt();
  253.                 }
  254.                 for (int j = 0; j < 4; j++) {
  255.                     if (Objects.equals(plansza[w - 1][k + j - 1], "S")) {
  256.                         System.out.println("Statek jest już w tym miejscu!");
  257.                         i--;
  258.                         czyZajete = true;
  259.                         break;
  260.                     }
  261.                 }
  262.                 if (!czyZajete) {
  263.                     for (int j = 0; j < 4; j++) {
  264.                         plansza[w - 1][k + j - 1] = "S";
  265.                     }
  266.                 }
  267.             } else {
  268.                 System.out.println("Zła wartość, wybierz jeszcze raz...");
  269.                 i--;
  270.             }
  271.         }
  272.     }
  273.  
  274.     public static int strzal(String[][] plansza, int trafienia, int pociski) {
  275.         Scanner punkt = new Scanner(System.in);
  276.         int w, k;
  277.         System.out.println("Liczba pocisków: " + pociski);
  278.         System.out.println("Wybierz wiersz od A do J");
  279.         w = (int)(punkt.next().charAt(0)) - 64;
  280.         while (w > 10 || w < 1) {
  281.             System.out.println("Od A do J...!");
  282.             w = punkt.next().charAt(0) - 64;
  283.         }
  284.         System.out.println("Wybierz kolumnę od 1 do 10");
  285.         k = punkt.nextInt();
  286.         while (k > 10 || k < 1) {
  287.             System.out.println("Od 1 do 10...!");
  288.             k = punkt.nextInt();
  289.         }
  290.         if (plansza[w - 1][k - 1].equals("S")) {
  291.             trafienia++;
  292.             System.out.println("TRAFIENIE!");
  293.             plansza[w - 1][k - 1] = "O";
  294.         } else {
  295.             System.out.println("NIE TYM RAZEM...");
  296.             plansza[w - 1][k - 1] = "X";
  297.         }
  298.         return trafienia;
  299.     }
  300.  
  301.     public static void koniec(int trafienia, int pociski) {
  302.         if (trafienia < 20)
  303.             System.out.println("Nie udało się zatopić statków!");
  304.         if (pociski < 1)
  305.             System.out.println("Straciłeś wszystkie pociski!");
  306.         else if (trafienia == 20) {
  307.             System.out.println("Brawo! Zatopiłeś wszystkie statki!");
  308.         }
  309.     }
  310.  
  311.     public static void main(String[] arg) {
  312.         String[][] plansza = new String[10][10];
  313.         stworzPlansze(plansza);
  314.         stworzStatki(plansza);
  315.         int pociski = 33;
  316.         int trafienia = 0;
  317.  
  318.         while (pociski > 0 && trafienia < 20) {
  319.             rysujPlansze(plansza);
  320.             trafienia = strzal(plansza, trafienia, pociski);
  321.             pociski--;
  322.         }
  323.         koniec(trafienia, pociski);
  324.     }
  325. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement