Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package hirsipuu;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class SananArvaus {
- private String sana;
- private ArrayList<String> sananKirjaimet = new ArrayList<>();
- private ArrayList<String> arvatutKirjaimet = new ArrayList<>();
- private ArrayList<String> vaaratKirjaimet = new ArrayList<>();
- private SananValinta uusiSana = new SananValinta();
- private int elamienMaara = 5;
- private int pisteet;
- private boolean breaker = true;
- private Scanner syote = new Scanner (System.in);
- private Pelaaja pelaaja;
- public SananArvaus(Pelaaja pelaaja) {
- this.uusiSana.sanojenLisays();
- this.sana = uusiSana.sananGenerointi();
- this.pelaaja = pelaaja;
- this.pisteet = 0;
- }
- public SananArvaus(String sana){
- this.sana = sana;
- }
- public String getNimi() {
- return "sanan arvaus";
- }
- public void taytaTahdilla() {
- this.arvatutKirjaimet.clear();
- for (int i = 0;i<sananKirjaimet.size();i++) {
- this.arvatutKirjaimet.add("*");
- }
- }
- public void alustaPeli() {
- this.breaker = true;
- this.elamienMaara = 5;
- this.sana = uusiSana.sananGenerointi();
- this.vaaratKirjaimet.clear();
- kirjaimetListaan();
- taytaTahdilla();
- for (String tahti:this.arvatutKirjaimet) {
- System.out.print(tahti);
- }
- System.out.println("");
- }
- public String syotteenTarkistus(String syote) {
- String syotetty = syote;
- while (true) {
- if (syotetty.equals("lopeta")) {
- this.breaker = false;
- break;
- }
- if (syotetty.equals(this.sana)) {
- this.kirjaimetVastaukseen();
- //this.pisteet++;
- break;
- }
- if (syotetty.length() == 1) {
- break;
- }
- elamienVahennys();
- System.out.println("Elämiä jäljellä: "+elamienMaaranTarkistus());
- System.out.println("Virheellinen syöte. Koeta uudelleen!");
- syotetty = this.syote.nextLine();
- }
- return syotetty;
- }
- public void vaarienKirjaintenTulostus() {
- System.out.print("Väärät kirjaimet: ");
- for (String n : this.vaaratKirjaimet) {
- System.out.print(n);
- }
- }
- public void peliKierros() {
- alustaPeli();
- while (this.breaker) {
- if (this.elamienMaaranTarkistus() == 0) {
- this.pelaaja.setPisteet(this.pisteet);
- break;
- }
- System.out.println("Arvaa kirjain tai sana:");
- rivinvaihto(1);
- arvaus(syotteenTarkistus(this.syote.nextLine()));
- rivinvaihto(1);
- System.out.print("Arvattava sana: ");
- sananTulostus();
- rivinvaihto(2);
- vaarienKirjaintenTulostus();
- rivinvaihto(2);
- pelaaja.onkoHuippupisteet(this.getNimi());
- //pelaaja.setPelikerrat(1);
- }
- pelaaja.setPelikerrat(1);
- }
- public void kirjaimetListaan(){
- this.sananKirjaimet.clear();
- for (int i = 0;i<this.sana.length();i++) {
- this.sananKirjaimet.add(Character.toString(this.sana.charAt(i)));
- }
- }
- public void kirjaimetVastaukseen(){
- this.arvatutKirjaimet.clear();
- for (int i = 0;i<this.sana.length();i++) {
- this.arvatutKirjaimet.add(Character.toString(this.sana.charAt(i)));
- }
- }
- public void arvaus(String arvaus) {
- if (arvaus.equals(this.sana)) {
- System.out.println("Oikein arvattu!");
- } else if ((!this.sananKirjaimet.contains(arvaus))) {
- elamienVahennys();
- if (!(this.vaaratKirjaimet.contains(arvaus))) {
- this.vaaratKirjaimet.add(arvaus);
- System.out.println("Arvasit väärin! Menetit elämän. Jäljellä: "+this.elamienMaara);
- } else {
- System.out.println("Syötit jo tämän kirjaimen. Menetit elämän. Jäljellä: "+this.elamienMaara);
- }
- }
- if (this.arvatutKirjaimet.contains(arvaus)) {
- elamienVahennys();
- System.out.println("Syötit jo tämän kirjaimen. Menetit elämän. Jäljellä: "+this.elamienMaara);
- }
- for (int i = 0;i<this.sananKirjaimet.size();i++) {
- if (this.sananKirjaimet.get(i).equals(arvaus)) {
- this.arvatutKirjaimet.set(i,arvaus);
- }
- }
- if (!(this.arvatutKirjaimet.contains("*"))) {
- this.pisteet++;
- System.out.println("Pisteesi on: "+this.pisteet+". Jatketaanko? Jatkaaksesi: y / muu lopettaa.");
- if (this.syote.nextLine().equals("y")) {
- peliKierros();
- } else {
- this.pelaaja.setPisteet(this.pisteet);
- this.breaker = false;
- }
- }
- }
- public void sananTulostus() {
- for (String n:this.arvatutKirjaimet) {
- System.out.print(n);
- }
- }
- public void rivinvaihto(int maara) {
- for (int i = 0; i < maara; i++) {
- System.out.println("");
- }
- }
- public int elamienMaaranTarkistus() {
- if (this.elamienMaara == 0) {
- System.out.println("Hävisit pelin!");
- this.breaker = false;
- }
- return this.elamienMaara;
- }
- public void elamienVahennys() {
- this.elamienMaara--;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement