tambola-ticket
Version:
A Package that generates a tambola ticket and a random list from of 1-90 numbers
92 lines (84 loc) • 2.23 kB
JavaScript
getCueList = () =>
{
return generateRandomNumberList(90,90);
}
generateTicket = () =>
{
let ticket = [];
for(let i = 0; i < 3; i++)
{
let temp = [];
let rowPos = generateRandomNumberList(5, 9);
for(let j = 0; j < 9; j ++)
{
let count = 1;
for(let k = 0; k < rowPos.length; k++)
{
if(j == rowPos[k]-1)
{
count = 0;
let number = getRandomNumber(ticket, rowPos[k]);
temp.push(number)
break;
}
}
if(count)
temp.push(0);
}
ticket.push(temp);
}
return ticket;
}
getRandomNumber = (ticket, rowPos) =>
{
let randomNumber = 0;
while(randomNumber == 0)
{
let number = Math.floor(Math.random() * ( (rowPos * 10) - (rowPos * 10 - 9) + 1) + (rowPos * 10 - 9));
let count = 1;
for(let i = 0; i < ticket.length; i ++)
{
for(let j = 0; j < ticket[i].length; j ++)
{
if(ticket[i][j] == number)
{
count = 0;
break;
}
}
if(count == 0)
break;
}
if(count)
randomNumber = number;
}
return randomNumber;
}
generateRandomNumberList = (listLength, max) => {
let numberList = [];
while(numberList.length < listLength)
{
let repeat = 0;
let number = Math.floor(Math.random() * max) + 1;
if(numberList.length == 0)
numberList.push(number);
else
{
for(let i = 0; i < numberList.length; i++)
{
if(number == numberList[i])
{
repeat = 1;
break;
}
}
if(repeat == 0)
numberList.push(number)
}
}
return numberList;
}
module.exports = {
'generateTicket' : generateTicket,
'getCueList' : getCueList
}