200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 微信小程序开发实例:猜数字小游戏

微信小程序开发实例:猜数字小游戏

时间:2018-10-12 12:52:00

相关推荐

微信小程序开发实例:猜数字小游戏

这学期选修了《微信小程序设计》这门通识课,最近准备把本学期的部分小作业整理一下。

一、案例描述

设计一个微信小程序,由后台生成一个0~100的随机整数,用户猜这个整数,并在输入框中输入用户猜的数字,点击提交按钮,小程序将用户输入的整数与后台生成的随机整数进行比较,并输出结果。同时输出用户提交的次数。如果用户猜不出来,点击按钮可查看答案。

二、设计思路

1.页面设计思路

由于需要用户输入数字与后台随机整数进行比较,我们可以通过输入框input组件获得用户输入。接下来通过view组件显示提示信息和输入次数。最后还要有提交按钮,即button组件。我们还可以设计一个查看答案的按钮,通过hidden命令先将答案隐藏,如果用户点击查看答案按钮则显示答案。

2.逻辑层设计思路

由于需要后台生成一个0~100的随机整数,所以我们可以在js文件中定义一个random函数,用来生成随机整数。同时,我们还需要一个函数来判断用户输入与系统随机整数大小,并输出相应的结果。在判断函数中,我们可以定义一个变量i,用来计数。

三、程序设计

1.页面设计

首先通过input组件定义一个输入框来获得用户输入,代码如下:

<input placeholder="请输入一个0~100的整数" type="digit" bindinput="num"></input>

接下来通过view组件获得后台提示信息和输入次数并显示

<view>提示信息:{{tips}}</view><view>输入次数:{{i}}</view>

最后提交和查看答案按钮可以通过button组件实现

<button bindtap="judge">提交</button><button bindtap="answer">猜不出来?点我查看答案</button>

我们可以通过view组件显示答案

<view hidden="{{flag}}"><view>答案:{{rand}}</view></view>

2.逻辑层设计

首先通过onLoad函数生成一个0~100的随机整数,代码如下:

onLoad:function(){r=parseInt(Math.random()*101);},

接下来通过input组件绑定的num函数获得用户的输入数字,代码如下:

num:function(e){this.setData({random:parseInt(e.detail.value)})},

获得随机数和用户输入数字之后我们就可以进行判断,并输出提示信息,可以如下实现:

judge: function(){i++if(this.data.random == r){this.setData({tips:"恭喜你,猜对了!"})}else if(this.data.random > r){this.setData({tips:"你输入过大!"})}else{this.setData({tips:"你输入过小!"})}this.setData({i:i})},

我们还需要一个函数来控制答案的显示,代码如下:

answer:function(){this.setData({rand:r,flag:false})},

到这,我们的基本功能就已经实现了。

四、页面美化

基本功能实现之后,我们可以通过修改wxss文件对我们的程序进行美化。

我们可以给页面一个背景颜色,然后让输入有一个边框,之后还可以对button按钮样式进行修改设计。

代码如下:

page{background: #f1f0f6} input{background: #fff;height: 120rpx;margin: 10px;padding-left: 8px;border: solid 1px silver} button{margin: 50rpx 0rpx;background-color: red;color: white;}

五、源代码

1.js文件代码

var rand,i=0,r,random,tips;Page({data: {flag:true,random:'',tips:'',times:''},onLoad:function(){r=parseInt(Math.random()*101);console.log(r)},num:function(e){this.setData({random:parseInt(e.detail.value)})},judge: function(){i++if(this.data.random == r){this.setData({tips:"恭喜你,猜对了!"})}else if(this.data.random > r){this.setData({tips:"你输入过大!"})}else{this.setData({tips:"你输入过小!"})}this.setData({i:i})},answer:function(){this.setData({rand:r,flag:false})},})

2.wxml文件代码

<view class="title">猜数字小游戏</view><view><input placeholder="请输入一个0~100的整数" type="number" bindinput="num"></input></view><view style="font-size:20px;margin:10px;">提示信息:{{tips}}</view><view style="font-size:20px;margin:10px;">输入次数:{{i}}</view><button bindtap="judge" style="width:90%;">判断</button><button bindtap="answer" style="width:90%;">猜不出来?点我查看答案</button><view hidden="{{flag}}"><view style="font-size:20px;margin:10px;">答案:{{rand}}</view></view>

3.wxss文件代码

page{background: #f1f0f6} input{background: #fff;height: 120rpx;margin: 10px;padding-left: 8px;border: solid 1px silver} button{margin: 50rpx 0rpx;background-color: red;color: white;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。