# Struggling to pay your electric bill is fun when itâ€™s a game.

By using our site, you acknowledge that you have read and understand our Cookie Policy , Privacy Policy , and our Terms of Service. I'm struggling with coming up with an elegant solution to generating random events in the game that I'm working on.

Say there are 4 classes of events that can happen, with varying events in those classes that may occur. I have a somewhat kludgey solution in place that first just has a random number generated between 0 and , and if the number falls within a given range then a main event will be triggered. Then I'll do another random roll to see which sub event occurs. Is there a better solution than something along these lines?

Like I mention, it doesn't feel very elegant, and I'd like to make it easily expandable for the addition of future events. This is based on my answer for a similar question on Stack Overflow. It sounds like you're asking for a more flexible way of specifying the probability of each event.

For that, you can use a simple weighing algorithm: simply decide how common each event should be and assign it a weight that is appropriate compared to the other weights.

It's up to you if you want to first select between the different groups of events, or if you want a single table with all of the events where each "group" has an appropriate sum compared to the others. Let's say you want to build a random insult generator, though. In this case, a series of tables would work best. You'd start with a table that has a list of general patterns.

For example,. Now say the random generator picks the second pattern. You call the verb table, which has entries like:. As for actually implementing something like this, here's an example of how you might do it in JavaScript. Obviously this is a crude example you might generate, for example, "Go shove flaming your mom in your eye socket!

My answer to a question on generating random drops may very well work for this too. Podcast: We chat with Major League Hacking about all-nighters, cup stacking, and therapy dogs. Listen now. Home Questions Tags Users Unanswered. Algorithm for determining random events [duplicate] Ask Question. Asked 9 years ago. Active 9 years ago. Viewed 7k times. The only improvment to make it easier to expand would be possibly reading the events and sub-events in from a file so you don't have to recompile if you change the rarity of an event.

Once you have that, you can use the following algorithm to select an event: Given a list L of items I,W , where I is the item and W is the weight: Add all of the weights together. Call this sum S. Generate a random number between 0 and S excluding S, but including 0. Call this value R. Initialize a variable to 0 to keep track of the running total.

We'll call this T. Michael Madsen Michael Madsen 1, 16 16 silver badges 14 14 bronze badges. Asmor Asmor 3 3 silver badges 11 11 bronze badges. Er, I mean great example WebSockets for fun and profit. Linked Related 8. Hot Network Questions.