作业
2048小程序修改
| 博客班级 | https://edu.cnblogs.com/campus/zjcsxy/SE2020 |
|---|---|
| 作业要求 | https://edu.cnblogs.com/campus/zjcsxy/SE2020/homework/11334 |
| 作业目标 | 1. 编写一个小程序,可以全新编写,也可以学习别人的小程序进行修改2.熟悉git代码管理流程,将源代码上传到到github3.在博客园班级中写一篇相应的博文 |
| 作业源代码 | https://github.com/jasercat/WeChatprogram |
| 学号 | 31801139 |
| 姓名 | 李松洋 |
项目描述
这个小程序是由github上的“wechat-weapp-2048-master”修改而成的,在原有的基础上做了一
点点的修改。
开发工具 :微信开发者工具
项目演示


修改内容
原有界面修改
gameStart: function() { // 游戏开始
var main = new Main(5);
this.maxstep=0;
this.setData({
main: main,
bestScore: wx.getStorageSync('highScore')
});
this.data.main.__proto__ = main.__proto__;
this.setData({
hidden: true,
over: false,
score: 0,
step:0,
num: this.data.main.board.grid
});
},
Board.prototype = {// 形成一个空矩阵
init() {
var grid = [];
for(var i = 0; i < this.size; i++) {
grid[i] = [];
for(var j = 0; j < this.size; j++) {
grid[i].push("");
}
}
return grid;
},
矩阵由16改为25,增加步数记录
增加回退功能
reback:function(){
this.setData({
back:"后退",
})
var data = this.data.main.getback();
this.backView(data);
},
getback(){ //后退
var result = [[],[],[],[],[]];
if(this.judge==0)
this.board.grid2=this.board.grid;
for(var i = 0; i < this.size; i++)
for(var j = 0; j < this.size; j++){
result[i][j] = this.board.grid2[i][j];
if(result[i][j]==0)
result[i][j]="";
}
return result;
},
记录上一次的方格内容
一键玩耍
automove(){
var dec = 0;
this.count=0;
for(var i = 0; i < 4; i++){
this.count=0;
var list = this.combine(this.formList(i));
if(this.count>dec)
dec=i;
}
return dec;
},
autostep:function(){
var dec = this.data.main.automove();
var data = this.data.main.move(dec);
this.updateView(data);
},
优先选可以合并方块最多的方向合并
WXML的代码如下:
<!--pages/2048/2048.wxml-->
<view class='container'>
<!-- loading -->
<loading hidden="{{hidden}}">
加载中...
</loading>
<view class='head'>
<view class='lside'>
<text class='title'bindtap='reback'>{{back}}</text>
<text class='auto' bindtap='autostep'>{{help}}</text>
<text class='play' bindtap='gameStart'>{{start}}</text>
</view>
<view class='mside'>
<text>step <text class='step'>{{step}}</text></text>
</view>
<view class='rside'>
<text>score <text class='score'>{{score}}</text></text>
</view>
</view>
<view class="game">
<!-- 矩阵 -->
<view bindtouchstart="touchStart" bindtouchmove="touchMove" bindtouchend="touchEnd">
<view class='row' wx:for="{{num}}" wx:for-item="row" wx:key="row.key" >
<view class='cell' wx:for="{{row}}" wx:for-item="cell" wx:key="cell.key">
<view class='cell-con cell-con-{{cell}}'>
{{cell}}
</view>
</view>
</view>
</view>
<!-- game over -->
<view class='game-over' hidden='{{!over}}'>
<text class='nowScore'>历史最高分:{{bestScore}}</text>
<text class='nowScore'>本次成绩:{{score}}</text>
<text class='pro'>{{endMsg}}</text>
</view>
</view>
</view>

浙公网安备 33010602011771号