Advertisement
chorium

SananArvaus.java

Feb 16th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.88 KB | None | 0 0
  1.  
  2. package hirsipuu;
  3.  
  4. import java.util.ArrayList;
  5. import java.util.Scanner;
  6.  
  7. public class SananArvaus {
  8.     private String sana;
  9.     private ArrayList<String> sananKirjaimet = new ArrayList<>();
  10.     private ArrayList<String> arvatutKirjaimet = new ArrayList<>();
  11.     private ArrayList<String> vaaratKirjaimet = new ArrayList<>();
  12.     private SananValinta uusiSana = new SananValinta();
  13.     private int elamienMaara = 5;
  14.     private int pisteet;
  15.     private boolean breaker = true;
  16.     private Scanner syote = new Scanner (System.in);
  17.     private Pelaaja pelaaja;
  18.    
  19.     public SananArvaus(Pelaaja pelaaja) {
  20.         this.uusiSana.sanojenLisays();
  21.         this.sana = uusiSana.sananGenerointi();
  22.         this.pelaaja = pelaaja;
  23.         this.pisteet = 0;
  24.     }
  25.    
  26.     public SananArvaus(String sana){
  27.         this.sana = sana;  
  28.     }
  29.    
  30.     public String getNimi() {
  31.         return "sanan arvaus";
  32.     }
  33.    
  34.     public void taytaTahdilla() {
  35.         this.arvatutKirjaimet.clear();
  36.         for (int i = 0;i<sananKirjaimet.size();i++) {
  37.             this.arvatutKirjaimet.add("*");
  38.         }
  39.     }
  40.    
  41.     public void alustaPeli() {
  42.         this.breaker = true;
  43.         this.elamienMaara = 5;
  44.         this.sana = uusiSana.sananGenerointi();
  45.         this.vaaratKirjaimet.clear();
  46.         kirjaimetListaan();
  47.         taytaTahdilla();
  48.        
  49.         for (String tahti:this.arvatutKirjaimet) {
  50.             System.out.print(tahti);
  51.         }
  52.         System.out.println("");
  53.     }
  54.    
  55.     public String syotteenTarkistus(String syote) {
  56.         String syotetty = syote;
  57.         while (true) {
  58.                 if (syotetty.equals("lopeta")) {
  59.                     this.breaker = false;
  60.                     break;
  61.                 }
  62.                 if (syotetty.equals(this.sana)) {
  63.                     this.kirjaimetVastaukseen();
  64.                     //this.pisteet++;
  65.                     break;
  66.                 }
  67.                 if (syotetty.length() == 1) {
  68.                     break;
  69.                 }
  70.                 elamienVahennys();
  71.                 System.out.println("Elämiä jäljellä: "+elamienMaaranTarkistus());
  72.                 System.out.println("Virheellinen syöte. Koeta uudelleen!");
  73.                 syotetty = this.syote.nextLine();
  74.         }        
  75.         return syotetty;            
  76.     }
  77.     public void vaarienKirjaintenTulostus() {
  78.         System.out.print("Väärät kirjaimet: ");
  79.            
  80.             for (String n : this.vaaratKirjaimet) {
  81.                 System.out.print(n);
  82.             }
  83.     }
  84.    
  85.     public void peliKierros() {
  86.         alustaPeli();
  87.  
  88.         while (this.breaker) {
  89.            
  90.             if (this.elamienMaaranTarkistus() == 0) {
  91.                 this.pelaaja.setPisteet(this.pisteet);
  92.                 break;
  93.             }
  94.            
  95.             System.out.println("Arvaa kirjain tai sana:");
  96.             rivinvaihto(1);
  97.            
  98.             arvaus(syotteenTarkistus(this.syote.nextLine()));
  99.             rivinvaihto(1);
  100.             System.out.print("Arvattava sana: ");
  101.             sananTulostus();
  102.             rivinvaihto(2);
  103.             vaarienKirjaintenTulostus();
  104.            
  105.             rivinvaihto(2);
  106.             pelaaja.onkoHuippupisteet(this.getNimi());
  107.             //pelaaja.setPelikerrat(1);
  108.         }
  109.         pelaaja.setPelikerrat(1);
  110.        
  111.     }
  112.    
  113.     public void kirjaimetListaan(){
  114.         this.sananKirjaimet.clear();
  115.         for (int i = 0;i<this.sana.length();i++) {
  116.             this.sananKirjaimet.add(Character.toString(this.sana.charAt(i)));
  117.         }
  118.     }
  119.     public void kirjaimetVastaukseen(){
  120.         this.arvatutKirjaimet.clear();
  121.         for (int i = 0;i<this.sana.length();i++) {
  122.             this.arvatutKirjaimet.add(Character.toString(this.sana.charAt(i)));
  123.         }
  124.     }
  125.    
  126.     public void arvaus(String arvaus) {
  127.        
  128.         if (arvaus.equals(this.sana)) {
  129.             System.out.println("Oikein arvattu!");
  130.            
  131.         } else if ((!this.sananKirjaimet.contains(arvaus))) {
  132.             elamienVahennys();
  133.             if (!(this.vaaratKirjaimet.contains(arvaus))) {
  134.                 this.vaaratKirjaimet.add(arvaus);
  135.                 System.out.println("Arvasit väärin! Menetit elämän. Jäljellä: "+this.elamienMaara);
  136.             } else {
  137.                 System.out.println("Syötit jo tämän kirjaimen. Menetit elämän. Jäljellä: "+this.elamienMaara);
  138.             }
  139.         }
  140.        
  141.         if (this.arvatutKirjaimet.contains(arvaus)) {
  142.             elamienVahennys();
  143.             System.out.println("Syötit jo tämän kirjaimen. Menetit elämän. Jäljellä: "+this.elamienMaara);
  144.         }
  145.        
  146.         for (int i = 0;i<this.sananKirjaimet.size();i++) {
  147.             if (this.sananKirjaimet.get(i).equals(arvaus)) {
  148.                 this.arvatutKirjaimet.set(i,arvaus);
  149.             }
  150.         }
  151.        
  152.         if (!(this.arvatutKirjaimet.contains("*"))) {
  153.             this.pisteet++;
  154.             System.out.println("Pisteesi on: "+this.pisteet+". Jatketaanko? Jatkaaksesi: y / muu lopettaa.");
  155.             if (this.syote.nextLine().equals("y")) {
  156.                 peliKierros();    
  157.             } else {
  158.                 this.pelaaja.setPisteet(this.pisteet);
  159.                 this.breaker = false;
  160.             }
  161.         }
  162.     }
  163.    
  164.     public void sananTulostus() {
  165.         for (String n:this.arvatutKirjaimet) {
  166.             System.out.print(n);
  167.         }
  168.     }
  169.     public void rivinvaihto(int maara) {
  170.         for (int i = 0; i < maara; i++) {
  171.             System.out.println("");
  172.         }
  173.     }
  174.     public int elamienMaaranTarkistus() {
  175.         if (this.elamienMaara == 0) {
  176.             System.out.println("Hävisit pelin!");
  177.             this.breaker = false;          
  178.         }
  179.         return this.elamienMaara;
  180.     }
  181.     public void elamienVahennys() {
  182.         this.elamienMaara--;
  183.     }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement