小程序原创--基于微信开发者工具实现的猜谜游戏程序

目录

一、开发环境

二、演示视频

三、项目简介

四、设计详情(部分)

登录页

游戏页

五、项目源码


一、开发环境

微信开发者助手 1.06.2503310

二、演示视频

小程序原创--基于微信开发者工具完成的 猜谜游戏小程序

三、项目简介

使用软件

微信开发者工具

使用语言

JavaScript、WXML、WXSS

服务器

数据库

本地存储(wx.setStorageSync)

注释量

中文注释量90%以上

项目页面

登陆页、注册页、游戏页

关键技术点

微信小程序API集成、wx.request 网络请求、wx.setStorageSync / wx.getStorageSync 本地存储......

四、设计详情(部分)

登录页

  1. 页面的结构

登录页面的结构设计清晰合理,主要分为三个核心部分。顶部是品牌标识区域,展示应用程序的Logo图片,帮助用户确认当前所在平台。中间部分是表单容器,包含手机号和密码两个输入框,采用垂直排列方式确保操作流畅性。手机号输入框限定数字键盘输入模式,密码输入框则启用密码遮盖功能以保护隐私安全。

表单下方设置记住密码选项,通过复选框和说明文字组合呈现,方便用户进行持久化登录设置。底部区域设计为操作按钮和导航链接,登录按钮采用醒目的视觉样式突出主要操作,注册引导文字通过链接样式提示用户进行账号创建。整个页面布局采用垂直流式布局,各元素间距适中,符合移动端操作习惯,确保用户能够快速完成登录流程。

  1. 使用到的技术

该登录页面基于微信小程序框架开发,充分利用小程序提供的组件系统和API能力。视图层使用WXML语言构建页面结构,通过数据绑定实现界面与逻辑的交互。样式设计采用WXSS语言,支持响应式布局和弹性盒子模型,确保在不同尺寸设备上都能获得良好的视觉体验。

业务逻辑部分使用JavaScript编写,通过Page函数注册页面实例,管理内部状态和数据响应。数据存储功能借助自定义工具模块实现,包括用户信息的持久化存储和登录状态的维护。交互反馈使用微信官方提供的弹窗组件,为用户提供清晰的操作结果提示。

页面导航采用小程序路由系统,支持页面间的平滑跳转和重定向。表单验证机制结合前端校验和模拟数据验证,既保证即时反馈又为后续接口对接预留扩展空间。密码安全管理通过本地加密存储实现,兼顾用户体验与数据安全。

  1. 页面详细介绍

该登录页面是应用程序的入口界面,承担用户身份验证的核心功能。页面设计遵循简洁高效原则,视觉重点突出登录操作流程。用户进入页面后首先看到品牌标识,建立对产品的初步认知。表单区域通过合理的占位符文字引导用户输入所需信息,输入时实时更新数据状态确保交互流畅。

记住密码功能提供个性化体验选择,用户可根据设备安全情况决定是否启用该选项。登录按钮设计充分考虑操作便利性,点击后触发完整的验证流程,包括输入格式检查和凭证核对。验证通过后自动跳转至主功能页面,同时存储必要的会话信息。

对于新用户页面提供明确的注册引导,通过文字链接快速接入注册流程。错误处理机制完善,针对各种异常情况给出具体提示,如格式错误或凭证不匹配等。整个登录过程兼顾安全性与便捷性,既确保账户安全又最大限度降低用户操作成本,为后续功能使用奠定良好基础。

