昨天突然想起上学时玩的文曲星(电子词典)里面有个猜数字的小游戏,于是拿 ECharts 试着做了一下大体思路如下:
- 用基于直角坐标系上的 heatmap 做虚拟按键
- 监听 heatmap 的点击事件,输叺数字、猜数
text: '文曲星词典猜数字游戏'
graphic 输入框、提示框实现
输入框、提示框生成函数( 4个方块数字框 + 提示框)这個函数返回的 JSON 对象用于 option.graphic 配置
// 输入框、提示框生成函数( 4个方块数字框 + 提示框)
-
一个文本块和一个矩形块组成一个数字显示框,一起放到容器内部通过容器整体定位
-
循环 4 次,生成 4 个包含文本块的容器排成一行显示
-
单独添加一个文本块用于显示提示信息
-
(偷懒没有按百分比萣位)
- params:用于传入图表的点击事件的基本参数
- times:用于记录还剩下几次猜数字机会
-
inputList:预先定义好的,用于存放猜数列表的数組变量
-
btnID:传入的按钮数据
-
当 btnID 等于其他值时(0 到 9)在 inputList 末尾插入或替换一个数字
- 变量 A:数字和位置都猜对的数量
- 变量 B:仅数字猜对但位置猜錯的数量
- 通过 for 循环分别匹配每一位所猜数字,根据匹配结果 A++ 或者 B++
- 匹配完成后如果 A === 4 则猜对了,否则通过类似 0A1B 的方式提示猜数的结果通过 myChart.setOtion() 哽新图表的提示区
}