init-engineer / init.engineer

這是一份純靠北工程師的專案,請好好愛護它,謝謝。
https://init.engineer
MIT License
650 stars 42 forks source link

BINGO 賓果抽獎 #116

Open Kantai235 opened 2 years ago

Kantai235 commented 2 years ago

前情提要

如果有廠商提供獎品給版友們抽獎,單純在粉絲專頁上面發文留言抽獎似乎太單調了,因此想到透過 BINGO 賓果連線搶獎品的方式來舉行,似乎是挺有趣的一件事。

功能概念

  1. 需要設計出能夠動態規劃獎品數量、活動時間的 BINGO 賓果活動。
  2. 每組帳號都能夠參與每次活動,並且領取一張隨機的 BINGO 券,然後在活動期間內,每天早上 8 點到晚上 8 點開放每個使用者去投票,投的是 BINGO 號碼,每天取票數最高的前三碼當作隔天的開獎號碼,然後自己的 BINGO 連線要自己畫圈、自己畫線、自己喊 BINGO,最後最先完成三條連線的N位得獎者,就可以依名次獲得獎品。
  3. 如果獎品屬性是實體商品,那麼獲獎者需要回填個人資料(如收件人、收件地址、電話等)。
Kantai235 commented 2 years ago

資料庫構思

理想上應該會有一張表記錄每次活動,然後每次活動會有人領取 BINGO 券,所以活動記錄表跟 Users 之間會有個關聯表來記錄 BINGO 券資訊,初步草稿應該是這樣。

遊戲規則問題

領取 BINGO 券的部分,究竟號碼是要自己填,還是亂數產生?

  1. 提供自己填號碼來提交
    • 優點:具有彈性。
    • 缺點:如果 BINGO 活動開始了,那玩家還能參與嗎?如果能參與,是不是具有作弊的優勢?如果不能參與,那是不是代表開始抽號碼牌後,就沒有人能夠參與了?
  2. 亂數產生號碼牌來 BINGO
    • 優點:沒有 1. 的問題所在。
    • 缺點:不具有彈性,你可以活動開始抽號碼牌過幾天後再加入遊戲。