
JMiinaharava versio 1.0

    JMiinaharava on Javalla toteutettu versio Windows-kyttjrjestelmn
    klassisesta Minesweeper-pelist. Peliss on seuraavat toiminnot:

    -   Uuden pelin aloittaminen joko ennalta mrtyin asetuksin tai pelaajan
        valitsemilla asetuksilla ja valitun pelin pelaaminen.
    -   Parhaiden tulosten tarkastelu pelattaessa ennalta mrtyill
        asetuksilla.
    -   Pelin asetusten muuttaminen.
    -   Peliss on mys sisnrakennettu aputoiminto, jonka kautta pelaaja voi
        lukea pelin snnt.

Vaatimukset

    JMiinaharava vaatii Java Runtime Environment version 1.5.0 tai uudemman.
    JMiinaharavan pitisi toimia kaikissa jrjestelmiss joihin JRE 1.5.0 on
    saatavissa ja asennettuna.
    Ohjelman toimivuus on testattu Windows XP ja Linux-jrjestelmiss.

Asennusohjeet

    Pura zip-paketti valitsemaasi hakemistoon.

    Paketin sislt:
        readme.pdf       -  Kytt- ja asennusohje. 
        readme.txt       -  Kytt- ja asennusohje tekstin, tm tiedosto
        miinaharava.bat  -  Kynnistystiedosto Windows-jrjestelmi varten
        miinaharava.sh 	 -  Kynnistystiedosto Unix/Linux-jrjestelmi varten
        miinaharava.jar  -  Varsinaiset ohjelmatiedostot sisltv pakkaus
        harava.ini       -  Ohjelman asetustiedosto
        images/          -  Sislt pelin kyttmt kuvat

Ohjelman kynnistys

    Windows
        Kynnist ohjelma suorittamalla tiedosto miinaharava.bat.

    Unix/Linux
        Kynnist ohjelma suorittamalla tiedosto miinaharava.sh.

    Vaihtoehtoisesti ohjelman voi kynnist komentorivilt ohjelman
    hakemistosta komennolla

        java -jar miinaharava.jar
 
Pelin tavoite ja kulku

    Pelin tarkoituksena on paikallistaa pelialueen (ruudukko jonka koon pelaaja
    voi valita aloittaessaan uuden pelin) sisltmt miinat mahdollisimman
    lyhyess ajassa.

    Miinojen sijainnin ptteleminen perustuu miinaruutuja ympriviin
    ruutuihin. Jos ruutu on miinaton, niin tllaista ruutua klikattaessa
    kyseiseen ruutuun ilmestyy numero vlilt 1-8, joka ilmoittaa ruudun
    viereisiss ruuduissa olevien miinojen lukumrn. Jos ruudun viereisiss
    ruuduissa ei ole miinoja, mys ruudun viereisten ruutujen miinamrt
    paljastetaan samalla tavalla. Aloitusruutu ei sisll koskaan miinaa.

    Jos pelialueella on vierekkin useita miinattomia ruutuja, kaikki tllaiset
    ruudut paljastetaan kerralla, sikli kun ne kuuluvat samaan alueeseen.
    Alue on siis sellainen miinaton osa pelialuetta, jota rajaavat ruudut
    joiden vieress on ainakin yksi miina.

    Jos pelaaja on mielestn paikallistanut miinan, pelaaja voi merkit
    kyseisen ruudun miinoitetuksi. Pelin tarkoituksena on merkit tll tavoin
    kaikki pelialueella olevat miinaruudut.

    Peli pttyy voittoon silloin kun pelaaja on merkinnyt kaikki pelialueen
    miinat ja paljastanut kaikki pelialueen miinattomat ruudut. Toinen tapa
    jolla peli voi ptty on pelaajan paljastaessa miinoitetun ruudun, jolloin
    peli pttyy tappioon. Tllin kaikki pelialueen miinat paljastetaan.
    Samoin paljastetaan pelaajan miinoitetuksi merkitsemt miinattomat ruudut.

Vaikeusasteet

    Pelaajan valittavana on kolme eritasoista vaikeusastetta. Vaikeustaso
    mr pelialueen koon ja miinojen mrn. Parhaat pelitulokset
    tallennetaan vain nill ennalta sdetyist asetuksilla pelatuista peleist.

    Vaikeusasteet:
    -   helppo: 9x9 ruutua, 10 miinaa
    -   medium:16x16 ruutua, 40 miinaa
    -   vaikea: 22x22 ruutua, 100 miinaa

    Tmn lisksi pelaaja voi itse valita haluamansa kokoisen pelialueen
    tietyiss rajoissa: 

    Pelialueen leveys ja korkeus voivat vaihdella vlill 2-50 ruutua. Samoin
    miinojen mr voi sdell alkaen yhdest miinasta enintn
    50 prosenttiin pelialueen ruuduista.
 
Kyttliittym

Pelin ohjaus

    Ohjelmassa on graafinen kyttliittym, jota ohjataan hiirell.
    Nppimist tarvitaan pelin ohjaamiseen vain silloin kun pelaaja onnistuu
    saavuttamaan parhaan tuloksen. Tllin pelaajaa pyydetn syttmn nimi
    high-score -listalle.

    Ohjelman valikoita ohjataan hiiren ykksnppimell. Itse peliss kytetn
    kolmea hiiren nppint.

