443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
514 |
515 |
516 |
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 |
542 |
543 |
544 |
545 |
546 |
547 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # 帮助你快速学习双拼 -- 微软双拼
3 |
4 | 一个萌妹子风格的脚本文件,参考新华字典的设定,每次随机出现出合理的拼音组合,根据输出的拼音组合打出对应的双拼,空格隔开,回车提交。
5 |
6 | 
7 |
8 |
9 |
10 | 步骤:
11 |
12 | - 如果没有安装ruby 的情况下需要先[安装ruby](https://ruby-china.org/wiki/install_ruby_guide)
13 | - 在 `shuang_pin_tutorial.rb`同级目录下 执行下面命令即可
14 | ````
15 | ruby shuang_pin_tutorial.rb
16 | ````
17 |
18 |
--------------------------------------------------------------------------------
/img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xwSurfer/shuang_pin_tutorial/3fe5c76ce8c263b81b41006c1ae1abda35d836c4/img1.png
--------------------------------------------------------------------------------
/shuang_pin_tutorial.rb:
--------------------------------------------------------------------------------
1 | COUNT = 5
2 | TIP_ENABLE = true
3 | SEPARATOR='|||'
4 |
5 | # 声母列表 23 个 + 一个特殊的声母 o 用来输入单音节的韵母字
6 | SHENG_MU = ['b', 'p', 'm', 'f', 'd', 't', 'n', 'l', 'g', 'k', 'h', 'j', 'q',
7 | 'x', 'zh', 'ch', 'sh', 'z', 'c', 's ', ' y', 'w', 'r', 'o']
8 | # 韵母列表 24 个
9 | # yun_mu=['a', 'o', 'e', 'i', 'u', 'v', 'ai ', 'ei', ' ui ', 'ao', ' ou',
10 | # ' iu ', 'ie ', 've', ' er', ' an ', 'en ', 'in', ' un ', 'vn ', 'ang ', 'eng', ' ing ', 'ong']
11 |
12 | # 声母对应合法的韵母组合
13 | LEGAL_COMPOSITE= {
14 | :B => %w(a ai an ang ao ei en eng i ian iao ie in ing o u),
15 | :C => %w(a ai an ang ao e en eng i ong ou u uan ui un uo),
16 | :CH => %w(a ai an ang ao e en eng i ong ou u ua uai uan uang ui un uo),
17 | :D => %w(a ai an ang ao e en ei eng i ia ian iao ie ing iu ong ou u uan ui un uo),
18 | :F => %w(a an ang ei en eng o ou u),
19 | :G => %w(a ai an ang ao e ei en eng ong ou u ua uai uan uang ui un uo),
20 | :H => %w(a ai an ang ao e ei en eng ong ou u ua uai uan uang ui un uo),
21 | :J => %w(i ia ian iang iao ie in ing iong iu u uan ue un),
22 | :K => %w(a ai an ang ao e en eng ong ou u ua uai uan uang ui un uo),
23 | :L => %w(a ai an ang ao e ei eng i ia ian iang iao ie in ing iu ong ou u uan ue un uo),
24 | :M => %w( a ai an ang ao e ei en eng i ian iao ie in ing iu o ou u),
25 | :N => %w(a ai an ang ao e ei en eng g i ian iang iao ie in ing iu ong ou u uan uo un),
26 | :P => %w(a ai an ang ao ei en eng i ian iao ie in ing o ou u),
27 | :Q => %w(i ia ian iang iao ie in ing iong iu u uan ue un),
28 | :R => %w(an ang ao e en eng i ong ou u uan ui un uo),
29 | :S => %w(a ai an ang ao e en eng i ong ou u uan ui un uo),
30 | :SH => %w(a ai an ang ao e ei en eng i ou u ua uai uan uang ui un uo),
31 | :T => %w(a ai an ang ao e eng i ian iao ie ing ong ou u uan ui un uo),
32 | :W => %w(a ai an ang ei en eng o u),
33 | :X => %w(i ia ian iang iao ie in ing iong iu u uan ue un),
34 | :Y => %w(a an ang ao e i in ing o ong ou u uan ue un),
35 | :Z => %w(a ai an ang ao e ei en eng i ong ou u uan ui un uo),
36 | :ZH => %w(a ai an ang ao e ei en eng i ong ou u ua uai uan uang ui un uo),
37 | :O => %w(a o e an ao ai ei en eng er ang ou)
38 | }
39 |
40 |
41 | # 每个按键对应的双拼表
42 | VALID_COMPOSITE={
43 | :Q => %w(q iu),
44 | :W => %w(w ia ua),
45 | :E => %w(e),
46 | :R => %w(r uan er),
47 | :T => %w(t ue),
48 | :Y => %w(y uai v),
49 | :U => %w(u sh),
50 | :I => %w(i ch),
51 | :O => %w(o uo),
52 | :P => %w(p un),
53 | :A => %w(a),
54 | :S => %w(s ong iong),
55 | :D => %w(d uang iang),
56 | :F => %w(f en),
57 | :G => %w(g eng),
58 | :H => %w(h ang),
59 | :J => %w(j an),
60 | :K => %w(k ao),
61 | :L => %w(l ai),
62 | ';' => %w(ing),
63 | :Z => %w(z ei),
64 | :X => %w(x ie),
65 | :C => %w(c iao),
66 | :V => %w(zh ve ui),
67 | :B => %w(b ou),
68 | :N => %w(n in),
69 | :M => %w(m ian),
70 | }
71 |
72 |
73 | def rand_words(num = COUNT)
74 | result = ''
75 | num.times do
76 | sheng =SHENG_MU.sample
77 | yun = LEGAL_COMPOSITE[sheng.strip.upcase.to_sym].sample
78 | if sheng =='o'
79 | result<<"#{yun.strip} "
80 | else
81 | result<<"#{sheng.strip}#{yun.strip} "
82 | end
83 | end
84 | result
85 | end
86 |
87 |
88 | puts "请输入下面对应双拼规则 使用空格隔开, 退出输入 exit \n"
89 |
90 |
91 | def judge(incorrect, input_answer, result)
92 | if incorrect.length == 0
93 | puts '恭喜你全对耶!'
94 | else
95 | incorrect.each { |key, value|
96 | puts "#{key} 错误 => #{value}"
97 | }
98 | end
99 |
100 | if input_answer.split.length < result.split(SEPARATOR)[0].split.length
101 | puts '你好像有几个没有写完哦!'
102 | end
103 | end
104 |
105 | def get(word, right)
106 | VALID_COMPOSITE.each { |key, value|
107 | if value.include? word
108 | right<