// 1. 定義獎項並隨機打亂 (洗牌)
const prizes = ["A賞", "A賞", "B賞", "B賞", "C賞", "D賞", "E賞" /* ...其餘獎項 */];
const totalTickets = prizes.length;
// 將獎項隨機洗牌,並與 1~N 號碼綁定
const board = prizes
.sort(() => Math.random() - 0.5)
.map((prize, index) => ({
id: index + 1, // 籤的號碼 (1, 2, 3...)
prize: prize, // 背後隱藏的獎項
isDrawn: false // 是否已被抽走
}));
let remainingCount = totalTickets;
// 2. 玩家指定號碼抽籤
function drawByNumber(ticketId) {
const ticket = board.find(t => t.id === ticketId);
if (!ticket) return "找不到此號碼!";
if (ticket.isDrawn) return `號碼 ${ticketId} 已經被抽過了,請重新選號!`;
// 標記為已抽走
ticket.isDrawn = true;
remainingCount--;
let result = `你選擇了 ${ticket.id} 號,抽中:${ticket.prize}!`;
// 觸發 LAST 賞
if (remainingCount === 0) {
result += " 🎉 恭喜抽中最後一張,獲得 LAST 賞!";
}
return result;
}