Results 1 to 3 of 3
  1. #1
    Dirk94 is offline Member
    Join Date
    Nov 2012
    Rep Power

    Default Generate random numbers that haven't been generated before.


    I'm relatively new to Java and programming, and I've come accross a problem.
    I'm having a 2-dimensional array which holds an Object.

    Java Code:
    public DataItem[][] dataTiles = new DataItem[tileWidth][tileHeight];
    The DataItem class has only two variables a x and a y value.
    Each array index stands for a position in the world, so if you would have a DataItem with x = 4 and y=32 then it's place in the array would be: dataTiles[4][32].

    The position of the dataItem is randomly generated:

    Java Code:
    int randX = (int)(Math.random()*tileWidth);
    int randY = (int)(Math.random()*tileHeight);
    DataItem dat = new DataItem(randX, randY);
    dataTiles[randX][randY] = dat;
    However the problem is that there is a change that there are two data items at the same coördinates.
    This is not allowed to happen, so these randX and randY variables can only be a empty place in the world.

    Could anybody point me in the right direction of how to do such a thing?

    P.S. I hope that I made the problem clear if not just ask :)
    Last edited by Dirk94; 11-26-2012 at 12:34 PM.

  2. #2
    KevinWorkman's Avatar
    KevinWorkman is offline Crazy Cat Lady
    Join Date
    Oct 2010
    Washington, DC
    Rep Power

    Default Re: Generate random numbers that haven't been generated before.

    Sounds like you're going to have to keep track of which coordinates you've already used, then check against it when creating a new one. Or you could go the other way around and start out with a collection of valid locations, then remove them or mark them as invalid as you place coordinates.
    How to Ask Questions the Smart Way
    Static Void Games - GameDev tutorials, free Java and JavaScript hosting!
    Static Void Games forum - Come say hello!

  3. #3
    Tolls is offline Moderator
    Join Date
    Apr 2009
    Rep Power

    Default Re: Generate random numbers that haven't been generated before.

    I think we've had something like this before, and one solution was a List<Coordinates> (in your case), and using Collections.shuffle().
    Then simply iterate over the shuffled list, assigning DataItems to the coordinates.
    Please do not ask for code as refusal often offends.

    ** This space for rent **

Similar Threads

  1. Store a random generated int value in an array.
    By kcon90 in forum New To Java
    Replies: 5
    Last Post: 10-26-2012, 09:31 PM
  2. Generate weighted random numbers, nextGaussian ()
    By graympa in forum New To Java
    Replies: 2
    Last Post: 03-25-2011, 09:36 PM
  3. generate pseudo random numbers in java
    By csr81 in forum Advanced Java
    Replies: 3
    Last Post: 03-01-2010, 07:08 AM
  4. Replies: 8
    Last Post: 04-19-2009, 05:50 PM
  5. [SOLVED] auto generated numbers
    By suprabha in forum Advanced Java
    Replies: 10
    Last Post: 08-14-2008, 05:13 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts