Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Rozgrywka {
- private String haslo;
- private String aktualneHaslo;
- private int pozostaloProb;
- public Rozgrywka() throws FileNotFoundException {
- this.haslo = losujHaslo();
- this.aktualneHaslo = generujPierwszeAktualneHaslo();
- this.pozostaloProb = 4;
- rozpocznij();
- }
- public String getHaslo() {
- return haslo;
- }
- public String getAktualneHaslo() {
- return aktualneHaslo;
- }
- public void setAktualneHaslo(String aktualneHaslo) {
- this.aktualneHaslo = aktualneHaslo;
- }
- public int getPozostaloProb() {
- return pozostaloProb;
- }
- public void setPozostaloProb(int pozostaloProb) {
- this.pozostaloProb = pozostaloProb;
- }
- public void rozpocznij(){
- System.out.println("Rozgrywka rozpoczęta. Słowo ma " + getHaslo().length() + " znaków.");
- while (true){
- Scanner s = new Scanner(System.in);
- System.out.println("=======================");
- System.out.println("Pozostało prób: " + getPozostaloProb());
- wyswietlHaslo(getAktualneHaslo());
- String newLetter = s.next();
- char character = newLetter.charAt(0);
- aktualizujHaslo(character);
- if (getPozostaloProb() == 0) {
- System.out.println("Przegrałeś!");
- break;
- } else if (compareStrings(getHaslo(), getAktualneHaslo())){
- System.out.println("Wygrałeś! Hasło to " + getAktualneHaslo());
- break;
- }
- }
- }
- public String generujPierwszeAktualneHaslo(){
- String haslo = "";
- int ileLiter = this.getHaslo().length();
- for (int i = 0; i < ileLiter; i++){
- haslo = haslo + "_";
- }
- return haslo;
- }
- public void aktualizujHaslo(char c){
- String aktualneHaslo = getAktualneHaslo();
- String noweHaslo = "";
- int occurrences = howManyOccurences(getHaslo(), c);
- System.out.println("Litera wystepuje " + occurrences + " razy");
- if (occurrences == 0){
- setPozostaloProb(getPozostaloProb() - 1);
- } else {
- noweHaslo = podmienLitery(getHaslo(), getAktualneHaslo(), c);
- setAktualneHaslo(noweHaslo);
- }
- }
- private int howManyOccurences(String word, char c){
- int howManyOccurrences = 0;
- for(int i = 0; i < word.length(); i++){
- if (word.charAt(i) == c){
- howManyOccurrences++;
- }
- }
- return howManyOccurrences;
- }
- private String podmienLitery(String original, String currentWord, char providedChar){
- String noweHaslo = "";
- String poprawneHaslo = original;
- String odgadywaneHaslo = currentWord;
- char literaDoPodmiany = providedChar;
- for (int i = 0; i < poprawneHaslo.length(); i++){
- if (poprawneHaslo.charAt(i) == literaDoPodmiany) {
- noweHaslo = noweHaslo + literaDoPodmiany;
- } else {
- if (odgadywaneHaslo.charAt(i) == poprawneHaslo.charAt(i)){
- noweHaslo = noweHaslo + poprawneHaslo.charAt(i);
- } else {
- noweHaslo = noweHaslo + "_";
- }
- }
- }
- return noweHaslo;
- }
- private void wyswietlHaslo(String haslo){
- String noweHaslo = "";
- for (int i = 0; i < haslo.length(); i++){
- noweHaslo = noweHaslo + haslo.charAt(i) + " ";
- }
- System.out.println(noweHaslo);
- }
- private boolean compareStrings(String a, String b){
- boolean areIdentical = false;
- for(int i = 0; i < a.length(); i++){
- if (a.charAt(i) == b.charAt(i)){
- areIdentical = true;
- } else areIdentical = false;
- }
- return areIdentical;
- }
- private static String losujHaslo() throws FileNotFoundException {
- ArrayList<String> hasla = new ArrayList<>();
- File myWord = new File("hasla.txt");
- Scanner wczytajHasla = new Scanner(myWord);
- while(wczytajHasla.hasNextLine()){
- hasla.add(wczytajHasla.nextLine());
- }
- int sizeOfHasla = hasla.size();
- int randomHaslo = (int)(Math.random() * sizeOfHasla);
- return hasla.get(randomHaslo);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement