Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (498)
Games in Android Showcase (115)
games submitted by our members
Games in WIP (562)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  copying a (BSP) tree into an array?  (Read 767 times)
0 Members and 1 Guest are viewing this topic.
Offline Gorgorath

Junior Member




Java games rock!


« Posted 2004-12-14 16:45:31 »

is there a efficient way to copy a Node & it's children into a 'orderly' arranged array right now i have a left and right child and eventually i want an int that's point into a global 'nodes' array for it's left and right sibbling.
Offline jbanes

JGO Coder


Projects: 1


"Java Games? Incredible! Mr. Incredible, that is!"


« Reply #1 - Posted 2004-12-14 17:07:58 »

From what sort of structure? i.e. What information does the array structure contain? Let's assume something like this:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
public class Node
{
    public Node left;
    public Node right;
    public Point point;
}

public class Point
{
    public int x;
    public int y;
}


The above requires 4 ints per node. So we can do something like this to serialize it:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
public class NodeSerializer
{
    private int[] data;
    private int counter = 0;

    public NodeSerializer(int nodecount)
    {
        data = int[nodecount * 4];
    }

    private int getNextLocation()
    {
        int loc = counter;

        counter += 4;
        return loc;
    }

    public int[] serialize(Node node)
    {
        serialize(node, location);
        return data;
    }

    private void serialize(Node node, int location)
    {
         int left = (node.left != null) ? getNextLocation() : -1;
         int right = (node.right != null) ? getNextLocation() : -1;

         data[location] = left;
         data[location+1] = right;
         data[location+2] = node.point.x;
         data[location+3] = node.point.y;

         if(left >= 0) serialize(node.left, left);
         if(right >= 0) serialize(node. right, right);
    }
}


I just whipped that up, so I have no idea if it will work. However, I do have one question before I let you run off and implement this. Why are you trying to fit everything in an array? Is it just to write it to disk, or are you trying to "optimize"? If you're thinking that using an int[] array will optimize your code you may want to rethink. I tried such an optimization when I was a C programmer and paid heavily for my attempts. If I'd just used a struct, my code would have been much simpler and easier to complete.

Good luck, StarFox! :-)

Java Game Console Project
Last Journal Entry: 12/17/04
Offline 69_Jeremy_69

Senior Newbie




Java games rock!


« Reply #2 - Posted 2004-12-15 18:04:03 »

Quote
is there a efficient way to copy a Node & it's children into a 'orderly' arranged array right now i have a left and right child and eventually i want an int that's point into a global 'nodes' array for it's left and right sibbling.


You can use a 2 dimensional array maybe.

int[a]

All the parents in array (a) and the children in (b).
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

radar3301 (9 views)
2014-09-21 23:33:17

BurntPizza (28 views)
2014-09-21 02:42:18

BurntPizza (18 views)
2014-09-21 01:30:30

moogie (20 views)
2014-09-21 00:26:15

UprightPath (27 views)
2014-09-20 20:14:06

BurntPizza (29 views)
2014-09-19 03:14:18

Dwinin (46 views)
2014-09-12 09:08:26

Norakomi (74 views)
2014-09-10 13:57:51

TehJavaDev (102 views)
2014-09-10 06:39:09

Tekkerue (50 views)
2014-09-09 02:24:56
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!