Eli miten voisin tehdä monivalinta tekstipelin qbasicilla koska oikeastaan vain tekstipelien tekoon sen latasin?
Näistä on puhuttu usein. Käytä sivun oikealla puolella olevaa "Haku"-lomaketta. Jos et saa aikaisemmista keskusteluista mitään irti, lue tämä ja sovella.
tgunner kirjoitti:
Näistä on puhuttu usein. Käytä sivun oikealla puolella olevaa "Haku"-lomaketta. Jos et saa aikaisemmista keskusteluista mitään irti, lue tämä ja sovella.
Olen kyllä lukenut tuon mutta tuossa ei ole "väärää vastausta" jossa esim. kuolee ja peli alkaa alusta tuossa voi kokeilla kaikkea eikä voi kuolla tarkoitin vähän laajempaa.
Toivottavasti ymmärsit/ymmärsitte.
No etkö voi tehdä semmosta? Jos osaisit qb:tä, kykenisit tekemään moisen ehdon.
ankka: cls print "syötkö rotanmyrkkyä?" print "1. joo, 2. emmä haluu, 3. ankka" input $i if $i = "1" then goto joo 'gotoja ei sit suosita, mut meen ton oppaan mukaan else if $i = "2" then goto ei else goto ankka 'peli alusta end if joo: print "no ni, kuolit" end ei: print "et syöny, pääsit pelin läpisdf sdfsdf" k: goto k
en oo sit koodannu qb:tä moneen vuoteen, joten syntaksin kaa saattaa olla jotain ongelmia.
Mod. Edit. Älyä niihin lainauksiin...
eikös tossa dos sulkeennu sitten suoraan koska haluaisin että se menee suoraan alku valikkoon kuoleman jälkeen.
Anteeksi tietämättömyyteni/kusipäisyyteni.
PS.Kyllä olen oikeasti näin tyhmä.
https://www.ohjelmointiputka.net/oppaat/opas.
https://www.ohjelmointiputka.net/oppaat/opas.
Vaikka en basicia osaakaan, veikkaisin että ihan goto valikko kun on ollut valikko: mutta jotenkin minulla on sellainen tunne että et osaa, ja kysymystesi perusteella et edes yritä opetella vaan haluat suorat vastaukset täältä.
kray kirjoitti:
Vaikka en basicia osaakaan, veikkaisin että ihan goto valikko kun on ollut valikko: mutta jotenkin minulla on sellainen tunne että et osaa, ja kysymystesi perusteella et edes yritä opetella vaan haluat suorat vastaukset täältä.
Kyllä minä jotenkin (huonosti)osaan eikä niiden vastausten tarvitse olla suoria
mutta mielellään melko tarkkoja.
Oikeastaan minulla on pelinteko jo menossa mutta siinä on yksi brobleema en millään jaksaisi kirjoittaa koko koodia tähän joten yritän kuvailla sen parhaani mukaan.
alussa on
1.aloita peli
2.lopeta peli
tässä kohta on kyllä gotot sun muut ja looppi
ne toimii ihan normalisti ja niinkuin pitääkin tulee pätkä tarinaa ja sitten uudet
vaihtoehdot 1.osta olutta
2.tutki kapakkaa
3.käy wc:ssä
nyt kun koitan laittaa.
1:
blaablaablaa ostit olutta
niin se alkaa herjaamaan dublicate label tässäkin on gotot oikein
Voi tehdä näinkin:
aLkUvAlIkKo: cls print "Mitä teeskentelet" print "1.alotan pelin" print "2.suljen pelin" input y if y = 1 then gosub alotuspaikka if y = 2 then end gosub alkuvalikko alotuspaikka: cls: print "Muaahhahahahahahaha luulitkos että pääset pelaamaan vastaamalla 1?" print "huitase jotain näppäintä xDxDxD" sleep gosub alkuvalikko
Chaosworm kirjoitti:
Voi tehdä näinkin:
Eikö GOSUB-käskyä käytettäessä kutsukohtaan ole mahdollista palata jälleen RETURN-käskyllä? Tällöin kutsukohta täytyy tallentaa jonkinlaiseen pinoon, jonka koko kasvaa tuossa nyt rajattomasti jokaisella GOSUB-kutsulla, kunnes muisti loppuu kesken ja ohjelma kaatuu. GOTO lienee siis parempi tuohon.
Ohjelmassa ei voi olla montaa kohtaa, jotka olisi kaikki nimetty samalla nimellä. Sun täytyy keksiä jokaiselle kohdalle oma kuvaava nimi - esimerkiks tossa sun pelissäs tutkikapakkaa, kayvessassa ja loppu vois olla hyviä.
Ja joo, käytä GOTO:a niinku hunajavohveli neuvoi äläkä GOSUB:ia :)
Muista aina jokaisen vastauksen tarkistamis-iffien jälkeen kirjoittaa GOTO kohtajossaoltiinjust, jottei väärä vastaus johda siihen, että peli vain etenee seuraavaan koodissa olevaan kohtaan. :)
Tässä pieni esimerkki yksinkertaisen tekstiseikkailun tekemisestä. GOTO:n ja GOSUB:n eron pitäisi myös selvitä.
alku: CLS PRINT "Valitse 1, 2 tai 3" PRINT "1) Osta olutta" PRINT "2) Käy vessassa" PRINT "3) Lopeta" INPUT valinta$ IF valinta$ = "1" THEN GOTO ostaolutta IF valinta$ = "2" THEN GOTO kayvessassa IF valinta$ = "3" THEN GOTO loppu GOSUB annamahdollinenvalinta 'jos ei valittu mitään, käydään gosubissa nimeltä annamahdollinenvalinta ja palataan takaisin tälle riville. GOTO alku 'palataan alkuvalikkoon ostaolutta: CLS PRINT "Ostit olutta. Siinä oli myrkkyä. Kuolit." SLEEP GOTO loppu kayvessassa: CLS PRINT "Olet vessassa. Mitä teet?" PRINT "1) Pese kädet" PRINT "2) Takaisin" INPUT valinta$ IF valinta$ = "1" THEN GOTO pesekadet IF valinta$ = "2" THEN GOTO alku GOSUB annamahdollinenvalinta: GOTO kayvessassa 'tässä kerrotaan taas että täytyy valita mahdollinen numero ja mennään takaisin kysymään valintaa annamahdollinenvalinta: PRINT "Valintasi ei ole mahdollinen! Syötä valintasi uudelleen!" SLEEP RETURN 'palataan sille riville, josta tätä gosubia kutsuttiin loppu: CLS PRINT "Peli ohi." SLEEP END
Toivottavasti tuo toimii. En testannut QB:llä. :)
Kiitos cornix nyt toimii ja sain tehtyä peliä jo hieman eteenpäinkin :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.