rkury14 Posted January 25, 2015 Posted January 25, 2015 Hello, I am wondering if someone could take a look at this javascript rule and help me figure out to be able to generate a mock ticket of 12 slots with prizes. Here are the prizes 3 Gold Pot (graphic image) 6 $20 1 $25 1 $50 1 $75 Those prizes have to be random and the mailer is a 3 panel brochure where the ticket is one of the panels. So I will have to possibly have two lists in it. You can only scratch-off one slot to win however. Here is the Rule: var twentycount : int = 0;// keeps track of how many times you add $20 to one of the slots var potcount : int = 0; // keeps track of how many times you add a gold pot to one of the slots var twentyfivecount : int = 0; // keeps track of how many times you add $25 to one of the slots var fiftycount : int = 0; // keeps track of how many times you add $50 to one of the slots var seventyfivecount : int = 0; // keeps track of how many times you add $75 to one of the slots // keep adding counts to keep track of how many times you want to add a prize var size : int = 0; // this is the number of slots you need to fill. Once it hits zero, we stop the loop var roll : int; // this is the variable that holds the random value var slots = [] // this will be your list of the 12 slots where you put the prizes // this is a loop that executes 12 times (putting 12 prizes in each of the slots) while(size < 12){ // while size does not equal 12. We will add 1 to size whenever we put a prize in the slot list roll = Math.floor(Math.random()*4) // picks a number between 0 and 4 // Math is the class for which the function random() is located in // multiply random() in order to increase the range. In this case, 0 to 5 // Math.floor means that it truncates the decimal off. So 4.75 becomes 4 // If we roll a 0, then we put $20 into one of the slots if(roll == 0 && twentyCount < 6){ // if random picks 0 and we didn't exceed the amount of $20 we can put // this is where you add your image of $20 for example slots = "$20" // or whatever image you want to put (I don't know how to do the images) twentyCount = twentyCount + 1; size = size + 1;} // If we roll a 1, then we put gold pot into one of the slots if(roll == 1 && potCount < 3){ // if random picks 1 and we didn't exceed the amount of gold pots we can put slots = "Gold Pot" // or whatever image you want to put (I don't know how to do the images) potCount = potCount + 1; size = size + 1;} if(roll == 2 && twentyFiveCount < 1){ // if random picks 2 and we didn't exceed the amount of $25 we can put // this is where you add your image of $25 for example slots = "$25" // or whatever image you want to put (I don't know how to do the images) twentyCount = twentyCount + 1; size = size + 1;} if(roll == 3 && fiftyCountCount < 1){ // if random picks 3 and we didn't exceed the amount of $50 we can put // this is where you add your image of $50 for example slots = "$50" // or whatever image you want to put (I don't know how to do the images) twentyCount = twentyCount + 1; size = size + 1;} if(roll == 4 && seventyFiveCount < 1){ // if random picks 4 and we didn't exceed the amount of $75 we can put // this is where you add your image of $75 for example slots = "$75" // or whatever image you want to put (I don't know how to do the images) twentyCount = twentyCount + 1; size = size + 1;} } for(int i = 0; i < 12; i++){ if(slots == "$20") // add graphics for $20 to whatever position the i-th box is else if(slots == "Pot of Gold.tif") // add graphics for the gold pot to whatever position the i-th box is else if(slots == "$25") // add graphics for $25 to whatever position the i-th box is else if(slots == "$50") // add graphics for $50 to whatever position the i-th box is else if(slots == "$75") // add graphics for $75 to whatever position the i-th box is } // To refresh, Math.random() picks a number between 0 and 1, including decimals. Since you don't want decimals, // makes sure you apply the floor function to random() by doing this Math.floor(Math.random()), that way it // just cuts off the decimal part. // I made sure that the loop doesn't stop until you fill up all 12 slots. The only way we can fill it all up // is if it reaches one of the rolls. Therefore, the size increases by 1 and we roll again. It stops once // size reaches the value of 12. Because you have EXCEL files and lists, I don't know how to integrate that // stuff. // You can apply those if-statement blocks to other prizes. Just make sure there's a cap by adding a counter // variable at the top. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.