Are you looking to make a "Choose your own Adventure" style branching story (see www.cyoa.com) , or something more like Zork (see https://en.m.wikipedia.org/wiki/Zork) where you type in commands like say go north or get lamp?
The first is far simpler to implement.
old style textual adventure
Root / Programming Questions / [.]
Jollynero74Created:
Hi to everyone, sorry for my bad English. I write from Italy
I want create a simply old style textual adventure.
Someone can tell me how made a program line in smilebasic like this example:
"you arrive at the door, do you want open or go away?"
You open the door=press A
You go away=press B
Thank you
Thank you! I already write the first part of the story, it's a simple mystery story with textual crossroads(no animation, only text) . My problem now is connect with buttons a part of the story to another.(if you open the door press button A, if go away press button B)
Following tutoriasl of smilebasic i made the menu of adventure. Now I can't know how to make the part of program that when I pressing A button the program go to another page with the first part of text of the story and after make a crossroad to another 2 pages
I try the command:
A=button() goto @firstpage
But it is not exact. :-(
The code of my menu title is :N3H323ZD
here i can help. you are typing the command wrong. what you want is : IF BUTTON() AND #A THEN GOTO @WHEREVER. this will only send you to @WHEREVER when the button A is pressed. change the button name to say #B or #X to make different input registers. and dont forget a GOTO @WHEREVER after the IF THEN statement so it doesnt pass the imput register. and one last thing, you will want to make the button part BUTTON(3) because then it will only activate when the button is released so you dont go zipping through the game. i hope this helped. check back here if you get it working.
example:
LOCATE X,Y: PRINT " DOOR TO YOUR LEFT, HALLWAY TO YOUR RIGHT" LOCATE X,Y: PRINT" PRESS A FOR HALLWAY,AND Y FOR DOOR" @START IF BUTTON(3) AND #A THEN GOTO @HALLWAY IF BUTTON(3) AND #Y THEN GOTO @DOOR VSYNC GOTO @START @HALLWAY "NONSENSE CODE FOLLOWING THE RULES FROM BEFORE" GOTO @HALLWAY @DOOR "NONSENSE CODE FOLLOWING THE RULES FROM BEFORE" GOTO @DOOR
It would be much easier to use data. It's not that hard to learn, honestly.
ACLS DIM AREA$[5] LB$="@AREA1" WHILE TRUE CLS RESTORE LB$ FOR I=0 T 4 READ AREA$[I] NEXT PRINT "You can see:" + AREA$[0] PRINT "A:" + AREA$[1] PRINT "B:" + AREA$[2] REPEAT IF BUTTON(3) AND #A THEN LB$=AREA$[3] IF BUTTON(3) AND #B THEN LB$=AREA$[4] UNTIL BUTTON(3) PRINT "You move on to the next area..." WAIT 60 WEND @AREA1 DATA "a door to your left, hallway to your right","Enter hallway","Enter door","@AREA2","@AREA3" @AREA2 DATA "(Blank)","(Blank)","(Blank)","","" @AREA3 DATA "(Blank)","(Blank)","(Blank)","",""I am unable to test it right now, but it should work. If you need any more help, I'll be here. :)
Please, please use functions instead of GOTO and GOSUB. You don't want spaghetti code; you want something you can maintain and edit.
I also agree with plancake. There is no reason you couldn't make this completely data driven. You could simply have each choice refer to a text file, then open that and print it out.
Anyway if you wanted something more like Zork, you could look at my program LOSTMYBALL the key is BDWE58AV but that is overkill for something like a branching text story.
If you are new to coding I suggest reading through my number guessing game NUMBERGUESS the key is 8E7Y33G4 You could also try the exercism.io coding challenges (EXERCISM) I translated to SmileBasic the key is 5RDXV3CJ
I made a text adventure game engine called Tension that will do all of this for you. here, try it out: http://smilebasicsource.com/page?pid=833
If you want anything added to the program, any features, etc. tell me, and I will either tell you how to do that, or give you a key with the changes