mpvue php,学习mpvue : 使用mpvue实现2048小程序

本文详细介绍了将2048游戏移植到小程序中所采用的mpvue框架,并展示了核心的左移操作逻辑。通过创建栈结构,对矩阵中的每个元素进行比较和合并,实现了2048游戏的关键算法。代码实现部分详细阐述了如何通过栈进行数值合并和矩阵更新,为学习和理解2048小程序开发提供了清晰的思路。
摘要由CSDN通过智能技术生成

2048 小程序移植版

使用mpvue编写的2048小程序, 仅供交流学习.

图片展示

1460000016123530?w=408&h=728

核心代码

初始化

[00][01][02][03]

[10][11][12][13]

[20][21][22][23]

[30][31][32][33]

(例)左移

假设

索引为 => [00][01][02][03]

对应值 => 2 2 0 4

1.建立一个栈

2.从左入栈,如果入栈元素为0, 不做任何处理

否则每入一个栈之前和栈顶元素做对比

如果和栈顶元素不同,入栈 {number: x, flag: false}

如果和栈顶元素相同,并且flag==false把当前需要入栈的元素抛弃,把栈顶的元素抛出来,并乘以2,加上flag = true,防止多次累加

3.循环完成一轮之后进行解构赋值

栈底第一个的值赋值给[00]

栈底第二个的值赋值给[01]

栈底第三个的值赋值给[02]

栈底第四个的值赋值给[03]

步骤展示

1. [00] => 2 需要入栈 {number:2, falg: false}

|{number:2, falg: false}|

|_______________________|

2. [01] => 2 需要入栈 {number:2, falg: false} , 和栈顶对比, 可以合并

|{number:2, falg: false}|

|_______________________|

|{number:4, falg: true }|

|_______________________|

4. [02] => 0 直接抛弃

|{number:4, falg: true }|

|_______________________|

5. [03] => 4 需要入栈 {number:2, falg: false}, 和栈顶对比, 虽然数值一样,但是flag=true, 无法合并, 入栈

|{number:4, falg: flase}|

|{number:4, falg: true }|

|_______________________|

--完成入栈, 进行赋值解构--

[0][0] = 4

[0][1] = 4

[0][2] = 0

[0][3] = 0

代码实现

for (let i = 0; i < 4; i++) {

var stack = new Stack() // 利用数组实现的栈结构

for (let j = 0; j < 4; j++) {

if (this.pie[i][j].number != 0) {

const top = stack.getTop()

if (!top.lock && top.number == this.pie[i][j].number) {

const current = stack.pop()

current.number *= 2

current.lock = true

stack.push(current)

} else {

stack.push({ number: this.pie[i][j].number, lock: false })

}

}

}

for (let j = 0; j < 4; j++) {

this.pie[i][j].number = stack.data[j] ? stack.data[j].number : 0

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值