All Projects → Werneror → Fingermemory

Werneror / Fingermemory

Licence: gpl-3.0
以刻意练习理论为指导、根据练习者掌握情况动态生成训练内容,优先训练练习者掌握不佳内容的五笔输入法训练系统。

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Fingermemory

Larkplayer
🚀 A lightweight & flexible web player :)
Stars: ✭ 82 (-11.83%)
Mutual labels:  html5
Vkbot
Простой разговорный бот на PHP
Stars: ✭ 88 (-5.38%)
Mutual labels:  html5
91break
91porn破解,html极简版,可视化界面,浏览器直接打开
Stars: ✭ 91 (-2.15%)
Mutual labels:  html5
Front End Resource Collection
前后端日常总结
Stars: ✭ 82 (-11.83%)
Mutual labels:  html5
Kodeweave
HTML/CSS/JS and Markdown Playground For Web Designers and Developers
Stars: ✭ 87 (-6.45%)
Mutual labels:  html5
Buddycss
The framework for people who love coding!
Stars: ✭ 89 (-4.3%)
Mutual labels:  html5
Hugo Uilite
Stars: ✭ 79 (-15.05%)
Mutual labels:  html5
Emerald
HTML5 templating engine for Nimrod
Stars: ✭ 91 (-2.15%)
Mutual labels:  html5
Supermarket
设计精良的网上商城系统,包括前端、后端、数据库、负载均衡、数据库缓存、分库分表、读写分离、全文检索、消息队列等,使用SpringCloud框架,基于Java开发。该项目可部署到服务器上,不断完善中……
Stars: ✭ 1,278 (+1274.19%)
Mutual labels:  html5
Awsm.css
Simple CSS library for semantic HTML markup
Stars: ✭ 1,288 (+1284.95%)
Mutual labels:  html5
Muse
🎧 All you need is a simple and diligent HTML 5 music player written in React.
Stars: ✭ 82 (-11.83%)
Mutual labels:  html5
Gt
Easily generate information-rich, publication-quality tables from R
Stars: ✭ 1,260 (+1254.84%)
Mutual labels:  html5
Springbootangularhtml5
♨️ Spring Boot 2 + Angular 11 + HTML5 router mode + HTTP interceptor + Lazy loaded modules
Stars: ✭ 89 (-4.3%)
Mutual labels:  html5
Broken Link Checker
Find broken links, missing images, etc within your HTML.
Stars: ✭ 1,237 (+1230.11%)
Mutual labels:  html5
Codrops Dropcast
a responsive HTML/CSS/Javascript template, comes with Sketch files and a fully working site with SCSS. It works very well for podcasts landing pages or blogs, and can be easily customized.
Stars: ✭ 91 (-2.15%)
Mutual labels:  html5
Binari
Interactive code editor with a live binary tree visual designed to teach new developers the fundamentals of dynamic programming.
Stars: ✭ 82 (-11.83%)
Mutual labels:  html5
React Froala Design Blocks
React implementation for Froala Design Blocks.
Stars: ✭ 89 (-4.3%)
Mutual labels:  html5
Phasereditor2d V3
A web-based IDE for HTML5 game development. Powered by Phaser.
Stars: ✭ 92 (-1.08%)
Mutual labels:  html5
Front End Course
前端知识学习汇总
Stars: ✭ 91 (-2.15%)
Mutual labels:  html5
Snapaper
📰 Past Papers Sharing Platform Based On Vue.js & GCE Guide | CAIE 试卷分享与下载平台
Stars: ✭ 90 (-3.23%)
Mutual labels:  html5

手指记忆

简介

最近我在学习五笔输入法。使用一个输入法,我需要能够做到不过脑子,下意识地便能进行正确的输入。这需要大量的练习,让自己的手指“记住”五笔输入法才行。大脑记住某个东西尚且需要重复,手指“记住”某个东西非有大量练习不可。

