Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: C++: Tekstiseikkailuengine

mankeli [14.09.2004 18:32:56]

#

HNO3 Tekstiseikkailuengine on tehokas tekstiseikkailupeleille tarkoitettu peliengine joka käyttää kompaktia ja yksinkertaista TH-skriptikieltä. Engine on PUBLIC DOMAIN:ia eli voit käyttää sitä omissa produktioissasi kuten parhaaksi näet!
HNO3 Tekstiseikkailuenginen lähdekoodin lisäksi tulee kaksi esimerkkipeliä. Peli 2 on tejeezin tekemä ja se demonstroi muun muassa suosituista ZORK-tekstiseikkailupeleistä tuttua ASCII-grafiikkaa HNO3 Tekstiseikkailuenginen kanssa.

Koodin toiminta:
HNO3 Tekstiseikkailuengine toimii niin että se lukee TH-skriptitiedostosta ensin tilannekuvauksen rivimäärän (tästälähtien A) , sitten A riviä tilannekuvausta ja tulostaa sen konsolille.
Sitten HNO3 Tekstiseikkailuengine lukee tiedostosta etenemisvaihtoehtojen määrän (tästälähtien B) sekä oikean vaihtoehdon (tästälähtien C). Nyt HNO3 Tekstiseikkailuengine lukee tiedostosta B riviä jotka ovat vaihtoehdot. (HNO3 Tekstiseikkailuengine lisää itse numerot vaihtoehdoille!)
Nyt käyttäjältä kysytään mitä tehdään ja kysymys pystyy ikuisessa loopissa kunnes annettu vaihtoehto on väliltä 1 - B. Validin vaihtoehdon saamisen jälkeen HNO3 Tekstiseikkailuengine lukee tiedostosta taas B riviä ja näyttää sen rivin joka vastasi valitsemaasi vaihtoehtoa.
Nyt HNO3 Tekstiseikkailuengine tarkistaa että jos antamasi vaihtoehto oli C niin siirrytään seuraavaan kysymykseen (sama rujanssi alusta) ja jos se oli jotain muuta, peli loppuu. Kun TH-skriptitiedosto loppuu, näytetään viesti jossa onnitellaan pelin läpäisemisestä.

tekstiseikkailuengine.cpp

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int main(int argc, char *argv[])
{
        FILE *f=NULL;
        char BUFFERI[200];
        int juttu,himo,wamma,korpi;
        f = fopen(argv[1],"r");
        if (!f)
        {
                cout << "tiedostoa ei ole." << endl;
                return(1);
        }
ALUSTxD:;
                fseek(f,0,SEEK_SET);
        while (fgets(BUFFERI,200,f))
        {
                himo = atoi(BUFFERI);
                for (juttu=0;juttu<himo;juttu++)
                {
                        fgets(BUFFERI,200,f);
                        cout << BUFFERI;
                }

                fgets(BUFFERI,200,f);
                himo = atoi(BUFFERI);
                fgets(BUFFERI,200,f);
                wamma = atoi(BUFFERI);
                for (juttu=0;juttu<himo;juttu++)
                {
                        fgets(BUFFERI,200,f);
                        cout << (juttu+1) << ". " << BUFFERI;
                }

                korpi = -1;
                while(!(korpi >= 1 && korpi <= himo))
                {
                        cout << "-> -> -> ??? ";
                        cin >> korpi;
                }
                for (juttu=0;juttu<himo;juttu++)
                {
                        fgets(BUFFERI,200,f);
                        if (korpi==(juttu+1)) cout << BUFFERI;
                }
                cout << endl << endl;
                        if (korpi != wamma) goto KUALLU;
        }
        goto MAGGARA;
        KUALLU:;
                   cout << "haha luuseri kuolit!!!!! :D :D :D" << endl;
                cout << "kirjota 5 jos haluut uusixxxx!!!" << endl;
                        cin >> juttu;
                        if (juttu==5) goto ALUSTxD;
                        fclose(f);
                   return(1);
MAGGARA:;
                        fclose(f);
        cout << "VOITIT...........! :-o :-o" << endl;
        return(0);
}

mummoseikkailu.ths (esimerkkipeli 1)

20
Olet viemärissä.
Menetkö..?
3
3
Munalle
Ravintolaan
rAutakauppaan
ei saa munata!
oot jo valmiix laeski!!!!!!!!!!!!!!!!!1
vautsi sä keksit tän jutu n juoanoen!
3
Olet rautakaupassa, mieleesi tulee perverssi juttu
Nauran jutulle yksinäsi. Kauppias katsoo sinua oudosti.
Mitä haluat ostaa?
3
1
Liisteriä
Nauloja
Tomaatteja
jännää!
kiihoittavaa!
;)
1
Olet siis ostanut liisteriä koska päätit juuri..?
5
3
Tapetoida seinäsi
Tapetoida naapurin seinän
Tapetoida mummosi seinään
Syödä liisteriä
mutsis
ootko läski luuseri
ootko luuseri joka on läski
that's teh point!!
yummy ;---------D
MULLON MUNA..........MÄGGÄRÄ!
3
Heh! Keksit tapetoida mummosi seinään!
Menet mummolaan ja mummo onkin kuollut aivokuppaan!
Mitä teet mummosta?
4
4
Juusto Fodue
Kebab
Porkkanaraaste
Kansaneläkelaitos
NAM! :D
YUMMY :D
YUMMU YUMSTERS :D
hyi!!!!!! :--------oooooooooooooooooooooooooo

kebabravintolaseikkailu (esimerkkipeli 2 - kiitos tejeez!)

9
seikkailu
      __
     / /_     ____  _     ___
    /   /    / __/ //    /  / /
   / /\ \   / __  //__  /__/ /__
  /_/  \_\ /___  /___/ /  / /__/
     ravintolassa
TERVE tuloo teksti pelii :D:D:DD:D:
haaluuks pelaa :D:D:D
2
1
joo
ei
moi
homo
2
nyt sä oot kebab ravintolassa :D:D
mitä tillaat
2
2
pitaleipä kebab
keba ranskalaisil
haha pita leipä kebabii ei oo haha
hii
2
nyt sul on ranxalaiskebab
mttä teet
3
1
syön sen
heitän kaverin naamale :D:D
lähen ulos
söit kebabin
kaveri suuttu
hei hei
1
mitä teet
2
2
lyöt kaverias
lähet kotii
kaveri ei tykäbny
lähit kotii

tejeez [14.09.2004 18:41:09]

#

Paras tekstiseikkailuengine jota oon nähny! :D

hunajavohveli [18.09.2004 12:51:03]

#

Tää olis ehkä jopa saatettu julkaista ilman tuota esimerkkipeliä. ;)

vehkis91 [01.02.2008 20:31:08]

#

Hieno moottori...

Vastaus

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

Tietoa sivustosta