Answered step by step
Verified Expert Solution
Question
1 Approved Answer
* * * , The primary final output will be the generated story, in the form of an HTML document, with links ( the tag
The primary final output will be the generated story, in the form of an HTML document, with links the tag What we're talking about is Select Your Story. The principle of a SYS book is simple: for a given book you always start at the same place. However, after segments of story, the reader is then presented with a choice to make, each of which leads to a different place in the book traditionally done via page numbers, but that's secondary This creates branching story lines, such that not only do the myriad outcomes typically vary quite a bit, but the process of finding those end points entail very different story paths along the way.
In practice, this can be represented fairly well with a tree in that, even when designing 'the real thing' on paper, you'd probably draw out a tree of branching decisions eg skipping the actual story parts:
Note that a single page might not lead anywhere ie the end of one version of the story or it could lead to two outcomes to progress the story, or even more than that.
To that end, we'll need a general tree.
The Task:
Rather than making 'one thing', you're more making 'a set of things around one topic'.
You're making something to represent a complete multibranching story, to facilitate the creation of SYS stories:
At each entry, there is some piece of the story a description of that location within the story and anywhere from zero to possible story branches
a It's safe to assume a 'story' will always have a root, and thus providing the initial description starting the story should probably be part of creating the story
a If it's helpful, it's fine to assume a description will be only a single paragraph
Each branch has an associated decision simply a bit more text that will be displayed to the reader
a As each entry other than the root will have been reached from precisely one path, it's probably best to group the text associated with the action that lead to an entry with that entry
A story 'ends' anywhere the reader has no more actions to take
a This means some stories could be longer or shorter than others, based on whether or not they continue leading to more entries that still have additional actions
You have a position like a cursor within the story. From any given point, you may:
s See the available decisions at the current location, as well as the number of decisions here mostly for your own convenience's sake
a Add new branches decisions from the current location
There's no direct need to help the reader go back' beyond the obvious 'starting over' but you might personally find later tasks easier if you include something to act as 'bread crumbs' You'll need an Editor for creating and adding to the story, which will need:
The ability to loadsave since nobody wants to write all of that at once
The ability to export to a browsable HTML document more below
A mechanism for both browsing and editing existing entries The ability to add new actions to any existing entry
a Note that adding an action doesn't move into that action meaning at some location, you can easily add multiple story branches to it
The ability to delete an entire subtree of actions basically if you're at some entry and choose to delete from that location, then every additional entry that entry led to should also be discarded
The ability to browse across 'story ends' to make it easier to extend stories
The primary final output will be the generated story, in the form of an HTML document, with links that tag to the associated decision
each 'story end' needs a link back to the start of the story
for the sake of clarity: this document is effictively all possible stories.
In terms of implementation:
The story doesnt need a method for going up but its up to you if you'd prefer to allow for a parent reference at each story node
You add 'branches' by adding children to whichever node is currently referenced by the cursor. If you want to add 'sibling paths', that's done by adding more children to the parent
This also means there's no way to accidentally add siblings to the root node
When adding additional children to a node that already has one, add new branches after the existing ones
The ability to browse across story ends just means it can jumpthe cursor to the next node that has a null reference for its first first child. this ones tricky, so make sure you include some mthing even if you cant get It
I need the code in java without using arrays or lists. It should be done exactly based on the guidelines provided.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started