Solved

get random numbers from multiple strings

Posted on 2009-05-17
1
266 Views
Last Modified: 2013-11-11
I have three strings, and I want to pick a random item from one of the strings and return three variables: 1 the name of the string it is in 2 the name of the item in the string, and 3 the number of the item in the string. However, I need each item to be just as likely to be picked each time, even if one string has only one item in it and another has 50 items.

My current method causes the shortest strings items to occur more often because I am picking which string first etc.

I am working on a solution, but it seems very convoluted and overly long, perhaps I am missing something obvious.

please help,
- J


function determineImageToLoad() {
	// picks a random list
	imageListToLoadFromNumber = Math.floor(Math.random()*folderListArray.length);
	trace("imageListToLoadFromNumber = "+imageListToLoadFromNumber);
 
	// uses the number to pick which list to draw from
	imageListToLoadFrom = _root[_root.folderListArray[imageListToLoadFromNumber]+"ArrayHolder"];
	trace("imageListToLoadFrom = "+imageListToLoadFrom);
 
	// pics a specific number from that list
	imageToLoadNumber = Math.floor(Math.random()*imageListToLoadFrom.length);
	trace("imageToLoadNumber = "+imageToLoadNumber);
 
	// pics the name from that list that goes with the number
	imageToLoad = imageListToLoadFrom[imageToLoadNumber];
	trace("imageToLoad = "+imageToLoad);
	//trace("loading "+imageToLoad);
}

Open in new window

0
Comment
Question by:jasotasticon
1 Comment
 
LVL 4

Accepted Solution

by:
Adam Chan earned 500 total points
ID: 24410581
Hi jasotasticon,

Have you considered putting all the items in one array and random pick from there, and then identify which array it originated from afterwards?

See attached pseudo code

hope it helps
A
list1 {a, b}
list2 {c, d, e, f}
list3 {g, h, i, j, k, l}
 
lists {list, list2, list3}
 
master_ list = {a, b, d, e, f, g, h, i, j, k, l}    // do your random picking with this list
 
// say the item you picked is 'g'
// then you can do a simple loop with an array.indexOf(g) check to see 
// which of the original 3 list it came from, and pull your other 2 variables out that way.
 
for each (list in lists)
  if (list.indexOf(g) != -1)    // if 'g' is found in this list
    variable1 = list
    variable2 = g
    variable3 = list.length

Open in new window

0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Script to Delete registry entry based on Product name 6 162
free photo watermark software 5 84
Simple 3D CAD 18 109
Actionscript in Flash 3 58
I know the transition can be hard. We got used to the ease of use ActionScript 2 had, but honestly, it became problematic later on, especially if designers were involved in the project and found it easy to add code as they saw fit. So, this artic…
Sometimes you know that one object has a specific child in it, but you can't find the child. This happened to me when I was trying to code some actionScript to make a toolbar work with its embedded buttons.  My partner had created the toolbar usi…
The goal of the tutorial is to teach the user how to select which audio input to use. Once you have an audio input plugged into the laptop or computer, you will go into the audio input settings and choose which audio input you want to use.
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question