How We Are Picking The Winner For The XIDU Philbook Y13

Published on December 3, 2020

So, we have to somehow fairly determine the winner of the XIDU Philbook Y13 giveaway. Our solution was to come up with a very basic (and hastily written) javascript program to randomly select the winner.

image.png

It’s based around a simple interval routine that runs every 100 milliseconds.

image.png

All the code in the red circle will run every 100 milliseconds.

A Closer Look at The Loop

image.png

The first line creates a new variable called ‘winnerNumber’ and it assigns it a random number somewhere between 1 and the length of the list of contestants.

Then, the second line creates a new variable called ‘winner’ and sets it to an array called ‘userlist’, the index of which is set by the random number created in the first line of code.

Finally, the third line of code outputs the ‘winner’ variable to the body.

This happens every 100 milliseconds, which is 10 times per second, selecting a new winner every time.

A Single Pass Interval to Select The Final Winner

image.png

Then, we use a single pass interval that has two jobs.

image.png

Its first job is to clear the ‘cycle’ interval, which stops the winner selection process, effectively choosing a winner.

After that, it stops itself so the program can end nicely.

image.png

Notice this time, instead of setting a hard-coded interval time for this one, we gave it a variable as a time instead.

That random time is generated with this line of code, which fits in between the two intervals.

image.png

As you can see, the ‘randomTimer’ variable is a random number between 5000 and 10000. This sets a random winner selection time of 5 to 10 seconds.

We will be running this program tonight at 11PM Eastern Standard Time. Sometime after that, we will post a video of the winner reveal.

Enjoyed this video?
"No Thanks. Please Close This Box!"