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

一、案例描述

设计一个微信小程序,由后台生成一个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;
}

微信小程序开发实例:猜数字小游戏相关推荐

  1. 微信小程序开发之猜词游戏

    基于微信小程序开发的猜词游戏.之所以想开发这个小游戏,是因为网上类似的游戏,充斥了太多广告和暗坑,所以想想比如自己开发一个. 以下是几个截图,比较简单,但是足够自己玩了:) 源码地址供参考: 微信小程 ...

  2. 微信小程序开发学习1(小程序的入门知识)

    微信小程序开发学习1(小程序的入门知识) 1.制定学习目标: 能够知道如何创建小程序项目 能够清楚小程序项目的基本组成结构 能够知道小程序页面的几个组成部分 能够知道小程序中常见的组件如何使用 能够知 ...

  3. 【微信小程序开发(云壁纸小程序教程)】

    微信小程序开发(云壁纸小程序教程) 1. 准备 HBuilder X 和 微信开发者工具 2. 进入网站注册小程序 3. 点击发行,这时候就用到微信开发者工具 1. 准备 HBuilder X 和 微 ...

  4. 微信小程序开发详细步骤(企业小程序开发流程)

    今天珍奶bb给大家简单唠唠微信小程序开发详细步骤(企业小程序开发流程)? 微信小程序制作流程是什么?微信小程序制作模板套用怎么操作?今天珍奶bb给大家简单唠唠微信小程序制作流程是什么? 在唠微信小程序 ...

  5. 视频教程-老司机讲前端之微信小程序开发成语消消乐游戏视频课程-微信开发

    老司机讲前端之微信小程序开发成语消消乐游戏视频课程 中国实战派HTML5培训第一人,微软技术讲师,曾任百合网技术总监,博看文思HTML5总监.陶国荣长期致力于HTML5.JavaScript.CSS3 ...

  6. 老司机讲前端之微信小程序开发成语消消乐游戏视频课程-陶国荣-专题视频课程...

    老司机讲前端之微信小程序开发成语消消乐游戏视频课程-102人已学习 课程介绍         本课通过一个完整.真实的游戏项目,带着学员手动开发代码,本课分项目介绍.界面效果.技术分析.代码实现.打包 ...

  7. 微信小程序开发实例:猜成语游戏

    文章目录 一.案例描述 二.设计思路 1.页面设计思路 2.逻辑层设计思路 三.关键技术 1.用户选择内容实时显示在前端 2.setData给循环数组赋值 3.点击按钮删除用户当前选择 4.播放音乐 ...

  8. 微信小程序开发之——比较数字大小-创建项目(2.1)

    一 概述 本文通过比较数字大小的案例,来学习小程序中的一些基础知识,包括页面组件.页面样式.页面逻辑的编写,了解配置文件中常见配置的含义,利用事件.数据绑定.条件渲染.表单等方式实现小程序的页面交互 ...

  9. 《微信小程序》微信小程序开发实例

    wx-gesture-lock  微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 sh ...

最新文章

  1. Golang学习 - bufio 包
  2. 白话Elasticsearch22- 深度探秘搜索技术之match_phrase_prefix实现search-time搜索推荐
  3. Filter若不写chain.doFilter(request,response)原Servlet路径代码不会被执行
  4. 简单php不用mysql_简单的PHP / MySQL不工作
  5. 工作252:uniapp--实战--uview---tabber
  6. 【多线程学习第一弹】支持value重复的双向Map
  7. c++ linux 线程等待与唤醒_Linux驱动程序基石-POLL机制(附.视频)
  8. JDBC技术总结(一)
  9. extmail mysql数据库 重启_一个简单的基于postfix+extmail+mysql的邮件系统
  10. springboot 整合腾讯云短信
  11. apache beam入门之编码Coder相关
  12. 手机远程控制电脑方法 手机远程控制电脑软件使用教程
  13. CRMEB小程序商城v4.0二次开发对接集成阿里云短信
  14. mysql ibd恢复数据_mysql通过ibd恢复数据
  15. Jib快速打包Docker镜像
  16. 常见的夜间经济项目有哪些?
  17. html做表格(个人简历)
  18. 开源中国部分源代码分享
  19. 初学者c语言心里测试小项目
  20. 【前端技术】一篇文章搞掂:uni-app

热门文章

  1. Unity3D中如何调用序列帧图片为动画
  2. 恋与制作人 服务器错误,恋与制作人登陆不了怎么办 登录失败无法登录DNS劫持全解析...
  3. android 点赞手型,在朋友圈,你是哪种点赞型人格?
  4. 基于MATLAB的全局多项式插值法(趋势面法)与逆距离加权(IDW)法插值与结果分析
  5. 谈谈百度/GOOGLE联盟和一般联盟的区别
  6. 微信公众平台-服务号:网页授权域名 设置
  7. 【特写】中国卡通形象设计师——初心不改,画作一方天地
  8. 无人驾驶及Apollo开源平台技术教程
  9. 富勒x100滚轮无法调节音量怎么办?
  10. 猿编程python分为几个阶段_python教程- 猿说python