hzk12.tin 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #nop vim: set filetype=tt:;
  2. /*
  3. 本文件属于 PaoTin++ 的一部分
  4. ===========
  5. PaoTin++ © 2020~2024 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  6. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  7. ===========
  8. */
  9. #var lib_hzk12[META] {
  10. {NAME} {点阵字库}
  11. {DESC} {点阵字库处理,提供 API}
  12. {AUTHOR} {担子炮}
  13. {NOTE} {本文件属于 PaoTin++ 的一部分}
  14. };
  15. #func {lib_hzk12.Init} {
  16. #return {true};
  17. };
  18. #alias {hzk12.Beautify} {
  19. #local word {%1};
  20. #local lines {};
  21. #local line {0};
  22. #loop 1 12 {line} {
  23. #replace word {|%+16*|%*} {
  24. {left} {&1}
  25. {right} {&2}
  26. };
  27. #local word {$word};
  28. #local line {$word[left]};
  29. #replace line {%+1S} {1};
  30. #replace line {%+1s} {0};
  31. #list lines add {{$line}};
  32. #local word {$word[right]};
  33. };
  34. hzk12.draw-block {$lines};
  35. };
  36. #alias {hzk12.draw-block} {
  37. #local lines {%1};
  38. #local code {};
  39. #local n {};
  40. #loop {1} {6} {n} {
  41. #local first {@math.Eval{$n * 2 - 1}};
  42. #local first {$lines[$first]};
  43. #list first {tokenize} {$first};
  44. #local second {@math.Eval{$n * 2}};
  45. #local second {$lines[$second]};
  46. #list second {tokenize} {$second};
  47. #local i {};
  48. #local line {};
  49. #loop {1} {16} {i} {
  50. #local point {$first[$i]$second[$i]};
  51. #switch {"$point"} {
  52. #case {"11"} {#cat line {█}};
  53. #case {"00"} {#cat line { }};
  54. #case {"10"} {#cat line {▀}};
  55. #case {"01"} {#cat line {▄}};
  56. };
  57. };
  58. #echo {%s} {$line};
  59. };
  60. };
  61. #alias {hzk12.test} {
  62. #local word {
  63. | * * |
  64. | * * * |
  65. | * ******* |
  66. |* * ** * |
  67. |* ** **** * |
  68. |* * * * * |
  69. |* * * * * |
  70. | * **** * |
  71. | * * * ** |
  72. | * ** * |
  73. |* * * |
  74. | ****** |
  75. };
  76. hzk12.Beautify {$word};
  77. };