summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pokemontools/vba/keyboard.data501
-rw-r--r--pokemontools/vba/vba_keyboard.py504
2 files changed, 503 insertions, 502 deletions
diff --git a/pokemontools/vba/keyboard.data b/pokemontools/vba/keyboard.data
new file mode 100644
index 0000000..2e9a669
--- /dev/null
+++ b/pokemontools/vba/keyboard.data
@@ -0,0 +1,501 @@
+A a select
+A B r
+A I l
+A lower-upper-column-1 u
+A J d
+
+B b select
+B A l
+B C r
+B lower-upper-column-2 u
+B K d
+
+C c select
+C D r
+C B l
+C lower-upper-column-3 u
+C L d
+
+D d select
+D E r
+D C l
+D del-upper-column-1 u
+D M d
+
+E e select
+E del-upper-column-2 u
+E N d
+E D l
+E F r
+
+F f select
+F del-upper-column-3 u
+F O d
+F E l
+F G r
+
+G g select
+G end-upper-column-1 u
+G P d
+G F l
+G H r
+
+H h select
+H end-upper-column-2 u
+H Q d
+H G l
+H I r
+
+I i select
+I end-upper-column-3 u
+I R d
+I H l
+I A r
+
+J j select
+J A u
+J S d
+J R l
+J K r
+
+K k select
+K B u
+K T d
+K J l
+K L r
+
+L l select
+L C u
+L U d
+L K l
+L M r
+
+M m select
+M D u
+M V d
+M L l
+M N r
+
+N n select
+N E u
+N W d
+N M l
+N O r
+
+O o select
+O F u
+O X d
+O N l
+O P r
+
+P p select
+P G u
+P Y d
+P O l
+P Q r
+
+Q q select
+Q H u
+Q Z d
+Q P l
+Q R r
+
+R r select
+R I u
+R space-upper-x8-y2 d
+R Q l
+R J r
+
+S s select
+S J u
+S - d
+S space-upper-x8-y2 l
+
+T t select
+T K u
+T ? d
+T S l
+T U r
+
+U u select
+U L u
+U ! d
+U T l
+U V r
+
+V v select
+V M u
+V / d
+V U l
+V W r
+
+W w select
+W N u
+W . d
+W V l
+W X r
+
+X x select
+X O u
+X , d
+X W l
+X Y r
+
+Y y select
+Y P u
+Y space-upper-x6-y3 d
+Y X l
+Y Z r
+
+Z z select
+Z Q u
+Z space-upper-x7-y3 d
+Z Y l
+Z space-upper-x8-y2 r
+
+end-upper-column-1 lower-upper-column-1 r
+end-upper-column-2 lower-upper-column-1 r
+end-upper-column-3 lower-upper-column-1 r
+end-upper-column-1 del-upper-column-1 l
+end-upper-column-2 del-upper-column-1 l
+end-upper-column-3 del-upper-column-1 l
+lower-upper-column-1 end-upper-column-1 l
+lower-upper-column-2 end-upper-column-1 l
+lower-upper-column-3 end-upper-column-1 l
+lower-upper-column-1 del-upper-column-1 r
+lower-upper-column-2 del-upper-column-1 r
+lower-upper-column-3 del-upper-column-1 r
+del-upper-column-1 lower-upper-column-1 l
+del-upper-column-2 lower-upper-column-1 l
+del-upper-column-3 lower-upper-column-1 l
+del-upper-column-1 end-upper-column-1 r
+del-upper-column-2 end-upper-column-1 r
+del-upper-column-3 end-upper-column-1 r
+
+lower-upper-column-1 A d
+lower-upper-column-2 B d
+lower-upper-column-3 C d
+lower-upper-column-1 - u
+lower-upper-column-2 ? u
+lower-upper-column-3 ! u
+
+del-upper-column-1 D d
+del-upper-column-2 E d
+del-upper-column-3 F d
+del-upper-column-1 / u
+del-upper-column-2 . u
+del-upper-column-3 , u
+
+end-upper-column-1 G d
+end-upper-column-2 H d
+end-upper-column-3 I d
+end-upper-column-1 space-upper-x6-y3 u
+end-upper-column-2 space-upper-x7-y3 u
+end-upper-column-3 space-upper-x8-y3 u
+
+space-upper-x8-y2 space-lower-x8-y2 select
+space-upper-x8-y2 R u
+space-upper-x8-y2 space-upper-x8-y3 d
+space-upper-x8-y2 Z l
+space-upper-x8-y2 S r
+
+space-upper-x8-y3 MN select
+space-upper-x8-y3 space-upper-x8-y2 u
+space-upper-x8-y3 end-upper-column-3 d
+space-upper-x8-y3 space-upper-x7-y3 l
+space-upper-x8-y3 - r
+
+space-upper-x7-y3 PK select
+space-upper-x7-y3 Z u
+space-upper-x7-y3 end-upper-column-2 d
+space-upper-x7-y3 space-upper-x6-y3 l
+space-upper-x7-y3 space-upper-x8-y3 r
+
+space-upper-x6-y3 ] select
+space-upper-x6-y3 Y u
+space-upper-x6-y3 end-upper-column-1 d
+space-upper-x6-y3 , l
+space-upper-x6-y3 space-upper-x7-y3 r
+
+end-upper-column-1 end-lower-column-1 select
+end-upper-column-2 end-lower-column-2 select
+end-upper-column-3 end-lower-column-3 select
+lower-upper-column-1 lower-lower-column-1 select
+lower-upper-column-2 lower-lower-column-2 select
+lower-upper-column-3 lower-lower-column-3 select
+del-upper-column-1 del-lower-column-1 select
+del-upper-column-2 del-lower-column-2 select
+del-upper-column-3 del-lower-column-3 select
+
+lower-lower-column-1 × u
+lower-lower-column-2 ( u
+lower-lower-column-3 ) u
+lower-lower-column-1 a d
+lower-lower-column-2 b d
+lower-lower-column-3 c d
+
+end-lower-column-1 ] u
+end-lower-column-2 PK u
+end-lower-column-3 MN u
+end-lower-column-1 g d
+end-lower-column-2 h d
+end-lower-column-3 i d
+
+del-lower-column-1 : u
+del-lower-column-2 ; u
+del-lower-column-3 [ u
+del-lower-column-1 d d
+del-lower-column-2 e d
+del-lower-column-3 f d
+
+- × select
+- S u
+- lower-upper-column-1 d
+- space-upper-x8-y3 l
+- ? r
+
+? ( select
+? T u
+? lower-upper-column-2 d
+? - l
+? ! r
+
+! ) select
+! U u
+! lower-upper-column-3 d
+! ? l
+! / r
+
+/ : select
+/ V u
+/ del-upper-column-1 d
+/ ! l
+/ . r
+
+. ; select
+. W u
+. del-upper-column-2 d
+. / l
+. , r
+
+, [ select
+, X u
+, del-upper-column-3 d
+, . l
+, space-upper-x6-y3 r
+
+× - select
+× s u
+× upper-lower-column-1 d
+× MN l
+× ( r
+
+( ? select
+( t u
+( upper-lower-column-2 d
+( × l
+( ) r
+
+) ! select
+) u u
+) upper-lower-column-3 d
+) ( l
+) : r
+
+: / select
+: v u
+: del-lower-column-1 d
+: ) l
+: ; r
+
+; . select
+; w u
+; del-lower-column-2 d
+; : l
+; [ r
+
+[ , select
+[ x u
+[ del-lower-column-3 d
+[ ; l
+[ ] r
+
+] space-upper-x6-y3 select
+] y u
+] end-lower-column-1 d
+] [ l
+] PK r
+
+PK space-upper-x7-y3 select
+PK z u
+PK end-lower-column-2 d
+PK ] l
+PK MN r
+
+MN space-upper-x8-y3 select
+MN space-lower-x8-y2 u
+MN end-lower-column-3 d
+MN PK l
+MN × r
+
+space-lower-x8-y2 space-upper-x8-y2 select
+space-lower-x8-y2 r u
+space-lower-x8-y2 MN d
+space-lower-x8-y2 z l
+space-lower-x8-y2 s r
+
+a A select
+a upper-lower-column-1 u
+a j d
+a i l
+a b r
+
+b B select
+b upper-lower-column-2 u
+b k d
+b a l
+b c r
+
+c C select
+c upper-lower-column-3 u
+c l d
+c b l
+c d r
+
+d D select
+d del-lower-column-1 u
+d m d
+d c l
+d e r
+
+e E select
+e del-lower-column-2 u
+e n d
+e d l
+e f r
+
+f F select
+f del-lower-column-3 u
+f o d
+f e l
+f g r
+
+g G select
+g end-lower-column-1 u
+g p d
+g f l
+g h r
+
+h H select
+h end-lower-column-2 u
+h q d
+h g l
+h i r
+
+i I select
+i end-lower-column-3 u
+i r d
+i h l
+i a r
+
+j J select
+j a u
+j s d
+j r l
+j k r
+
+k K select
+k b u
+k t d
+k j l
+k l r
+
+l L select
+l c u
+l u d
+l k l
+l m r
+
+m M select
+m d u
+m v d
+m l l
+m n r
+
+n N select
+n e u
+n w d
+n m l
+n o r
+
+o O select
+o f u
+o x d
+o n l
+o p r
+
+p P select
+p g u
+p y d
+p o l
+p q r
+
+q Q select
+q h u
+q z d
+q p l
+q r r
+
+r R select
+r i u
+r space-lower-x8-y2 d
+r q l
+r j r
+
+s S select
+s j u
+s × d
+s space-lower-x8-y2 l
+s t r
+
+t T select
+t k u
+t ( d
+t s l
+t u r
+
+u U select
+u l u
+u ) d
+u t l
+u v r
+
+v V select
+v m u
+v : d
+v u l
+v w r
+
+w W select
+w n u
+w ; d
+w v l
+w x r
+
+x X select
+x o u
+x [ d
+x w l
+x y r
+
+y Y select
+y p u
+y ] d
+y x l
+y z r
+
+z Z select
+z q u
+z PK d
+z y l
+z space-lower-x8-y2 r
diff --git a/pokemontools/vba/vba_keyboard.py b/pokemontools/vba/vba_keyboard.py
index 7d57953..c83da65 100644
--- a/pokemontools/vba/vba_keyboard.py
+++ b/pokemontools/vba/vba_keyboard.py
@@ -9,508 +9,8 @@ import networkx
graph = networkx.DiGraph()
-graph_data = """
-A a select
-A B r
-A I l
-A lower-upper-column-1 u
-A J d
-
-B b select
-B A l
-B C r
-B lower-upper-column-2 u
-B K d
-
-C c select
-C D r
-C B l
-C lower-upper-column-3 u
-C L d
-
-D d select
-D E r
-D C l
-D del-upper-column-1 u
-D M d
-
-E e select
-E del-upper-column-2 u
-E N d
-E D l
-E F r
-
-F f select
-F del-upper-column-3 u
-F O d
-F E l
-F G r
-
-G g select
-G end-upper-column-1 u
-G P d
-G F l
-G H r
-
-H h select
-H end-upper-column-2 u
-H Q d
-H G l
-H I r
-
-I i select
-I end-upper-column-3 u
-I R d
-I H l
-I A r
-
-J j select
-J A u
-J S d
-J R l
-J K r
-
-K k select
-K B u
-K T d
-K J l
-K L r
-
-L l select
-L C u
-L U d
-L K l
-L M r
-
-M m select
-M D u
-M V d
-M L l
-M N r
-
-N n select
-N E u
-N W d
-N M l
-N O r
-
-O o select
-O F u
-O X d
-O N l
-O P r
-
-P p select
-P G u
-P Y d
-P O l
-P Q r
-
-Q q select
-Q H u
-Q Z d
-Q P l
-Q R r
-
-R r select
-R I u
-R space-upper-x8-y2 d
-R Q l
-R J r
-
-S s select
-S J u
-S - d
-S space-upper-x8-y2 l
-
-T t select
-T K u
-T ? d
-T S l
-T U r
-
-U u select
-U L u
-U ! d
-U T l
-U V r
-
-V v select
-V M u
-V / d
-V U l
-V W r
-
-W w select
-W N u
-W . d
-W V l
-W X r
-
-X x select
-X O u
-X , d
-X W l
-X Y r
-
-Y y select
-Y P u
-Y space-upper-x6-y3 d
-Y X l
-Y Z r
-
-Z z select
-Z Q u
-Z space-upper-x7-y3 d
-Z Y l
-Z space-upper-x8-y2 r
-
-end-upper-column-1 lower-upper-column-1 r
-end-upper-column-2 lower-upper-column-1 r
-end-upper-column-3 lower-upper-column-1 r
-end-upper-column-1 del-upper-column-1 l
-end-upper-column-2 del-upper-column-1 l
-end-upper-column-3 del-upper-column-1 l
-lower-upper-column-1 end-upper-column-1 l
-lower-upper-column-2 end-upper-column-1 l
-lower-upper-column-3 end-upper-column-1 l
-lower-upper-column-1 del-upper-column-1 r
-lower-upper-column-2 del-upper-column-1 r
-lower-upper-column-3 del-upper-column-1 r
-del-upper-column-1 lower-upper-column-1 l
-del-upper-column-2 lower-upper-column-1 l
-del-upper-column-3 lower-upper-column-1 l
-del-upper-column-1 end-upper-column-1 r
-del-upper-column-2 end-upper-column-1 r
-del-upper-column-3 end-upper-column-1 r
-
-lower-upper-column-1 A d
-lower-upper-column-2 B d
-lower-upper-column-3 C d
-lower-upper-column-1 - u
-lower-upper-column-2 ? u
-lower-upper-column-3 ! u
-
-del-upper-column-1 D d
-del-upper-column-2 E d
-del-upper-column-3 F d
-del-upper-column-1 / u
-del-upper-column-2 . u
-del-upper-column-3 , u
-
-end-upper-column-1 G d
-end-upper-column-2 H d
-end-upper-column-3 I d
-end-upper-column-1 space-upper-x6-y3 u
-end-upper-column-2 space-upper-x7-y3 u
-end-upper-column-3 space-upper-x8-y3 u
-
-space-upper-x8-y2 space-lower-x8-y2 select
-space-upper-x8-y2 R u
-space-upper-x8-y2 space-upper-x8-y3 d
-space-upper-x8-y2 Z l
-space-upper-x8-y2 S r
-
-space-upper-x8-y3 MN select
-space-upper-x8-y3 space-upper-x8-y2 u
-space-upper-x8-y3 end-upper-column-3 d
-space-upper-x8-y3 space-upper-x7-y3 l
-space-upper-x8-y3 - r
-
-space-upper-x7-y3 PK select
-space-upper-x7-y3 Z u
-space-upper-x7-y3 end-upper-column-2 d
-space-upper-x7-y3 space-upper-x6-y3 l
-space-upper-x7-y3 space-upper-x8-y3 r
-
-space-upper-x6-y3 ] select
-space-upper-x6-y3 Y u
-space-upper-x6-y3 end-upper-column-1 d
-space-upper-x6-y3 , l
-space-upper-x6-y3 space-upper-x7-y3 r
-
-end-upper-column-1 end-lower-column-1 select
-end-upper-column-2 end-lower-column-2 select
-end-upper-column-3 end-lower-column-3 select
-lower-upper-column-1 lower-lower-column-1 select
-lower-upper-column-2 lower-lower-column-2 select
-lower-upper-column-3 lower-lower-column-3 select
-del-upper-column-1 del-lower-column-1 select
-del-upper-column-2 del-lower-column-2 select
-del-upper-column-3 del-lower-column-3 select
-
-lower-lower-column-1 × u
-lower-lower-column-2 ( u
-lower-lower-column-3 ) u
-lower-lower-column-1 a d
-lower-lower-column-2 b d
-lower-lower-column-3 c d
-
-end-lower-column-1 ] u
-end-lower-column-2 PK u
-end-lower-column-3 MN u
-end-lower-column-1 g d
-end-lower-column-2 h d
-end-lower-column-3 i d
-
-del-lower-column-1 : u
-del-lower-column-2 ; u
-del-lower-column-3 [ u
-del-lower-column-1 d d
-del-lower-column-2 e d
-del-lower-column-3 f d
-
-- × select
-- S u
-- lower-upper-column-1 d
-- space-upper-x8-y3 l
-- ? r
-
-? ( select
-? T u
-? lower-upper-column-2 d
-? - l
-? ! r
-
-! ) select
-! U u
-! lower-upper-column-3 d
-! ? l
-! / r
-
-/ : select
-/ V u
-/ del-upper-column-1 d
-/ ! l
-/ . r
-
-. ; select
-. W u
-. del-upper-column-2 d
-. / l
-. , r
-
-, [ select
-, X u
-, del-upper-column-3 d
-, . l
-, space-upper-x6-y3 r
-
-× - select
-× s u
-× upper-lower-column-1 d
-× MN l
-× ( r
-
-( ? select
-( t u
-( upper-lower-column-2 d
-( × l
-( ) r
-
-) ! select
-) u u
-) upper-lower-column-3 d
-) ( l
-) : r
-
-: / select
-: v u
-: del-lower-column-1 d
-: ) l
-: ; r
-
-; . select
-; w u
-; del-lower-column-2 d
-; : l
-; [ r
-
-[ , select
-[ x u
-[ del-lower-column-3 d
-[ ; l
-[ ] r
-
-] space-upper-x6-y3 select
-] y u
-] end-lower-column-1 d
-] [ l
-] PK r
-
-PK space-upper-x7-y3 select
-PK z u
-PK end-lower-column-2 d
-PK ] l
-PK MN r
-
-MN space-upper-x8-y3 select
-MN space-lower-x8-y2 u
-MN end-lower-column-3 d
-MN PK l
-MN × r
-
-space-lower-x8-y2 space-upper-x8-y2 select
-space-lower-x8-y2 r u
-space-lower-x8-y2 MN d
-space-lower-x8-y2 z l
-space-lower-x8-y2 s r
-
-a A select
-a upper-lower-column-1 u
-a j d
-a i l
-a b r
-
-b B select
-b upper-lower-column-2 u
-b k d
-b a l
-b c r
-
-c C select
-c upper-lower-column-3 u
-c l d
-c b l
-c d r
-
-d D select
-d del-lower-column-1 u
-d m d
-d c l
-d e r
-
-e E select
-e del-lower-column-2 u
-e n d
-e d l
-e f r
-
-f F select
-f del-lower-column-3 u
-f o d
-f e l
-f g r
-
-g G select
-g end-lower-column-1 u
-g p d
-g f l
-g h r
-
-h H select
-h end-lower-column-2 u
-h q d
-h g l
-h i r
-
-i I select
-i end-lower-column-3 u
-i r d
-i h l
-i a r
-
-j J select
-j a u
-j s d
-j r l
-j k r
-
-k K select
-k b u
-k t d
-k j l
-k l r
-
-l L select
-l c u
-l u d
-l k l
-l m r
-
-m M select
-m d u
-m v d
-m l l
-m n r
-
-n N select
-n e u
-n w d
-n m l
-n o r
-
-o O select
-o f u
-o x d
-o n l
-o p r
-
-p P select
-p g u
-p y d
-p o l
-p q r
-
-q Q select
-q h u
-q z d
-q p l
-q r r
-
-r R select
-r i u
-r space-lower-x8-y2 d
-r q l
-r j r
-
-s S select
-s j u
-s × d
-s space-lower-x8-y2 l
-s t r
-
-t T select
-t k u
-t ( d
-t s l
-t u r
-
-u U select
-u l u
-u ) d
-u t l
-u v r
-
-v V select
-v m u
-v : d
-v u l
-v w r
-
-w W select
-w n u
-w ; d
-w v l
-w x r
-
-x X select
-x o u
-x [ d
-x w l
-x y r
-
-y Y select
-y p u
-y ] d
-y x l
-y z r
-
-z Z select
-z q u
-z PK d
-z y l
-z space-lower-x8-y2 r"""
+# load graph data from file
+graph_data = open("keyboard.data", "r").read()
for line in graph_data.split("\n"):
if line == "":