Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.56 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.util.ArrayList;
  6. import java.util.Scanner;
  7.  
  8. public class Rozgrywka {
  9.     private String haslo;
  10.     private String aktualneHaslo;
  11.     private int pozostaloProb;
  12.  
  13.     public Rozgrywka() throws FileNotFoundException {
  14.         this.haslo = losujHaslo();
  15.         this.aktualneHaslo = generujPierwszeAktualneHaslo();
  16.         this.pozostaloProb = 4;
  17.         rozpocznij();
  18.     }
  19.  
  20.     public String getHaslo() {
  21.         return haslo;
  22.     }
  23.  
  24.     public String getAktualneHaslo() {
  25.         return aktualneHaslo;
  26.     }
  27.  
  28.     public void setAktualneHaslo(String aktualneHaslo) {
  29.         this.aktualneHaslo = aktualneHaslo;
  30.     }
  31.  
  32.     public int getPozostaloProb() {
  33.         return pozostaloProb;
  34.     }
  35.  
  36.     public void setPozostaloProb(int pozostaloProb) {
  37.         this.pozostaloProb = pozostaloProb;
  38.     }
  39.  
  40.     public void rozpocznij(){
  41.         System.out.println("Rozgrywka rozpoczęta. Słowo ma " + getHaslo().length() + " znaków.");
  42.         while (true){
  43.             Scanner s = new Scanner(System.in);
  44.             System.out.println("=======================");
  45.             System.out.println("Pozostało prób: " + getPozostaloProb());
  46.             wyswietlHaslo(getAktualneHaslo());
  47.             String newLetter = s.next();
  48.             char character = newLetter.charAt(0);
  49.             aktualizujHaslo(character);
  50.  
  51.             if (getPozostaloProb() == 0) {
  52.                 System.out.println("Przegrałeś!");
  53.                 break;
  54.             } else if (compareStrings(getHaslo(), getAktualneHaslo())){
  55.                 System.out.println("Wygrałeś! Hasło to " + getAktualneHaslo());
  56.                 break;
  57.             }
  58.         }
  59.     }
  60.  
  61.     public String generujPierwszeAktualneHaslo(){
  62.         String haslo = "";
  63.         int ileLiter = this.getHaslo().length();
  64.         for (int i = 0; i < ileLiter; i++){
  65.             haslo = haslo + "_";
  66.         }
  67.         return haslo;
  68.     }
  69.  
  70.     public void aktualizujHaslo(char c){
  71.         String aktualneHaslo = getAktualneHaslo();
  72.         String noweHaslo = "";
  73.  
  74.         int occurrences = howManyOccurences(getHaslo(), c);
  75.         System.out.println("Litera wystepuje " + occurrences + " razy");
  76.  
  77.         if (occurrences == 0){
  78.             setPozostaloProb(getPozostaloProb() - 1);
  79.         } else {
  80.             noweHaslo = podmienLitery(getHaslo(), getAktualneHaslo(), c);
  81.             setAktualneHaslo(noweHaslo);
  82.         }
  83.  
  84.     }
  85.  
  86.     private int howManyOccurences(String word, char c){
  87.         int howManyOccurrences = 0;
  88.  
  89.         for(int i = 0; i < word.length(); i++){
  90.             if (word.charAt(i) == c){
  91.                 howManyOccurrences++;
  92.             }
  93.         }
  94.         return howManyOccurrences;
  95.     }
  96.  
  97.     private String podmienLitery(String original, String currentWord, char providedChar){
  98.         String noweHaslo = "";
  99.  
  100.         String poprawneHaslo = original;
  101.         String odgadywaneHaslo = currentWord;
  102.         char literaDoPodmiany = providedChar;
  103.  
  104.         for (int i = 0; i < poprawneHaslo.length(); i++){
  105.             if (poprawneHaslo.charAt(i) == literaDoPodmiany) {
  106.                 noweHaslo = noweHaslo + literaDoPodmiany;
  107.             } else {
  108.                 if (odgadywaneHaslo.charAt(i) == poprawneHaslo.charAt(i)){
  109.                     noweHaslo = noweHaslo + poprawneHaslo.charAt(i);
  110.                 } else {
  111.                     noweHaslo = noweHaslo + "_";
  112.                 }
  113.             }
  114.         }
  115.  
  116.         return noweHaslo;
  117.     }
  118.  
  119.     private void wyswietlHaslo(String haslo){
  120.         String noweHaslo = "";
  121.  
  122.         for (int i = 0; i < haslo.length(); i++){
  123.             noweHaslo = noweHaslo + haslo.charAt(i) + " ";
  124.         }
  125.  
  126.         System.out.println(noweHaslo);
  127.     }
  128.  
  129.     private boolean compareStrings(String a, String b){
  130.         boolean areIdentical = false;
  131.         for(int i = 0; i < a.length(); i++){
  132.             if (a.charAt(i) == b.charAt(i)){
  133.                 areIdentical = true;
  134.             } else areIdentical = false;
  135.         }
  136.         return areIdentical;
  137.     }
  138.  
  139.     private static String losujHaslo() throws FileNotFoundException {
  140.         ArrayList<String> hasla = new ArrayList<>();
  141.  
  142.         File myWord = new File("hasla.txt");
  143.         Scanner wczytajHasla = new Scanner(myWord);
  144.         while(wczytajHasla.hasNextLine()){
  145.             hasla.add(wczytajHasla.nextLine());
  146.         }
  147.  
  148.         int sizeOfHasla = hasla.size();
  149.         int randomHaslo = (int)(Math.random() * sizeOfHasla);
  150.  
  151.         return hasla.get(randomHaslo);
  152.     }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement