Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.14 KB | None | 0 0
  1. package ee.ttu.algoritmid.dancers;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6.  
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);       // Scanner käikude ja kaardi parameetrite lugemiseks
  9.        
  10.         int[] parameters = readInitialParameters(scanner);      // Kaardi parameetrid array kujul
  11.  
  12.         int fieldHeight = parameters[0];        // Kaardi kõrgus
  13.         int fieldWidth = parameters[1];     // Kaardi laius
  14.         int numberOfBombs = parameters[2];      // Pommide arv
  15.  
  16.         char[][] map = new char[fieldHeight][fieldWidth];
  17.  
  18.         for (int i = 0; i < fieldHeight; i++) {
  19.             for (int j = 0; j < fieldWidth; j++) {
  20.                 map[i][j] = '.';        // Täidab kaardi array punktidega
  21.             }
  22.         }
  23.        
  24.         for (int i = 0; i < numberOfBombs; i++) {       // Loop käib nii mitu korda kui pomme on
  25.             int x = (int)(Math.random() * fieldHeight);
  26.             int y = (int)(Math.random() * fieldWidth);
  27.             if (map[x][y] != 'B') {
  28.                 map[x][y] = 'B';        // Täidab kaardi array pommidega
  29.             } else {
  30.                 i--;        // Kui selle koha peal on juba pomm, siis see ring ei lähe arvesse
  31.             }
  32.         }
  33.        
  34.         for (int i = 0; i <  fieldHeight; i++) {        //Trükib kaardi välja
  35.             for (int j = 0; j < fieldWidth; j++) {
  36.                 System.out.print(map[i][j] + " ");
  37.             }
  38.             System.out.println();
  39.         }
  40.        
  41.         int[] move = readGuessInput(scanner);       // Käik array kujul
  42.         int x = move[0];        // Käigu x koordinaat
  43.         int y = move[1];        // Käigu y koordinaat
  44.        
  45.         /*
  46.          * Siia tuleb mäng ise.
  47.          *
  48.          * Mängu jooksul peaksid pommid kaardil varjatud olema.
  49.          *
  50.          * Kui käiakse kohale kus on pomm, siis näidatakse koordil edaspidi seda pommi
  51.          *
  52.          * Kui käiakse pommist mööda, siis tuleb käidud koha peale number,
  53.          *  mis näitab kui kaugel on kõige lähemal asuv pomm.
  54.          *  Need numbrid jäävad kaardile.
  55.          *
  56.          * Peale igat käiku tuleb
  57.          *      öelda mitu käiku tehtud on:
  58.          *      öelda mitu aaret veel alles on
  59.          *      kaart uuesti välja trükkida
  60.          *      uue käigu koordinaadid küsida
  61.          *
  62.          * Kui kõik pommid on üles leitud, saab mäng läbi.
  63.          */
  64.     }
  65.    
  66.    
  67. // Siit edasi ei pea midagi muutma
  68.    
  69.     public static int[] readGuessInput(Scanner scanner) {       // Meetod käigu lugemiseks
  70.         int[] parameters;
  71.         System.out.print("Sisestage ruut kus aaret otsida (näiteks 1,1): ");
  72.         String parameterInput = scanner.nextLine();
  73.         parameters = splitInputStructureToIntArray(parameterInput);
  74.         return parameters;
  75.     }
  76.  
  77.     public static int[] readInitialParameters(Scanner scanner) {        // Meetod kaardi andmete lugemiseks
  78.         int[] parameters;
  79.         System.out.print("Sisestage kõrgus, laius, pommide arv (näiteks: 2,2,1): ");
  80.         String parameterInput = scanner.nextLine();
  81.         parameters = splitInputStructureToIntArray(parameterInput);
  82.         return parameters;
  83.     }
  84.  
  85.     public static int[] splitInputStructureToIntArray(String input) {       // Meetod Stringi tükkideks jagamiseks
  86.         String[] splitParts = input.replaceAll(" ", "").split(",");
  87.         int[] parameters = new int[splitParts.length];
  88.         for (int i = 0; i < splitParts.length; i++) {
  89.             try {
  90.                 parameters[i] = Integer.parseInt(splitParts[i]);
  91.             } catch (NumberFormatException e) {
  92.                 parameters[i] = -1;
  93.             }
  94.         }
  95.         return parameters;
  96.     }
  97.  
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement