Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Tekstiseikkailun ohjelmointi Javalla

lare290 [10.04.2013 07:13:02]

#

Noniin tarvitsen apua. ohjelmoin tekstiseikkailua, mutta iski ongelma että pitää tehdä väh. 2 vaihtoehtoa joka kohtaan ja se tarkoittaa sitä, että tarina haaroittuu koko ajan. ongelma siis on se, että en pysty tekemään vaihtoehto pohjaista massiivista java ohjelmaa. Sormet sauhuaa muuten koko ajan In ja Fn kohdalla. Olisiko mahdollista tehdä mitään?

The Alchemist [10.04.2013 08:23:59]

#

Nyt olet siinä pisteessä, kun joudut opettelemaan ohjelmointia pelkän syntaktisesti validin sekasotkun kirjoittamisen sijaan.

Yksi vaihtoehto olisi rakentaa peli linkitetyn listan tapaisesti, jossa jokainen ruutu on oma olionsa, ja olioilla on kaksi tai useampaa haaraa, jotka johtavat uusille sivuille. Sivuilla voisi myös olla kokoelma resursseja, jotka kerääntyvät pelaajalle tehtyjen valintojen mukaan ja kulkevat pelaajaolion mukana sivulta toiselle. Ja niin edelleen.

Metabolix [10.04.2013 12:41:59]

#

Olihan ihan mahdotonta käyttää hakua ja lukea aiempaa keskustelua, jossa on jo yksi vaihtoehto massiiviselle if-lauseviidakolle?

Parempi ratkaisu on tehdä noin 30–60 koodiriviä pitkä tekstiseikkailumoottori, joka lukee tarinan kaikkine vaihtoehtoineen tekstitiedostosta. Silloin ei tarvitse kääntää ohjelmaa uudestaan, kun tarina muuttuu, vaan tarinan voi kirjoittaa tavallisella tekstieditorilla.

lare290 [10.04.2013 14:08:41]

#

Joo anteeksi että aloitin uuden keskustelun. mutta siis en osaa tehdä olioita enkä pelimoottoria joten siihen tarvittaan apua

Metabolix [10.04.2013 14:26:00]

#

Ohjelmointia ei opi parissa päivässä eikä myöskään pelkästään kopioimalla muiden koodeja, joten nyt viisainta olisi vain kärsivällisesti koodailla enemmän ja opetella vähitellen uusia asioita. Tilanteesta "en osaa" ei pidä suoraan siirtyä tilanteeseen "tarvitsen apua" vaan ensin tilanteeseen "otanpa itse selvää". Käytä hakukoneita ja yksinkertaisia hakusanoja: Java, oliot; Java, tekstitiedostot. Voit myös suorittaa MOOC-kurssin, niin ehkä opit vähän lisää.

Pelimoottorin perusrakenne on sellainen, että ensin luetaan tiedostosta seikkailu sopiviin muuttujiin ja asetetaan nykytilanteeksi seikkailun ensimmäinen tilanne ja sitten silmukassa aina tulostetaan tilanteen teksti ja valinnat, pyydetään valinta ja vaihdetaan tilannetta sen mukaan.

Tässä on runko (main-metodi), johon sinun tarvitsee vain lisätä muutama puuttuva osa.

Map<String, Tila> tilat = lataa("tarina.txt");
String nimi = "Alku";
while (tilat.containsKey(nimi)) {
	Tila tila = tilat.get(nimi);
	tila.tulostaTarina();
	tila.tulostaValinnat();
	int i = lueLuku();
	nimi = tila.haeSeuraavanNimi(i);
}

Tarinan sisältävä tiedosto voisi näyttää vaikka tältä:

Alku: (Tässä on tarina.) Tästä seikkailu alkaa!
Metsä: (Tämä on valintavaihtoehto.) Aloita peli.

Metsä: Olet metsässä, ...
Tie: Mene tielle.
Puu: Kiipeä puuhun.

Tie: Olet tiellä, huh, mitä nyt?
Metsä: Mene takaisin metsään.

Puu: Olet puussa. Aika korkealta tuntuu.
Metsä: Kiipeä alas.
Hyppy: Hyppää.

Hyppy: Hyppäsit puusta. Kuolit. Peli päättyi.
Loppu: Lopeta.

(Edit: Lisäsin esimerkkejä.)

lare290 [10.04.2013 17:20:11]

#

vau. kiitos paljosti avusta. yritän soveltaa noita juttuja omaan peliin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta