跳到主要内容

微信小程序:比赛记分牌 v1.0

阅读需 5 分钟

突发奇想做的一款产品。

一、产品展示

应用名称:比赛记分牌 (已经发布了,可以直接搜索体验)

应用描述:双人对战记分,模拟真实记分牌,营造比赛感。

界面展览:

图片

二、想法原由

有次课上自学 vue.js ,我看到“组件”部分,就突然想到做这么个小程序。

构造 Vue 实例时传入的各种选项大多数都可以在组件内使用。只有一个例外:data 必须是函数。

然后 Vue 官方文档用三个按钮来展示这个例外:

图片

是不是挺像记分牌的,hh。

那么为什么会选择做一个微信小程序?

目前我对小程序的理解,就是简简单单实现一个功能。而这个设定,就很适合我的想法,只是凑巧用户几个人一起玩,需要一个暂时性的记分工具,就这么点需求,依赖性不高,小程序足够了,没必须搞一个App或者Web。

用完即走

所以我的界面开门见山,直接就是功能页面。

三、 操作过程

差点放弃

当时就直接画了草图,确定了程序的大方向。

但是在最开始写代码的时候,被 wxss 弄得蒙圈了,真的快暴走了,差点放弃。

转头去学了点新知识,换换心情。

晚上的时候,犹豫了,就这样打算放弃了?被一个样式表?

然后还是坚持去写了,效果还不错。

添加撤销功能

草图只设计了“VS“功能,清零,比赛开始。但是万一用户不小心按错了怎么办?

于是我增添了一个“撤销”功能 (CE) ,用数据结构中的“”的原理实现的。每一次加分,都会把这个所有者 push 到栈中,当需要撤销时,从栈中 pop 出所有者,再进行对这个对象操作即可。

审核的时候没有添加”更改分值“的功能,因为当时样式没有设计好…两者原理差不多,不过是在 push 到栈中时,除了所有者外,还有目前增加的分数。大致如下:

{ name: 'even', score: 2 }

撤销的时候,会对这个对象用 score 值进行操作。

CE 与 CC

对于撤销的英文简写: CE。最初是写的 CC…

计算器上的 CE 指,Clear Entry,只清除当前这步输入的数字,重新输入。

而 CC 有邮件抄送的含义,与计算无关。

名称确认

最后写小程序名称的时候,我后缀改了两三次,计分器->记分器->记分牌。

首先是记分计分的区别:

记分:记录工作、比赛、游戏或考试中得到的分数。

计分:在测验中, 根据完成内容的多少, 或所用时间的长短, 或克服了多少难点, 或答案准确性和优越性来表示成绩的一种分数。

其次我的产品是模拟体育活动类的牌子,而且“记分器”有一种电子产品的感觉,虽然手机在这个范围内,但是“记分牌”这个名称更贴近产品。

记分牌是在比赛时,用来记录,计算运动员比赛成绩的工具。

所以名称更改为比赛记分牌

四、更新计划

  1. 时间:2月份
  2. 界面设计:大致已设计完成,需要根据实际进行改动
  3. 添加自定义分数功能:用滑动条(range)也许不错?
  4. 提供保存、查看历史记录功能:这得好好研究下了
  5. 反馈功能:利于产品改进,必备功能

五、个人感想

本来这个小程序没打算审核甚至发布,只是做出来看看,体验一下过程。

完成之后才想到去看看同类产品都是怎么设计的,这才发现我这个产品的特色—模拟实际,另外其他人也没有像我这么“大胆”的设计…

总算还有点价值对吧?

改进的时候,差点忘记了产品的特色,设计了一波多人(三人及以上)对战界面,但是啊,手机屏幕小呀,最后不就跟其他产品一样了?(而且我不想写这个 css 了…)

正视产品的初衷,决定只做双人对战,跟随现实记分牌的样式。而且屏幕越大(平板),不就越像实物?效果不就越好?简单一点,事情别弄那么复杂。

其实写到这里…保存和历史功能是不是可以去掉?

暂时未加入评论功能,请在对应公众号文章下或 GitHub Issues下留言反馈。