Hey guys im having a problem trying to program out a set of logic. I want to make a Go(the board game) problem. What i want my program to do is read in an xml file that represents a series of steps a person can make to complete the puzzle, or a even a dead end. So in the xml it would look something like
<Step x="4" y="5">
<Response x="4" y="6" />
<Step x="3" y="6" victory="true">
</Step>
</Step>
<!-- This is a dead end -->
<Step x="4" y="4">
<Response x="4" y="5" />
<Step x="5" y="5" defeat="true"></Step>
<Step x="6" y="4" defeat="true"></Step>
</Step>
My thought is to make a link list of sorts where my xml handler(im using SAX) uses the step class to store a step inside a step, but i cant conceptualize how i would run down the list like that. Does anyone have a clean way of doing something like this? *Note i need to run down each and every step, and if the step doesnt exist, call them wrong and make them try again, but im willing to change my xml to whatever it needs to be.
I’m not entirely sure from your question whether you’re having problems with the XML or the Java representation. I’m assuming the latter.
Representing successive play sequences in a game such as Go can be done using an n-ary tree. Each node in the tree represents a move, and all possible responses to a move are its children. This will match your XML representation.
Here are two links that describe how to implement n-ary trees (taken from this SO question: k-ary Trees in Java )
EDIT after your comment, here’s roughly how I would parse the document to create a tree (you’ll have to create your own Tree class still, I’m assuming basic tree methods here).
You can see how the successive calls to beginElement and endElement will create a tree that has the same structure as your document.