我在学习时使用金山打字通作为训练教程。使用后发现金山打字通训练时字根或汉字的出现是固定的。无论我对某个字根或汉字的输入多么熟悉,它出现的频率也不会减少;无论我对某个字根或汉字的输入多么陌生,它出现的频率也不会增加。我一遍又一遍的训练,熟悉的还是熟悉,陌生的依旧陌生。

我发现这是不符合刻意练习原则的。我们应该花更多的时间刻意地练习自己不熟悉的部分。所以一个好的五笔输入法训练系统应该能够记录练习者的练习情况,根据其掌握程度动态地制定训练任务,更多地训练练习者不熟悉的字根或汉字。

我想要寻找一个这样的、符合刻意练习原则的五笔输入法训练系统,却没能找到。于是决定自己动手实现,便有了这个项目。

本项目是以刻意练习理论为指导、根据练习者掌握情况动态生成训练内容、优先训练练习者掌握不佳内容的五笔输入法训练系统。

本项目是一个纯前端项目,没有服务器端,所有用户数据都保存在浏览器中。

关卡设置

  • 第零关:指法练习
  • 第一关:字根输入
  • 第二关:一级简码
  • 第三关:键名汉字
  • 第四关:二级简码
  • 第五关:三级简码
  • 第六关:常用汉字

关卡写在文件statics/js/data.js中。

其中“第五关:三级简码”只选取了最常用的一小部分三级简码。“第六关:常用汉字”选取了最常用的 6763 个汉字,来源见此处。通过第六关即可认为已较为熟练地掌握了五笔输入法。

算法

显示与输入

在“第一关:字根输入”中,我们会在屏幕上显示一个字根,如“礻”,用户看到这个字根后应该按下这个字根所在按键“p”。在这个过程中,我们称字根“礻”为显示(display),按键“p”为输入(input)。显示的取值范围是任意的,如在第零关中它是字母,在第一关中它是字根。输入的取值只能是可以用键盘输入的东西,如字母或汉字。一个显示对应且仅对应一个输入,一个输入可以对应多个显示。我们称一对显示-输入为一个训练元。关卡便是一些训练元的集合。

不熟练度度量

设从显示显示在屏幕上到用户输入输入经历的时间为T(单位:秒),则不熟练度U为:

U = T^0.5

这个函数不收敛,所以需要指定一个时间最大值,当输入错误或T超过时间最大值时,将T置为时间最大值。

每个训练元都对应一个不熟练度,初始时不熟练度为时间最大值对应的不熟练度。练习者的每次练习都会更新相应训练元的不熟练度。

下表是一些TU的对应:

T U
0.0 0.00
0.1 0.32
0.2 0.45
0.5 0.71
1.0 1.00
1.5 1.22
5.0 2.23
5.0 2.23
10 3.16
60 7.75

训练元选择器

每一个关卡都有一个训练元集合,训练元选择器的作用是从训练元集合中选取一个训练元,将训练元的显示显示在屏幕上,然后等待用户输入。

如何选择呢?我们按照不熟练度加权进行随机选取。设训练元集合中的训练元的不熟练度之和为S,其中第i个训练元的不熟练度为Ui,则选择第i个训练元的概率为:

P(i) = Ui / S

显然,所有训练元被选择的概率之和为1,每次必有一个训练元被选中。

过关条件

每一关都定义一个过关条件condition。当一个训练元的不熟练度小于或等于condition时,我们认为用户对该训练元足够熟悉。当某一关的训练元集合中所有训练元的不熟练度均小于或等于condition时我们认为练习者通过此关。

TODO

  • [ ] 不熟练度度量函数过于简单,不够理想,有待探索
  • [ ] 过关条件condition等参数还需调整
  • [ ] 编写帮助页面
  • [ ] 界面很简陋,有待完善
  • [x] 添加关卡选择功能

开源证书

GNU General Public License v3.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].