javascript 复制代码
    const storage = require('../../utils/storage.js');

    Page({
    data: {
        phone: '',
        password: '',
        rememberPassword: false
    },
    
    onLoad: function() {
        // 检查是否有记住的密码
        const rememberInfo = storage.getRememberPassword();
        if (rememberInfo.phone && rememberInfo.password) {
        this.setData({
            phone: rememberInfo.phone,
            password: rememberInfo.password,
            rememberPassword: true
        });
        }
    },
    
    onPhoneInput: function(e) {
        this.setData({
        phone: e.detail.value
        });
    },
    
    onPasswordInput: function(e) {
        this.setData({
        password: e.detail.value
        });
    },
    
    onRememberChange: function() {
        this.setData({
        rememberPassword: !this.data.rememberPassword
        });
    },
    
    onLogin: function() {
        const { phone, password, rememberPassword } = this.data;
        
        // 简单验证
        if (!phone || !password) {
        wx.showToast({
            title: '请输入手机号和密码',
            icon: 'none'
        });
        return;
        }
        
        if (phone.length !== 11) {
        wx.showToast({
            title: '手机号格式不正确',
            icon: 'none'
        });
        return;
        }
        
        // 使用新的验证方法
        if (storage.validateUser(phone, password)) {
        // 存储用户信息和token
        const userInfo = { phone: phone };
        storage.setUserInfo(userInfo);
        storage.setToken('mock_token_' + Date.now());
        
        // 处理记住密码
        storage.setRememberPassword(phone, password, rememberPassword);
        
        wx.showToast({
            title: '登录成功',
            icon: 'success',
            duration: 1500,
            success: () => {
            setTimeout(() => {
                wx.reLaunch({
                url: '/pages/game/game'
                });
            }, 1500);
            }
        });
        } else {
        wx.showToast({
            title: '手机号或密码错误',
            icon: 'none'
        });
        }
    },
    
    goToRegister: function() {
        wx.navigateTo({
        url: '/pages/register/register'
        });
    }
    })

游戏页

  1. 页面的结构

游戏主页面采用分层布局设计,整体分为六个功能区域。顶部是用户信息栏,展示用户手机号和当前得分,右侧配备退出登录按钮便于用户安全退出。第二层是统计信息卡片,以三栏布局展示答题数量、答对数量和正确率三个核心数据指标,帮助用户了解自己的游戏表现。

中间部分为谜题卡片区域,这是页面的核心交互区。卡片顶部显示谜题类型和提示信息,主体区域展示谜题内容,下方设置答案输入框和提交按钮。答题结果区域采用动态显示方式,根据答题正确与否展示不同的反馈信息和得分变化。

底部操作区提供换题和显示答案两个功能按钮,满足用户不同的答题需求。最下方是游戏提示卡片,详细说明得分规则和操作指引,帮助新用户快速掌握游戏玩法。整个页面结构层次分明,功能分区明确,确保用户体验的流畅性。

  1. 使用到的技术

该游戏页面基于微信小程序技术栈开发,充分利用小程序框架提供的组件系统和API接口。数据管理采用本地缓存机制,通过同步存储方式保存用户的游戏进度和统计信息,确保数据持久化且支持离线使用。谜题数据获取采用网络请求方式,同时内置示例数据作为降级方案,保证在网络异常时仍能正常游戏。

状态管理通过页面数据驱动视图更新,实时反映答题状态和统计变化。倒计时功能使用定时器实现,确保答对后的自动换题体验流畅。交互反馈集成小程序原生弹窗和加载提示,为用户提供清晰的操作指引。

页面生命周期管理严谨,在页面卸载时自动清理定时器资源,防止内存泄漏。登录状态验证机制确保未授权用户无法直接访问游戏页面,保障功能安全性。性能优化方面采用按需渲染策略,动态控制界面元素的显示与隐藏。

  1. 页面详细介绍

游戏主页面是一个功能完整的谜题答题平台,集成了用户管理、谜题展示、答题交互和数据统计四大核心模块。用户进入页面后首先看到个人身份信息和历史成绩概览,建立成就感和归属感。统计卡片以直观的数字展示用户的答题历程,正确率百分比帮助用户评估自己的知识水平。

谜题区域是用户体验的重点,每道谜题包含类型标识、内容描述和答题提示,引导用户思考解题思路。答题过程设计人性化,支持手动输入答案和查看答案两种模式,满足不同用户的需求。答题结果反馈及时且富有情感化设计,正确时显示庆祝表情和得分奖励,错误时展示正确答案供用户学习。

智能化的答题后续处理提升了用户体验,答对后自动倒计时换题减少了用户操作步骤,同时保留手动换题权限确保操作自主性。游戏规则提示清晰明了,帮助用户理解得分机制和功能限制。整个页面不仅提供了娱乐功能,更通过数据统计和反馈机制实现了教育意义,让用户在游戏中获得知识积累和能力提升。

