Bonustehtävä: Ohpesokkelo

Tämä on vapaaehtoinen haastava lisätehtävä. Tehtävässä tehdään yksinkertainen sokkelopeli, johon voit lopuksi keksiä haluamasi piirteitä. Käyttöliittymäohjelmointia ei vielä tarvitse tehdä itse, vaan sitä varten ladataan projektipohja.

Yksinkertainen sokkelo

Projektipohjan lataaminen

Lataa NetBeans-projektipohja ohpesokkelo.zip. Pura zip-tiedosto ohpesokkelo-hakemistoksi ja avaa se NetBeansissa valinnalla File->Open Project. Tehtävä tehdään kokonaisuudessaan tähän projektiin.

Projektissa pitäisi olla kolme pakkausta: kayttoliittyma, kuvat ja peli. Pakkaus on hakemisto, jonka alle luokkia ryhmitellään. Pakkauksessa sijaitsevan lähdekooditiedoston tulee alkaa package-määreellä, ja toisen pakkauksen luokan käyttäminen vaatii import-määreen. Tässä tehtävässä tarvittavat määreet annetaan tehtävänannoissa.

Käyttöliittymäpakkauksen koodia ei ole tarvetta muuttaa näissä tehtävissä, vaan kaikki uusi koodi tulee peli-pakkaukseen. Tutustu pikaisesti peli-pakkauksen luokkiin Paikka ja Kartta. Paikka-oliot esittävät paikkaa ruudukossa, eli rivi-sarake -paria. Kartta-olio pitää sisällään merkeistä koostuvan olion, joka luetaan tiedostosta kuten kartta.txt.

Pääohjelma löytyy pakkauksesta peli luokasta Paaohjelma. Suorita se. Jos kaikki on kunnossa, ohjelma tulostaa

Aloita tästä!

Paikka ja Kartta-luokkia ei ole tarpeen muuttaa tehtävän aikana, mutta ei se kiellettyäkään ole.

Kartan lukeminen

Muuta pääohjelmaa siten, että se lukee kartta.txt-tiedoston Kartta-olioksi. Tee pääohjelma, joka tulostaa luetun kartan käyttäen kartta-olion metodeja.

package peli;

public class Paaohjelma {
    public static void main(String[] args) {
        Kartta kartta = Kartta.lueTiedostosta("peli/kartta.txt");
        // Kirjoita koodia tähän.
        // Käytä kartta-olion metodeja leveys, korkeus ja merkkiKohdassa.
    }
}
    

Ohjelman pitäisi tulostaa kartta.txt:n sisältö.

Pelilogiikka

Käyttöliittymä tarvitsee pelilogiikan toteuttavan olion. Tee pakkaukseen peli luokka Pelilogiikka, ja toteuta sinne seuraavat metodit

sokkelonLeveys- ja sokkelonKorkeus-metodien tulee palauttaa kartan leveys ja korkeus. kuvaPaikassa-metodin tulee palauttaa jonkin kuvat-kansiossa olevan kuvan nimi – esimerkiksi "seina" tai "lattia".

Tee niin, että kuvaPaikassa palauttaa kunkin '#'-merkin kohdalla "seina", kunkin '.'-merkin kohdalla "lattia" ja aloituskohtamerkin '@' kohdalla "ukkeli".

Lisää pääohjelman loppuun käyttöliittymän alustus pelilogiikka-oliollasi seuraavasti

package peli;

import kayttoliittyma.Kayttoliittyma;

public class Paaohjelma {
    public static void main(String[] args) {
        Kartta kartta = Kartta.lueTiedostosta("peli/kartta.txt");
        Pelilogiikka pelilogiikka = new Pelilogiikka(kartta);
        new Kayttoliittyma(pelilogiikka);
    }
}
    

Jos kaikki toimii, ohjelma näyttää sokkelon graafisesti.

Liikkuminen

Kun ohjelmassa painetaan nuolinäppäimiä, käyttöliittymä yrittää kutsua seuraavia liikkumismetodeja

Toteuta nämä metodit pelilogiikkaolioosi siten, että pelaaja voi liikkua sokkelossa. Tarkista, ettei pelaaja voi liikkua seinän sisään eikä ulos kartalta. Metodien tulisi palauttaa true, jos siirtyminen onnistui, ja false, jos ei.

Vihje: nuo neljä metodia tulevat luultavasti olemaan aika samanlaisia. On mahdollista tehdä yksi metodi yritaSiirtya, jota muut metodit käyttävät.

Keksi lisää!

Peruspeli on nyt valmis. Nyt voi olla hyvä hetki siistiä koodia. Kun olet luomukseesi tyytyväinen, keksi peliin haluamasi ominaisuus ja toteuta se. Huomaa kuvat-kansiossa olevat valmiit kuvat. Voit lisätä peliin myös omia kuviasi. Tässä joitakin ideoita: