5. vaje: VISLICE (30.03. - 06.04.)

Vislice

Napišite program, ki omogoča igranje igre Vislice. Program iz tabele fraz naključno izbere eno frazo, ki jo nato igralec ugiba črko za črko (simulacija poteka igre). 
Program lahko napišete povsem po svoje, lahko pa si pomagate z osnovo (Vislice.java), ki jo skladno s spodnjimi navodili postopoma dopolnite. 
Ustvarite paket, v katerem naj se nahajata dva razreda: Vaje4 (s prejšnjega tedna vaj) in Vislice. Kodo razbijte na smiselne metode (naj ne bo vse skupaj v metodi main). Program naj uporablja naslednje spremenljivke: fraza (fraza, ki jo uporabnik uganjuje), uganil (tabela, v kateri je za vsako črko fraze shranjena boolean vrednost, ki označuje, ali je igralec tisto črko že uganil) ter  steviloNapak (koliko napak je uporabnik že naredil to igro).
Program naj bo komentiran - pišite kratke in dokumentacijske komentarje.

Dopolnite razred Vislice na naslednji način:

1. Napišite metodo novaIgra(), ki inicializira spremenljivke fraza (vanjo zapiše frazo iz tabele fraze), tabelo uganil (tabela naj bo enako dolga, kot je dolžina niza fraza; vse vrednosti v tej tabeli postavi na false) ter steviloNapak (vrednost postavi na nič). 

2. Napišite metodo jeUganil(),ki vrne true, če je igralec frazo že uganil, in false sicer (metoda preveri vsebino tabele uganil; če so v njej vse vrednosti true, tudi metoda vrne true, sicer vrne false).

3. Napišite metodo izpisiUganko(), ki izpiše trenutno frazo (na mestih, ki jih igralec še ni uganil, naj metoda izpiše piko; izpiše naj tudi morebitne presledke). 

4. Napišite "srce" programa - metodo postaviVprasanje(), ki izpiše niz "Naredite lahko še XXX napak:" in prebere naslednjo črko, ki jo vpiše igralec. Metoda naj nato preveri, če je črka prava (v tem primeru naj na odgovarjajočih mestih v tabeli uganil postavi vrednost true), v nasprotnem primeru naj poveča vrednost spremenljivke steviloNapak.

5. Dodatna naloga: popravite metodo postaviVprasanje() tako, bo program deloval pravilno, tudi če bo igralec namesto ene črke vpisal celotno frazo. V tem primeru naj metoda preveri, ali je celotna fraza pravilna. Če je fraza pravilna, se igra konča, sicer se poveča vrednost spremenljivke steviloNapak.

6. Z uporabo metod getCrko() in izpisi(), ki ste jih napisali na prejšnjih vajah, igro opremite z grafičnim prikazom obešanja. Vislice naj sem med potekom igre izrisujejo postopoma (več napak, več slike je prikazane). Ob koncu igre, če igralec fraze ni uganil, naj program izriše vislice, na primer tako:

 *********      
* *
* * *
* * *
* * *
* * *
* *
* *********
* *
* *
* * *
* * *
* * *
*
*
****************
Uporabite kar metodo Vaje4.getCrka(), pri čemer je ne kopirajte v razred Vislice, ampak jo kličite iz razreda Vaje4.