html 复制代码
<view class="game-container">
  <!-- 用户信息栏 -->
  <view class="user-info">
    <view class="user-welcome">
      <text class="welcome-text">欢迎,{{userInfo.phone}}</text>
      <text class="user-score">得分:{{score}}</text>
    </view>
    <button class="logout-btn" bindtap="onLogout">退出登录</button>
  </view>

  <!-- 统计信息卡片 -->
  <view class="stats-card">
    <view class="stat-item">
      <text class="stat-number">{{totalAnswered}}</text>
      <text class="stat-label">答题数量</text>
    </view>
    <view class="stat-item">
      <text class="stat-number">{{correctAnswered}}</text>
      <text class="stat-label">答对数量</text>
    </view>
    <view class="stat-item">
      <text class="stat-number">{{accuracyRate}}%</text>
      <text class="stat-label">正确率</text>
    </view>
  </view>

  <!-- 谜题卡片 -->
  <view class="game-card">
    <view class="puzzle-header">
      <text class="puzzle-type">{{puzzleData.lx}}</text>
      <text class="puzzle-hint">{{puzzleData.ts}}</text>
    </view>
    
    <view class="puzzle-content">
      <text class="puzzle-text">{{puzzleData.mt}}</text>
    </view>
    
    <view class="answer-section">
      <input class="answer-input" placeholder="请输入您的答案" value="{{userAnswer}}" bindinput="onAnswerInput" disabled="{{hasAnswered}}" />
      <button class="submit-btn {{hasAnswered ? 'disabled' : ''}}" bindtap="onSubmitAnswer" disabled="{{hasAnswered}}">
        {{hasAnswered ? '已答题' : '提交答案'}}
      </button>
    </view>
    
    <view class="result-section {{isCorrect ? 'correct' : 'wrong'}}" wx:if="{{showResult}}">
      <text class="result-text {{isCorrect ? 'correct' : 'wrong'}}">
        {{isCorrect ? '🎉 恭喜您答对了!' : '😔 很遗憾,答错了!'}}
      </text>
      <text class="countdown-text" wx:if="{{isCorrect && isAutoRefreshing}}">{{countdownText}}</text>
      <text class="correct-answer" wx:if="{{!isCorrect}}">正确答案:{{puzzleData.md}}</text>
      <text class="score-change" wx:if="{{isCorrect}}">+10分</text>
    </view>
  </view>

  <!-- 操作按钮 -->
  <view class="action-buttons">
    <button class="change-puzzle-btn" bindtap="changePuzzle">换一题</button>
    <button class="show-answer-btn {{hasAnswered ? 'disabled' : ''}}" bindtap="onShowAnswer" disabled="{{hasAnswered}}">
      {{hasAnswered ? '已查看答案' : '显示答案'}}
    </button>
  </view>

  <!-- 提示信息 -->
  <view class="tips-card">
    <text class="tips-title">💡 游戏提示</text>
    <text class="tips-content">• 答对一题得10分</text>
    <text class="tips-content">• 点击"显示答案"不得分</text>
    <text class="tips-content">• 答对后3秒自动换题</text>
    <text class="tips-content">• 可手动点击"换一题"</text>
  </view>
</view>

五、项目源码

👇👇👇👇👇快捷方式👇👇👇👇👇

相关推荐
狂团商城小师妹16 小时前
JAVA露营基地预约户外露营预约下单系统小程序
java·开发语言·微信小程序·小程序
知识分享小能手19 小时前
微信小程序入门学习教程,从入门到精通,微信小程序页面制作(2)
前端·javascript·学习·微信小程序·小程序·前端框架·notepad++
计算机毕业设计小帅1 天前
【2026计算机毕业设计】基于Springboot的汉服交流的微信小程序
spring boot·微信小程序·课程设计
OEC小胖胖1 天前
组件化思维(下):表单与交互组件,倾听用户的心声
前端·微信小程序·小程序·微信开放平台
云起SAAS2 天前
老年ai模拟恋爱抖音快手微信小程序看广告流量主开源
人工智能·微信小程序·小程序·ai编程·看广告变现轻·老年ai模拟恋爱·ai模拟恋爱
宠友信息2 天前
类似小红书垂直社区APP小程序源码
java·开发语言·微信小程序·小程序·uni-app·开源·web app
Stanford_11062 天前
关于单片机的原理与应用!
c++·单片机·嵌入式硬件·微信小程序·微信公众平台·微信开放平台
计算机毕业设计小帅2 天前
【2026计算机毕业设计】基于Springboot的娱乐网站设计与实现
数据库·课程设计