---
##記憶翻牌游戲 — 功能說明
### 一、游戲定位
這是一個(gè)面向運(yùn)營(yíng)活動(dòng)的**記憶翻牌配對(duì)游戲**,用戶通過記憶卡牌位置、翻牌配對(duì)來(lái)通關(guān),過關(guān)后可參與抽獎(jiǎng)。游戲內(nèi)嵌手機(jī)號(hào)收集功能,用于后續(xù)領(lǐng)獎(jiǎng)和記錄查詢。
---
### 二、游戲流程
整個(gè)游戲分為三個(gè)階段,由 `gameStatus` 變量控制:
**階段一:未開始(gameStatus = 0)**
頁(yè)面加載后,卡牌區(qū)域被半透明遮罩覆蓋,顯示"游戲玩法說明"彈窗,內(nèi)容包括三條規(guī)則:
1. 在規(guī)定時(shí)間內(nèi),記憶牌面內(nèi)容及位置
2. 點(diǎn)擊任意兩張牌,若圖案相同則配對(duì)成功,全部配對(duì)即過關(guān)
3. 過關(guān)后可獲得一次抽獎(jiǎng)機(jī)會(huì)
同時(shí)提供一個(gè)手機(jī)號(hào)輸入框和"開始"按鈕。按鈕有兩種視覺狀態(tài):未輸入手機(jī)號(hào)時(shí)顯示灰色按鈕圖(start_btn2.png),輸入后切換為亮色按鈕圖(start_btn.png),通過 CSS 類 `.active` 切換。
點(diǎn)擊開始前會(huì)做兩層校驗(yàn):先檢查是否為空,再通過正則驗(yàn)證手機(jī)號(hào)格式。正則覆蓋了 13、14、15、16、17、18、19 等主流號(hào)段。
**階段二:記憶階段(gameStatus = 1)**
點(diǎn)擊開始后,12 張卡牌全部翻開,讓用戶觀察并記憶每張牌的位置和圖案。頁(yè)面左上角顯示"記憶時(shí)間:"倒計(jì)時(shí),初始為 **10 秒**(常量 TM1)。
倒計(jì)時(shí)結(jié)束后自動(dòng)進(jìn)入游戲階段。
**階段三:游戲階段(gameStatus = 2)**
所有卡牌蓋回,左上角文字變?yōu)?倒計(jì)時(shí)間:",重新以 **20 秒**(常量 TM2)倒計(jì)時(shí)。用戶每次點(diǎn)擊一張牌將其翻開,再點(diǎn)擊另一張:
- 兩張圖案相同(index 值相等)→ 配對(duì)成功,兩張牌保持翻開狀態(tài),標(biāo)記 `cardStatus = ’success’`
- 兩張圖案不同 → 600 毫秒后兩張牌自動(dòng)蓋回
翻牌時(shí)有鎖定機(jī)制(`isChecking`),在兩張牌等待判定的 600 毫秒內(nèi)不允許點(diǎn)擊第三張。12 張全部配對(duì)成功后,倒計(jì)時(shí)停止,彈出"恭喜您,獲得了一次抽獎(jiǎng)機(jī)會(huì)",引導(dǎo)用戶去抽獎(jiǎng)。
若倒計(jì)時(shí)歸零仍未完成全部配對(duì),彈出"手速不夠快,再來(lái)一次!"超時(shí)提示。
---
### 三、卡牌系統(tǒng)
卡牌共 12 張,由 6 種圖案各出現(xiàn) 2 次構(gòu)成。6 種圖案對(duì)應(yīng)的靜態(tài)資源為:
```
/static/img-1.jpg
/static/img-2.jpeg
/static/img-3.jpeg
/static/img-4.jpeg
/static/img-5.jpg
/static/img-6.jpg
```
每次初始化時(shí)使用 **Fisher-Yates 洗牌算法**隨機(jī)打亂順序,確保每局排列不同??ㄅ埔?3 列 × 4 行的網(wǎng)格布局,通過絕1對(duì)定位按公式計(jì)算坐標(biāo):
```
left = (cardWidth + 13) × (列號(hào) % 3)
top = (cardHeight + 13) × floor(行號(hào) / 3)
```
卡牌寬度和高度均為 80px,間距 13px。翻牌動(dòng)畫使用 CSS `rotateY` 3D 翻轉(zhuǎn):
- 翻開:正面 `.front` 旋轉(zhuǎn) 180 度隱藏到背面,背面 `.back` 旋轉(zhuǎn) 0 度展示出來(lái)
- 蓋回:移除 `card-flipped` 類,恢復(fù)初始狀態(tài)
---
### 四、抽獎(jiǎng)系統(tǒng)
過關(guān)后進(jìn)入抽獎(jiǎng)環(huán)節(jié),當(dāng)前為**模擬實(shí)現(xiàn)**:
- 固定返回中獎(jiǎng)狀態(tài)(status = 1)
- 獎(jiǎng)品池含五個(gè)等級(jí):特等獎(jiǎng)、一等獎(jiǎng)、二等獎(jiǎng)、三等獎(jiǎng)、安慰獎(jiǎng)
- 隨機(jī)抽取一個(gè)獎(jiǎng)品名,加入 `myLottery` 數(shù)組
- 彈出中獎(jiǎng)彈窗,展示獎(jiǎng)品名稱
代碼中標(biāo)注了 `TODO: 替換為真實(shí)抽獎(jiǎng)接口`,預(yù)留了未中獎(jiǎng)分支(status ≠ 1 時(shí)彈出"太遺憾了,獎(jiǎng)品與你擦肩而過")。
---
### 五、彈窗系統(tǒng)
通過 `showModalIndex` 變量控制,共五種彈窗:
| 編號(hào) | 觸發(fā)場(chǎng)景 | 內(nèi)容 |
|---|---|---|
| 3 | 點(diǎn)擊"查看中獎(jiǎng)紀(jì)錄" | 顯示中獎(jiǎng)列表(`myLottery` 數(shù)組),無(wú)記錄時(shí)顯示"暫無(wú)中獎(jiǎng)記錄",有手機(jī)號(hào)時(shí)顯示"去領(lǐng)獎(jiǎng)"按鈕 |
| 4 | 全部配對(duì)成功 | "恭喜您,獲得了一次抽獎(jiǎng)機(jī)會(huì)" + "趕快去抽獎(jiǎng)"按鈕 |
| 5 | 超時(shí) 或 抽獎(jiǎng)未中獎(jiǎng) | 超時(shí)顯示"手速不夠快,再來(lái)一次!",未中獎(jiǎng)顯示"太遺憾了,獎(jiǎng)品與你擦肩而過",提供"關(guān)閉"和"再玩一次" |
| 7 | 抽中獎(jiǎng)品 | "恭喜您獲得了:XX獎(jiǎng)品哦~",提供"查看獎(jiǎng)品"和"再玩一次" |
彈窗打開時(shí)游戲倒計(jì)時(shí)暫停,關(guān)閉彈窗時(shí)恢復(fù)計(jì)時(shí)。每種彈窗有不同的頭部裝飾圖(t2.jpg ~ t6.jpg),右上角有關(guān)閉按鈕。
---
### 六、輔助功能
- **再玩一次**:關(guān)閉彈窗后自動(dòng)調(diào)用 `startGame()`,手機(jī)號(hào)保留無(wú)需重新輸入
- **中獎(jiǎng)記錄**:需要先輸入手機(jī)號(hào)才能查看,當(dāng)前數(shù)據(jù)存儲(chǔ)在本地 `myLottery` 數(shù)組
- **領(lǐng)獎(jiǎng)**:點(diǎn)擊"去領(lǐng)獎(jiǎng)"彈出"領(lǐng)獎(jiǎng)功能敬請(qǐng)期待"
- **活動(dòng)規(guī)則**:卡牌區(qū)域下方固定展示規(guī)則文字,內(nèi)容在 `init()` 中動(dòng)態(tài)生成
---
### 七、頁(yè)面布局
從上到下依次為:
1. **頂部橫幅**(banner.png 背景圖,高度 250rpx)
2. **按鈕欄**:左側(cè)黃色圓角框顯示倒計(jì)時(shí),右側(cè)紅色圓角框"查看中獎(jiǎng)紀(jì)錄"
3. **卡牌區(qū)域**:青藍(lán)色背景(#1bafd2),內(nèi)含 3×4 卡牌網(wǎng)格
4. **活動(dòng)規(guī)則區(qū)**:白字展示規(guī)則文字
整體配色以青藍(lán)色(#41d1eb)為主色調(diào),輔以黃、紅色按鈕點(diǎn)綴。
讓我重新檢查配置文件中關(guān)于廣告和平臺(tái)的完整信息。
你說得對(duì),之前的介紹確實(shí)遺漏了這兩塊?;趯?shí)際代碼和配置,以下是完整補(bǔ)充:
---
## 補(bǔ)充:支持端詳解
### 八、多端支持詳情
**1. H5 瀏覽器端(當(dāng)前運(yùn)行方式)**
**2. App 端(Android / iOS)**
**3. 微信小程序端(mp-weixin)**
**4. 支付寶小程序端(mp-alipay)**
**5. 百度小程序端(mp-baidu)**
**6. 頭條/抖音小程序端(mp-toutiao)**
**7. 快應(yīng)用端(quickapp)**
**跨端兼容注意事項(xiàng):**
### 九、App 端uniAD 廣告支持
**當(dāng)前狀態(tài):不支持,項(xiàng)目中未配置任何廣告相關(guān)代碼或參數(shù)。**
`uniad`、`ad`、`激勵(lì)視頻`、`banner`、`插屏廣告` 。`pages/index/index.vue` 引入 `` 組件或調(diào)用激勵(lì)視頻 API。
1. 在 `manifest.json` 中添加 `uniad` 配置節(jié)點(diǎn),填入從 uniAD 后臺(tái)獲取的廣告位 ID
2. 在頁(yè)面中引入 `` 組件或使用 `uni.createRewardedVideoAd()` 等 API
3. 適合插入廣告的位置:游戲開始前(插屏廣告)、過關(guān)后抽獎(jiǎng)前(激勵(lì)視頻,抽獎(jiǎng)前看廣告)、彈窗關(guān)閉時(shí)(Banner 廣告)
---
### 十、流量主廣告(小程序)
**當(dāng)前狀態(tài):開啟小程序流量主廣告。**
流量主廣告需要在小程序后臺(tái)開通流量主功能后,在代碼中使用微信原生 `` 組件。
- 頁(yè)面模板中沒有引入 `` 標(biāo)簽
- 配置廣告單元 ID(adUnitId)
**接入流量主廣告:**
1. 小程序后臺(tái)開通流量主
2. 創(chuàng)建廣告位,獲取廣告單元 ID
3. 在模板中添加 `` 原生組件
4. 合適的廣告場(chǎng)景:游戲頁(yè)面底部 Banner 廣告、過關(guān)后插屏廣告、抽獎(jiǎng)前激勵(lì)視頻
---
基于代碼實(shí)際內(nèi)容,以下是 SEO 優(yōu)化標(biāo)題:
---
## 推薦標(biāo)題
### 主標(biāo)題
> **uni-app 記憶翻牌配對(duì)游戲源碼 — 多端適配的運(yùn)營(yíng)活動(dòng)抽獎(jiǎng)互動(dòng)前端模板**
### 備選標(biāo)題
1. **Vue2 翻牌消消樂源碼|帶抽獎(jiǎng)的 H5/小程序記憶配對(duì)游戲模板**
2. **uni-app 多端翻牌小游戲源碼 — 含倒計(jì)時(shí)記憶挑戰(zhàn) + 隨機(jī)抽獎(jiǎng) + 手機(jī)號(hào)收集,運(yùn)營(yíng)活動(dòng)必備**
3. **記憶翻牌配對(duì)游戲 uni-app 源碼|12 牌 3×4 網(wǎng)格·Fisher-Yates 洗牌·CSS 3D 翻轉(zhuǎn)·過關(guān)抽獎(jiǎng)**
---
### 標(biāo)題關(guān)鍵詞拆解(基于源碼)
| 關(guān)鍵詞 | 代碼依據(jù) |
|---|---|
| **uni-app** | 整體項(xiàng)目基于 uni-app 框架,多端配置 |
| **記憶翻牌** | `gameStatus=1` 記憶階段,10 秒觀察全部卡牌 |
| **配對(duì)游戲** | `clickCard` 邏輯:兩張相同 index 則匹配成功 |
| **多端適配** | 7 個(gè)平臺(tái)(H5/Android/iOS/4 小程序/快應(yīng)用) |
| **抽獎(jiǎng)** | `lottery()` 方法 + 5 級(jí)獎(jiǎng)品池 |
| **運(yùn)營(yíng)活動(dòng)** | 手機(jī)號(hào)收集 `mobile` + 中獎(jiǎng)記錄 `myLottery` |
| **前端模板** | 開箱即用,預(yù)留 API 接口 TODO 標(biāo)記 |
| **Vue2** | `vueVersion: "2"`,Vue 2.7 |
| **Fisher-Yates 洗牌** | `_buildCards()` 中洗牌算法 |
| **CSS 3D 翻轉(zhuǎn)** | `rotateY` + `backface-visibility` + `keyframes flips` |
| **倒計(jì)時(shí)** | `TM1=10s` 記憶 + `TM2=20s` 游戲,遞歸 setTimeout |
| **H5/小程序** | H5 當(dāng)前運(yùn)行 + 4 個(gè)小程序 manifest 配置 |
| **源碼** | 完整可運(yùn)行的 .vue 單文件組件 |
---
### 推薦最終使用
> **uni-app 記憶翻牌配對(duì)游戲源碼 — 多端運(yùn)營(yíng)活動(dòng)模板|H5/小程序通用·倒計(jì)時(shí)挑戰(zhàn)·過關(guān)抽獎(jiǎng)·手機(jī)號(hào)收集**
該標(biāo)題覆蓋了項(xiàng)目最核心的賣點(diǎn):框架(uni-app)、玩法(記憶翻牌配對(duì))、場(chǎng)景(運(yùn)營(yíng)活動(dòng))、多端(H5/小程序)、功能(倒計(jì)時(shí)、抽獎(jiǎng)、表單),層次清晰,搜索覆蓋廣。



定制看需求,一般幾小時(shí)內(nèi)完成,也不貴。

1、自動(dòng):在上方保障服務(wù)中標(biāo)有自動(dòng)發(fā)貨的商品,拍下后,將會(huì)自動(dòng)收到來(lái)自賣家的商品獲取(下載)鏈接;
2、手動(dòng):未標(biāo)有自動(dòng)發(fā)貨的的商品,拍下后,賣家會(huì)收到郵件、短信提醒,也可通過QQ或訂單中的電話聯(lián)系對(duì)方。
1、源碼默認(rèn)交易周期:自動(dòng)發(fā)貨商品為1天,手動(dòng)發(fā)貨商品為3天,買家有1次額外延長(zhǎng)3天交易周期的權(quán)利;
2、若上述交易周期雙方依然無(wú)法完成交易,任意一方可發(fā)起追加周期(1~60天)的請(qǐng)求,對(duì)方同意即可延長(zhǎng)。
1、描述:源碼描述(含標(biāo)題)與實(shí)際源碼不一致的(例:描述PHP實(shí)際為ASP、描述的功能實(shí)際缺少、版本不符等);
2、演示:有演示站時(shí),與實(shí)際源碼小于95%一致的(但描述中有"不保證完全一樣、有變化的可能性"類似顯著聲明的除外);
3、發(fā)貨:手動(dòng)發(fā)貨源碼,在賣家未發(fā)貨前,已申請(qǐng)退款的;
4、安裝:免費(fèi)提供安裝服務(wù)的源碼但賣家不履行的;
5、收費(fèi):額外收取其他費(fèi)用的(但描述中有顯著聲明或雙方交易前有商定的除外);
6、其他:如質(zhì)量方面的硬性常規(guī)問題等。
注:經(jīng)核實(shí)符合上述任一,均支持退款,但賣家予以積極解決問題則除外。
1、互站會(huì)對(duì)雙方交易的過程及交易商品的快照進(jìn)行永久存檔,以確保交易的真實(shí)、有效、安全!
2、互站無(wú)法對(duì)如“永久包更新”、“永久技術(shù)支持”等類似交易之后的商家承諾做擔(dān)保,請(qǐng)買家自行鑒別;
3、在源碼同時(shí)有網(wǎng)站演示與圖片演示,且站演與圖演不一致時(shí),默認(rèn)按圖演作為糾紛評(píng)判依據(jù)(特別聲明或有商定除外);
4、在沒有"無(wú)任何正當(dāng)退款依據(jù)"的前提下,商品寫有"一旦售出,概不支持退款"等類似的聲明,視為無(wú)效聲明;
5、在未拍下前,雙方在QQ上所商定的交易內(nèi)容,亦可成為糾紛評(píng)判依據(jù)(商定與描述沖突時(shí),商定為準(zhǔn));
6、因聊天記錄可作為糾紛評(píng)判依據(jù),故雙方聯(lián)系時(shí),只與對(duì)方在互站上所留的QQ、手機(jī)號(hào)溝通,以防對(duì)方不承認(rèn)自我承諾。
7、雖然交易產(chǎn)生糾紛的幾率很小,但一定要保留如聊天記錄、手機(jī)短信等這樣的重要信息,以防產(chǎn)生糾紛時(shí)便于互站介入快速處理。
1、互站作為第三方中介平臺(tái),依據(jù)交易合同(商品描述、交易前商定的內(nèi)容)來(lái)保障交易的安全及買賣雙方的權(quán)益;
2、非平臺(tái)線上交易的項(xiàng)目,出現(xiàn)任何后果均與互站無(wú)關(guān);無(wú)論賣家以何理由要求線下交易的,請(qǐng)聯(lián)系管理舉報(bào)。
菏澤云起網(wǎng)絡(luò)科技有限公司
客服⑥:14148531116475732745303783414
客服①:304986247783497355
14788395571737410875000057067059881573
微信客服
服務(wù)
5.00
效率
5.00
質(zhì)量
5.00
客服
客服QQ: 400****86 (點(diǎn)擊直接對(duì)話)
客服電話:400****86(查看完整電話)
客服郵箱:serve#huzhan.com
管理僅處理交易投訴、舉報(bào)、帳號(hào)、資金等平臺(tái)使用問題;
商品問題請(qǐng)咨詢各商品詳情頁(yè)面中顯示的商家客服QQ。