概要
ゲームパッドなどの十字キーでASCIIで文字入力する仕様とその実装。D-pad ASCII Input。
動機、目的、特徴
- 入力キーが少ないデバイスで入力できる
- ASCIIの英数字記号を全て入力できる
- 仕様がシンプル
- 実装がシンプル
- 実用的な速度で入力できる
- 画面を見なくても入力できる
- 画面を見れば覚えていなくても入力できる
- 入力仕様に規則性があり習得しやすい
仕様
- 十字キーを4回入力し、各2bitを合わせて1Byteにし、それをASCIIの文字コードとして文字入力する
- ↑、←、→、↓がそれぞれ0、1、2、3になる
- そのキーを押した場合の残り候補となる文字群が画面に表示される
- 入力途中のbitが存在する場合、Backspaceで2ビットずつ取り消せる
例
- Hello World
文字 | 入力 |
---|---|
H | ←↑→↑ |
e | ←→←← |
l | ←→↓↑ |
l | ←→↓↑ |
o | ←→↓↓ |
Space | ↑→↑↑ |
W | ←←←↓ |
o | ←→↓↓ |
r | ←↓↑→ |
l | ←→↓↑ |
d | ←→←↑ |
動作するサンプル
Web上で動作するサンプル。(Windows、Chrome84、Firefox79、XBox360 Controllerで動作確認)
キーボードでは矢印キーが十字キーに対応、BackspaceキーがBackspaceに対応する。
Gamepad APIによるゲームパッドにも対応。
0軸、1軸、12~15ボタンが十字キーに対応、0ボタンがBackspaceに対応する。
WPM、CPMを計測できる。
入力の工夫
以下のように入力すると速く入力できる。
文字 | 入力 | 工夫した入力 |
---|---|---|
a | ←→↑← | ←→↗↑↖ |
b | ←→↑→ | ←→↑↗ |
t | ←↓←↑ | ←↓↙←↖ |
x | ←↓→↑ | ←↙↓↘→↗ |
どれだけの速度が出るか?
30分の練習を3回に分けて行ったところ、
およそ15WPMまで出るようになった。(所々詰まったり間違えたりする状態)
一般的な平均タイピング速度は、38~40WPMとのこと。
なので、最終的には、一般的な平均タイピングの半分程度の性能が出ることが予想される。
一覧
入力 | 分類 |
---|---|
Tab | ↑↑→← |
Enter | ↑↑→→ |
Space | ↑→↑↑ |
! | ↑→↑← |
" | ↑→↑→ |
# | ↑→↑↓ |
$ | ↑→←↑ |
% | ↑→←← |
& | ↑→←← |
' | ↑→←↓ |
( | ↑→→↑ |
) | ↑→→← |
* | ↑→→→ |
+ | ↑→→↓ |
, | ↑→↓↑ |
- | ↑→↓← |
. | ↑→↓→ |
/ | ↑→↓↓ |
0 | ↑↓↑↑ |
1 | ↑↓↑← |
2 | ↑↓↑→ |
3 | ↑↓↑↓ |
4 | ↑↓←↑ |
5 | ↑↓←← |
6 | ↑↓←→ |
7 | ↑↓←↓ |
8 | ↑↓→↑ |
9 | ↑↓→← |
: | ↑↓→→ |
; | ↑↓→↓ |
< | ↑↓↓↑ |
= | ↑↓↓← |
> | ↑↓↓→ |
? | ↑↓↓↓ |
@ | ←↑↑↑ |
A | ←↑↑← |
B | ←↑↑→ |
C | ←↑↑↓ |
D | ←↑←↑ |
E | ←↑←← |
F | ←↑←→ |
G | ←↑←↓ |
H | ←↑→↑ |
I | ←↑→← |
J | ←↑→→ |
K | ←↑→↓ |
L | ←↑↓↑ |
M | ←↑↓← |
N | ←↑↓→ |
O | ←↑↓↓ |
P | ←←↑↑ |
Q | ←←↑← |
R | ←←↑→ |
S | ←←↑↓ |
T | ←←←↑ |
U | ←←←← |
V | ←←←→ |
W | ←←←↓ |
X | ←←→↑ |
Y | ←←→← |
Z | ←←→→ |
[ | ←←→↓ |
\ | ←←↓↑ |
] | ←←↓← |
^ | ←←↓→ |
_ | ←←↓↓ |
` | ←→↑↑ |
a | ←→↑← |
b | ←→↑→ |
c | ←→↑↓ |
d | ←→←↑ |
e | ←→←← |
f | ←→←→ |
g | ←→←↓ |
h | ←→→↑ |
i | ←→→← |
j | ←→→→ |
k | ←→→↓ |
l | ←→↓↑ |
m | ←→↓← |
n | ←→↓→ |
o | ←→↓↓ |
p | ←↓↑↑ |
q | ←↓↑← |
r | ←↓↑→ |
s | ←↓↑↓ |
t | ←↓←↑ |
u | ←↓←← |
v | ←↓←→ |
w | ←↓←↓ |
x | ←↓→↑ |
y | ←↓→← |
z | ←↓→→ |
{ | ←↓→↓ |
Vertical bar | ←↓↓↑ |
} | ←↓↓← |
^ | ←↓↓→ |