Valikot

    Peliss on kaksi valikkoa: Peli ja Ohje. Peli -valikon alta lytyvt
    pelin hallintaan liittyvt toiminnot. Ohje -valikon alta lytyy kuvaus
    pelin snnist.

    Peli -valikko:
    -   Uusi: Aloittaa uuden pelin nykyisill asetuksilla
    -   Parhaat tulokset: Nytt parhaat tulokset kullakin vaikeustasolla.
        Kutakin vaikeustasoa kohti nytetn parhaan pelaajan nimi ja
        tmn kyttm aika.
    -   Asetukset: Vaihtaa peliss kytettvi asetuksia. Voit valita jonkun
        kolmesta ennalta mritellyst vaikeustasosta, tai valita haluamasi
        kokoisen pelialueen ja miinojen mrn valitsemalla mukautettu.
    -   Lopeta: Lopettaa ohjelman.

    Ohje -valikko:
    -   Snnt: nytt pelin kyttohjeen ja kuvauksen pelin snnist.

Pikkuna

    Valtaosan pikkunan tilasta vie pelialue. Se on ruuduista koostuva kentt,
    jonka sisll varsinainen peli tapahtuu.

    Aluksi kukin ruutu on tyhj. Painettaessa ruutua hiiren ykksnppimell
    ruutu ja sen viereiset miinattomat ruudut paljastetaan. Tllin ruutuun
    ilmestyy sen viereisten ruutujen sisltmien miinojen lukumr. Jos
    painettu ruutu on miinoitettu, peli pttyy hvin.

    Painamalla ruutua hiiren kakkosnppimell ruutu merkitn miinoitetuksi,
    jolloin ruutuun ilmestyy lippu merkitsemn sit ett se on tunnistettu
    miinoitetuksi. Tmn jlkeen ruutua ei voi en paljastaa hiiren
    ykksnppimell. Lipun voi poistaa ruudusta painamalla ruutua uudestaan
    kakkosnppimell.

    Kun kaikki ruudun viereiset miinat on paikallistettu, voi kaikki ruudun
    viereiset tyhjt ruudut paljastaa painamalla ruutua hiiren keskinppimell.
    Jos ruudun viereiset miinat on merkitty vriin, peli pttyy tappioon,
    sill tllin paljastetaan miinoitettu ruutu.

    Pelin pttyess pelaajan voittoon tarkastetaan saavuttiko pelaaja parhaan
    tuloksen. Jos nin kvi, niin nytetn ikkuna, johon pelaaja voi sytt
    oman nimens high-score -listaa varten.

    Pikkunan vasemmassa alareunassa oleva kentt Aika ilmaisee tss peliss
    kytetyn ajan. Aika alkaa nollasta aloitettaessa uusi peli klikkaamalla
    uuden pelialueen ensimmist ruutua. Aika pyshtyy nyttmn peliin
    kulunutta aikaa pelin pttyess.

    Pikkunan oikeassa alareunassa oleva kentt Miinat nytt kuinka monta
    miinaa pelaajalla on viel paikallistamatta. Kentt pivitetn sit mukaa
    kun pelaaja merkitsee pelialueen ruutuja miinoitetuksi tai miinattomaksi.

Virhetilanteet

    Ohjelman yleinen suhtautuminen virhetilanteiden hoitoon on korjata virhe
    kyttjlt piilossa. Tmn vuoksi ohjelma ei sisll mitn virhetilannetta
    joka suoranaisesti vaatisi kyttj tekemn jotain virheen korjaamiseksi.

    Mahdollisia virhetilanteita:
    -   Tiedostoa readme.txt ei lydy tarkasteltaessa pelin sntj
        Nytetn ilmoitus ohjetiedoston puuttumisesta.
    -   Tiedostoa harava.ini ei lydy tai sit ei voi lukea tarkasteltaessa
        parhaita tuloksia
        Nytetn parhaat tulokset siten ett mitn tasoa ei ole lpisty.
    -   Tiedostoa harava.ini ei lydy kirjoitettaessa parasta tulosta
        Luodaan uusi harava.ini tiedosto johon tiedot kirjoitetaan.

Sanasto

ruutu
    Pienin yksittinen pelialueen osa. Voi sislt miinan. Voidaan merkit
    miinalliseksi tai epvarmaksi.

pelialue
    Ruutujen muodostama alue, jossa varsinainen peli tapahtuu.

miina
    Pelialueelle piilotettu objekti, jonka paljastaminen johtaa hvin.
    Pelin tarkoitus on paikallistaa kaikki pelialueen sisltmt miinat.

merkit ruutu
    Merkit ruutu miinalliseksi.

paljastaa ruutu, tarkistaa ruutu
    Katsoa ruudun sislt. Jos ruutu on miinaton, paljastetaan ruudun
    viereisiss ruuduissa olevien miinojen mr. Jos ruutu on miinallinen,
    peli pttyy hvin.

miinallinen ruutu, miinoitettu ruutu
    Ruutu joka sislt miinan.

miinaton ruutu, tyhj ruutu
    Ruutu joka ei sisll miinaa.

epvarma ruutu
    Ruutu jonka miinallisuutta pelaaja ei pysty pttelemn nykyisest
    pelitilanteesta.

alue, miinaton alue
    Miinattomien ruutujen muodostama yhteninen pelialueen osa.

voitto
    Pelin pttyminen siihen ett, pelaaja on merkinnyt kaikki pelialueen
    miinat ja paljastanut kaikki pelialueen miinattomat ruudut.

hvi
    Pelin pttyminen siihen ett, pelaaja paljastaa miinallisen ruudun.
    Tllin paljastetaan kaikki pelialueen sisltmt miinat sek pelaajan
    vrin merkitsemt ruudut.

paras tulos, high-score
    Pelin pttyminen voittoon kytten vhemmn aikaa kuin edellinen
    paras tulos.
