99 lines
3.0 KiB
JavaScript
99 lines
3.0 KiB
JavaScript
|
function shuffle(array) {
|
||
|
var currentIndex = array.length,
|
||
|
randomIndex;
|
||
|
|
||
|
// While there remain elements to shuffle...
|
||
|
while (0 !== currentIndex) {
|
||
|
// Pick a remaining element...
|
||
|
randomIndex = Math.floor(Math.random() * currentIndex);
|
||
|
currentIndex--;
|
||
|
|
||
|
// And swap it with the current element.
|
||
|
[array[currentIndex], array[randomIndex]] = [
|
||
|
array[randomIndex],
|
||
|
array[currentIndex],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
return array;
|
||
|
}
|
||
|
|
||
|
function spin() {
|
||
|
// Play the sound
|
||
|
wheel.play();
|
||
|
// Inisialisasi variabel
|
||
|
const box = document.getElementById("box");
|
||
|
const element = document.getElementById("mainbox");
|
||
|
let SelectedItem = "";
|
||
|
|
||
|
// Shuffle 450 karena class box1 sudah ditambah 90 derajat diawal. minus 40 per item agar posisi panah pas ditengah.
|
||
|
// Setiap item memiliki 12.5% kemenangan kecuali item sepeda yang hanya memiliki sekitar 4% peluang untuk menang.
|
||
|
// Item berupa ipad dan samsung tab tidak akan pernah menang.
|
||
|
// let Sepeda = shuffle([2210]); //Kemungkinan : 33% atau 1/3
|
||
|
let MagicRoaster = shuffle([1890, 2250, 2610]);
|
||
|
let Sepeda = shuffle([1850, 2210, 2570]); //Kemungkinan : 100%
|
||
|
let RiceCooker = shuffle([1810, 2170, 2530]);
|
||
|
let LunchBox = shuffle([1770, 2130, 2490]);
|
||
|
let Sanken = shuffle([1750, 2110, 2470]);
|
||
|
let Electrolux = shuffle([1630, 1990, 2350]);
|
||
|
let JblSpeaker = shuffle([1570, 1930, 2290]);
|
||
|
|
||
|
// Bentuk acak
|
||
|
let Hasil = shuffle([
|
||
|
MagicRoaster[0],
|
||
|
Sepeda[0],
|
||
|
RiceCooker[0],
|
||
|
LunchBox[0],
|
||
|
Sanken[0],
|
||
|
Electrolux[0],
|
||
|
JblSpeaker[0],
|
||
|
]);
|
||
|
// console.log(Hasil[0]);
|
||
|
|
||
|
// Ambil value item yang terpilih
|
||
|
if (MagicRoaster.includes(Hasil[0])) SelectedItem = "Magic Roaster";
|
||
|
if (Sepeda.includes(Hasil[0])) SelectedItem = "Sepeda Aviator";
|
||
|
if (RiceCooker.includes(Hasil[0])) SelectedItem = "Rice Cooker Philips";
|
||
|
if (LunchBox.includes(Hasil[0])) SelectedItem = "Lunch Box Lock&Lock";
|
||
|
if (Sanken.includes(Hasil[0])) SelectedItem = "Air Cooler Sanken";
|
||
|
if (Electrolux.includes(Hasil[0])) SelectedItem = "Electrolux Blender";
|
||
|
if (JblSpeaker.includes(Hasil[0])) SelectedItem = "JBL Speaker";
|
||
|
|
||
|
// Proses
|
||
|
box.style.setProperty("transition", "all ease 5s");
|
||
|
box.style.transform = "rotate(" + Hasil[0] + "deg)";
|
||
|
element.classList.remove("animate");
|
||
|
setTimeout(function () {
|
||
|
element.classList.add("animate");
|
||
|
}, 5000);
|
||
|
|
||
|
// Munculkan Alert
|
||
|
$.ajax({
|
||
|
type: 'POST',
|
||
|
url: 'your_server_endpoint.php', // Replace with your server-side endpoint
|
||
|
data: ["registration_id"],
|
||
|
success: function(response) {
|
||
|
// Handle success
|
||
|
console.log(response);
|
||
|
},
|
||
|
error: function(error) {
|
||
|
// Handle error
|
||
|
console.log(error);
|
||
|
}
|
||
|
});
|
||
|
setTimeout(function () {
|
||
|
applause.play();
|
||
|
swal(
|
||
|
"Congratulations",
|
||
|
"You Won The " + SelectedItem + ".",
|
||
|
"success"
|
||
|
);
|
||
|
}, 5500);
|
||
|
|
||
|
// Delay and set to normal state
|
||
|
setTimeout(function () {
|
||
|
box.style.setProperty("transition", "initial");
|
||
|
box.style.transform = "rotate(90deg)";
|
||
|
}, 6000);
|
||
|
}
|