[极致用户体验] 我做的《联机五子棋》是如何追求极致用户体验的?(上)

news/2024/11/22 7:56:18/

我是HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者HullQin授权。我独立开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏,不收费没广告。还开发了《Dice Crush》参加Game Jam 2022。喜欢可以关注我 HullQin 噢~我有空了会分享做游戏的相关技术。

1. 《联机五子棋》简介

游戏地址在这篇《我做了个《联机桌游合集: UNO+斗地主+五子棋》无需下载,点开即玩!叫上朋友,即刻开局!不看广告,不做任务,享受「纯粹」的游戏!》文章的开头,你可以去体验一下。

不知道你玩起来感觉怎么样,反正我在开发的时候,处处为极致用户体验着想。绞尽脑汁也要把用户体验做到最好!

这篇文章,带你分析一下,我在这方面,做了哪些努力。

2. 移动端适配

它的所有页面,我都做了移动端适配。因为我知道,大部分用户,都会用手机访问我的网页。

2.1 棋盘宽度尽可能大

在移动端,棋盘宽度刚好撑满手机屏幕的宽度,这是最大程度上,给用户下棋的便利,避免误操作。

其中移动端适配,我已经分享了一点经验,见:《2行代码,让你的UI适配移动端、PC端,快来收藏》。我五子棋游戏移动端适配的方法,就采用了文中介绍的方法,只用了2行代码。

2.2 网页允许双指放大

此外,如果部分用户手机还是太小,导致经常点错棋子,我也允许用户双指放大棋盘,如图:

1.png

3. PC端适配

除了移动端,PC端体验也是非常好的,如图:

2.png

这主要得益于我设置了棋盘的max-width属性,使得在屏幕特别宽的时候,它能保持一个合理的棋盘大小,争取在大部分PC上,一页能展示完整棋盘。

当然,如果屏幕宽度小于棋盘的max-width,那么宽度就会使用默认值100%,使之撑满屏幕宽度。

4. 点击一次下棋 VS 点击两次下棋

我调研过,很多移动端五子棋,为了避免用户点错棋子,是做了二次确认的:即第一次点击空位,会先用红圈标记它,再次点击红圈标记,才会真正下棋。

优点缺点
点击一次下棋相对后者,降低了50%用户下棋的交互次数容易点错位置
点击两次下棋点错位置几率大大降低交互繁琐

我认为:本来在小屏幕上找准一个位置就不容易,还要连续2次找准点击,才能下棋成功,太累了!

所以我坚持:点击一次就下棋。降低了50%用户下棋的交互次数。

此外,我这个点击一次下棋,是有办法应对“容易点错位置”这个缺点的

  • 应对方式一:允许屏幕双指放大后,再下棋,点错概率降低。
  • 应对方式二:提供悔棋功能,即使点错了,跟朋友求求情,他会同意你悔棋的~

而其它五子棋APP,因为不支持双指放大棋盘、且是在线匹配玩法(导致悔棋成功率下降,因为陌生人看到你下错了,老开心了,就等着赢你挣分升段位了),所以不能忍受“容易点错位置”的缺点。最终他们使用“点击两次下棋”的方案,我也能理解其原因。

5. 棋子的Hover态

在PC端,你鼠标移动到棋盘上,只要该你下棋了,它就会半透明展示棋子,表明:如果你点击,那么你就在这里下棋了。如图:

3.png

但是在移动端,是没有Hover态的,因为移动端没有鼠标。需要把移动端的Hover态取消掉,否则会有奇怪的现象:

移动端其实有光标,你点击哪里,光标就停留在那里了。如果你点击了某个地方下棋了,然后又悔棋了。那么那个地方会半透明展示棋子,给用户很大的困惑。

我在这篇文章分享了,如何实现PC端有Hover态、移动端无Hover态,见:《用户体验好的 Button,在手机上不应该有 Hover 态》

当然,还有更多小细节噢,请期待下篇~

6. 写在最后

如果你只是为了完成别人的需求,挣点工资,还是直接用组件库堆积功能吧,就没这么多要操心的了 😁

我是HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者HullQin授权。我独立开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏,不收费没广告。还开发了《Dice Crush》参加Game Jam 2022。喜欢可以关注我 HullQin 噢~我有空了会分享做游戏的相关技术。


http://www.ppmy.cn/news/544903.html

相关文章

Java五子棋全代码-增加了人机对战功能

用Java编写简单的五子棋——人机对战! 前言 2022-02-04,农历正月初四   首先在这祝大家新年快乐。   距离上两个版本的更新已经过去了很久,因为年前工作非常忙,经常熬到凌晨,导致我看大家私信和回复的时间有限&a…

超级简单五子棋小游戏(含代码)

五子棋简单功能实现 游戏功能演示 代码如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <getch.h> // 棋盘 char board[15][15]; // 棋子坐标 char kx 7 , ky 7; // 角色 char role ; // 显示棋盘 void …

网页版五子棋实时对战系统

目录 主要功能介绍项目创建认识WebSocket原理解析WebSocket报文格式 引入pom.xml依赖数据库设计配置 MyBatis 用户模块服务器开发客户端开发登录界面的设计注册界面设计 匹配模块的实现客户端开发服务器开发创建并注册 MatchAPI 类实现用户管理器创建匹配的请求响应对象处理连接…

jovi五子棋下载_五子棋终结者

五子棋终结者拥有简约的画风以及众多贴心的功能呈现&#xff0c;没有任何花里胡哨的操作让玩家沉浸这指尖操作中去。线上提供了多种模式选择&#xff0c;强大的人机等你来战。下棋的过程中棋盘会放大哦&#xff0c;帮助大家精准落子&#xff01; 五子棋终结者介绍 传统五子棋执…

MongoDB用户管理

一、概述 要在MongoDB中验证客户端&#xff0c;必须向MongoDB添加相应的用户。 1、用户管理 可以在mongosh使用db.createUser&#xff08;&#xff09;方法添加用户。您创建的第一个用户必须具有创建其他用户的权限。userAdmin或userAdminAnyDatabase角色都授予创建其他用户…

HarmonyOS学习路之开发篇—安全管理(生物特征识别开发)

生物特征识别开发概述 提供生物特征识别认证能力&#xff0c;可应用于设备解锁、支付、应用登录等身份认证场景。 当前生物特征识别能力提供2D人脸识别、3D人脸识别两种人脸识别能力&#xff0c;设备具备哪种识别能力&#xff0c;取决于设备的硬件能力和技术实现。3D人脸识别…

ChatGPT底层架构Transformer技术及源码实现(一)

ChatGPT底层架构Transformer技术及源码实现 Language Model底层的数学原理之最大似然估计MLE及最大后验概率MAP内部机制详解 Gavin大咖微信:NLP_Matrix_Space 传统人工智能算法的真相(The Truth Under Traditional AI Algorithms),传统人工智能算法是相对于贝叶斯(Bayesia…

《小星星》简谱

一、单手 二、双手