bioshogi 0.0.14 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (644) hide show
  1. checksums.yaml +4 -4
  2. data/.dumbjump +4 -0
  3. data/.gitignore +2 -0
  4. data/.ruby-version +2 -1
  5. data/A/342/206/222B/342/206/222C/345/233/262/343/201/204.txt +1 -0
  6. data/A/342/206/222B/342/206/222C/346/210/246/346/263/225.txt +9 -4
  7. data/Gemfile.lock +57 -47
  8. data/README.org +3 -3
  9. data/bioshogi.gemspec +3 -1
  10. data/credit.org +0 -1
  11. data/lib/bioshogi/ai/brain.rb +6 -6
  12. data/lib/bioshogi/analysis/analyzer.rb +67 -9
  13. data/lib/bioshogi/analysis/analyzer_mod.rb +5 -12
  14. data/lib/bioshogi/analysis/attack_info.rb +232 -227
  15. data/lib/bioshogi/analysis/{tech_accessor.rb → basic_accessor.rb} +4 -4
  16. data/lib/bioshogi/analysis/board_piece_counts_methods.rb +53 -0
  17. data/lib/bioshogi/analysis/board_piller_methods.rb +10 -32
  18. data/lib/bioshogi/analysis/core_soldier_place_methods.rb +58 -0
  19. data/lib/bioshogi/analysis/defense_info.rb +141 -132
  20. data/lib/bioshogi/analysis/file_normalizer.rb +1 -1
  21. data/lib/bioshogi/analysis/frequency.rb +372 -311
  22. data/lib/bioshogi/analysis/note_info.rb +26 -25
  23. data/lib/bioshogi/analysis/player_methods.rb +28 -0
  24. data/lib/bioshogi/analysis/rocket_analyzer.rb +45 -58
  25. data/lib/bioshogi/analysis/shape_info.rb +113 -25
  26. data/lib/bioshogi/analysis/style_accessor.rb +22 -19
  27. data/lib/bioshogi/analysis/tactic_hit_turn_table.rb +27 -4
  28. data/lib/bioshogi/analysis/tactic_hit_turn_table_generator.rb +15 -14
  29. data/lib/bioshogi/analysis/tactic_info.rb +19 -5
  30. data/lib/bioshogi/analysis/technique_info.rb +26 -14
  31. data/lib/bioshogi/analysis/technique_verify_info.rb +800 -0
  32. data/lib/bioshogi/analysis//345/202/231/350/200/203//345/205/250/351/247/222.kif +27 -0
  33. data/lib/bioshogi/analysis//345/202/231/350/200/203//345/220/212/343/202/213/343/201/227/346/241/202.kif +22 -0
  34. data/lib/bioshogi/analysis//345/202/231/350/200/203//345/220/215/344/272/272/343/201/253/345/256/232/350/267/241/343/201/252/343/201/227.kif +4 -2
  35. data/lib/bioshogi/analysis//345/202/231/350/200/203//345/244/247/351/247/222/343/202/263/343/203/263/343/203/227/343/203/252/343/203/274/343/203/210.kif +7 -2
  36. data/lib/bioshogi/analysis//345/202/231/350/200/203//345/244/247/351/247/222/345/205/250/343/203/226/343/203/203/343/203/201.kif +7 -0
  37. data/lib/bioshogi/analysis//345/202/231/350/200/203//345/257/276/347/251/264/347/206/212.kif +3 -2
  38. data/lib/bioshogi/analysis//345/202/231/350/200/203//346/200/245/346/210/246.kif +1 -1
  39. data/lib/bioshogi/analysis//345/202/231/350/200/203//346/214/201/344/271/205/346/210/246.kif +6 -3
  40. data/lib/bioshogi/analysis//345/202/231/350/200/203//347/216/211/345/215/230/351/250/216.kif +27 -0
  41. data/lib/bioshogi/analysis//345/202/231/350/200/203//347/233/270/347/251/264/347/206/212.kif +2 -0
  42. data/lib/bioshogi/analysis//345/202/231/350/200/203//347/251/264/347/206/212.kif +3 -2
  43. data/lib/bioshogi/analysis//345/202/231/350/200/203//347/251/264/347/206/212/343/201/256/345/247/277/347/204/274/343/201/215.kif +3 -2
  44. data/lib/bioshogi/analysis//345/202/231/350/200/203//350/203/214/346/260/264/343/201/256/351/231/243.kif +10 -3
  45. data/lib/bioshogi/analysis//345/202/231/350/200/203//350/247/222/344/270/215/346/210/220.kif +2 -2
  46. data/lib/bioshogi/analysis//345/202/231/350/200/203//351/203/275/350/251/260/343/202/201.kif +5 -1
  47. data/lib/bioshogi/analysis//345/202/231/350/200/203//351/225/267/346/211/213/346/225/260.kif +13 -3
  48. data/lib/bioshogi/analysis//345/202/231/350/200/203//351/233/252/351/232/240/350/251/260/343/202/201.kif +23 -0
  49. data/lib/bioshogi/analysis//345/202/231/350/200/203//351/247/222/346/237/261.kif +14 -2
  50. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/201/202/343/201/232/343/201/276/343/202/204/345/233/262/343/201/204.kif +1 -1
  51. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/201/204/343/201/241/343/201/224/345/233/262/343/201/204.kif +1 -1
  52. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/201/213/343/202/223/343/201/264/343/202/207/343/201/206/345/233/262/343/201/204.kif +5 -2
  53. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/201/270/343/201/223/343/201/277/347/237/242/345/200/211.kif +1 -1
  54. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/202/242/343/203/222/343/203/253/345/233/262/343/201/204.kif +5 -1
  55. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/202/252/343/203/252/343/202/270/343/203/212/343/203/253/351/233/201/346/234/250.kif +8 -3
  56. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/202/252/343/203/274/343/203/253/343/203/211/351/233/201/346/234/250.kif +3 -1
  57. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/202/253/343/202/256/345/233/262/343/201/204.kif +17 -2
  58. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/202/253/343/202/277/345/233/262/343/201/204.kif +5 -3
  59. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/202/273/343/203/241/343/203/263/343/203/210/345/233/262/343/201/204.kif +6 -2
  60. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/203/200/343/202/244/343/203/244/343/203/242/343/203/263/343/203/211/347/276/216/346/277/203.kif +2 -0
  61. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/203/204/343/203/216/351/212/200/345/233/262/343/201/204.kif +1 -1
  62. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/203/204/343/203/216/351/212/200/351/233/201/346/234/250.kif +3 -2
  63. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/203/234/343/203/212/343/203/263/343/202/266/345/233/262/343/201/204.kif +1 -2
  64. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/203/237/343/203/254/343/203/213/343/202/242/343/203/240/345/233/262/343/201/204.kif +13 -3
  65. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/203/242/343/203/216/343/203/254/343/203/274/343/203/253/345/233/262/343/201/204.kif +1 -1
  66. data/lib/bioshogi/analysis//345/233/262/343/201/204//344/270/255/344/275/217/343/201/276/343/201/204.kif +3 -0
  67. data/lib/bioshogi/analysis//345/233/262/343/201/204//344/270/262/343/202/253/343/203/204/345/233/262/343/201/204.kif +1 -1
  68. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/217/263/347/237/242/345/200/211.kif +1 -1
  69. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/233/233/346/236/232/347/251/264/347/206/212.kif +1 -1
  70. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/233/233/346/236/232/347/276/216/346/277/203.kif +1 -1
  71. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/233/233/346/236/232/351/212/200/345/206/240.kif +9 -4
  72. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/233/233/346/256/265/347/253/257/347/216/211.kif +7 -4
  73. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/233/233/350/247/222/347/237/242/345/200/211.kif +1 -1
  74. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/234/237/345/261/205/347/237/242/345/200/211.kif +1 -1
  75. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/235/212/344/270/273/347/276/216/346/277/203.kif +1 -1
  76. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/244/247/345/261/261/347/276/216/346/277/203.kif +1 -1
  77. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/244/247/351/232/205/345/233/262/343/201/204.kif +1 -1
  78. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/244/251/345/256/210/351/226/243/347/276/216/346/277/203.kif +1 -1
  79. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/244/251/351/207/216/347/237/242/345/200/211.kif +1 -1
  80. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/257/214/345/243/253/350/246/213/347/237/242/345/200/211.kif +7 -3
  81. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/261/205/347/216/211.kif +2 -1
  82. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/261/205/351/243/233/350/273/212/347/251/264/347/206/212.kif +1 -1
  83. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/261/205/351/243/233/350/273/212/351/207/221/345/206/240.kif +10 -3
  84. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/261/205/351/243/233/350/273/212/351/207/221/347/204/241/345/217/214.kif +3 -1
  85. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/261/205/351/243/233/350/273/212/351/207/221/347/276/216/346/277/203.kif +1 -1
  86. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/261/205/351/243/233/350/273/212/351/212/200/345/206/240.kif +3 -1
  87. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/202/252/345/275/242/347/237/242/345/200/211.kif +1 -1
  88. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/214/257/343/202/212/351/243/233/350/273/212/343/203/223/343/203/203/343/202/2604.kif +6 -2
  89. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/214/257/343/202/212/351/243/233/350/273/212/343/203/237/343/203/254/343/203/213/343/202/242/343/203/240.kif +6 -2
  90. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/214/257/343/202/212/351/243/233/350/273/212/344/270/262/343/202/253/343/203/204/345/233/262/343/201/204.kif +1 -1
  91. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/214/257/343/202/212/351/243/233/350/273/212/345/233/233/346/236/232/347/276/216/346/277/203.kif +2 -2
  92. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/214/257/343/202/212/351/243/233/350/273/212/345/244/251/345/256/210/351/226/243/347/276/216/346/277/203.kif +2 -0
  93. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/214/257/343/202/212/351/243/233/350/273/212/347/253/257/347/216/211/351/212/200/345/206/240.kif +1 -1
  94. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/234/250/346/235/221/347/276/216/346/277/203.kif +1 -1
  95. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/235/276/345/260/276/346/265/201/347/251/264/347/206/212.kif +2 -0
  96. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/241/220/345/261/261/346/265/201/344/270/255/345/216/237/345/233/262/343/201/204.kif +1 -1
  97. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/265/201/343/202/214/347/237/242/345/200/211.kif +1 -1
  98. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/265/201/347/267/232/347/237/242/345/200/211.kif +1 -1
  99. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/204/241/350/262/254/344/273/273/347/237/242/345/200/211.kif +1 -1
  100. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/211/207/343/203/204/343/203/216/351/212/200/345/233/262/343/201/204.kif +1 -1
  101. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/211/207/347/251/264/347/206/212.kif +1 -1
  102. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/237/242/345/200/211/346/227/251/345/233/262/343/201/204.kif +1 -1
  103. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/237/242/345/200/211/347/251/264/347/206/212.kif +1 -1
  104. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/253/257/347/216/211/351/212/200/345/206/240.kif +2 -0
  105. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/256/261/345/205/245/343/202/212/345/250/230.kif +4 -2
  106. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/264/231/347/251/264/347/206/212.kif +4 -2
  107. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/267/217/347/237/242/345/200/211.kif +8 -3
  108. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/276/216/346/277/203/347/206/212/345/233/262/343/201/204.kif +1 -1
  109. data/lib/bioshogi/analysis//345/233/262/343/201/204//350/217/261/347/237/242/345/200/211.kif +1 -1
  110. data/lib/bioshogi/analysis//345/233/262/343/201/204//350/243/217/343/202/242/343/203/222/343/203/253/345/233/262/343/201/204.kif +1 -1
  111. data/lib/bioshogi/analysis//345/233/262/343/201/204//350/243/276/345/233/272/343/202/201.kif +3 -1
  112. data/lib/bioshogi/analysis//345/233/262/343/201/204//350/247/222/347/237/242/345/200/211.kif +1 -1
  113. data/lib/bioshogi/analysis//345/233/262/343/201/204//350/261/206/350/205/220/347/237/242/345/200/211.kif +1 -1
  114. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/200/243/347/233/237/347/276/216/346/277/203.kif +1 -1
  115. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/345/244/232/344/274/235.kif +1 -1
  116. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/347/204/241/345/217/214.kif +3 -2
  117. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/347/233/276/345/233/262/343/201/204.kif +3 -1
  118. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/347/276/216/346/277/203.kif +3 -0
  119. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/351/226/200/347/237/242/345/200/211.kif +1 -1
  120. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/212/200/345/206/240.kif +2 -2
  121. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/212/200/345/206/240/347/251/264/347/206/212.kif +3 -1
  122. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/212/200/345/244/232/344/274/235.kif +8 -1
  123. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/212/200/347/253/213/343/201/241/347/237/242/345/200/211.kif +2 -2
  124. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/212/200/347/276/216/346/277/203.kif +2 -2
  125. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/233/242/343/202/214/351/207/221/347/204/241/345/217/214.kif +1 -1
  126. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/253/230/347/237/242/345/200/211.kif +1 -1
  127. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/253/230/347/276/216/346/277/203/345/233/262/343/201/204.kif +1 -1
  128. data/lib/bioshogi/analysis//346/210/246/346/263/225/2/346/211/213/347/233/256/342/226/2633/343/203/213/351/243/233/346/210/246/346/263/225.kif +5 -1
  129. data/lib/bioshogi/analysis//346/210/246/346/263/225/2/346/211/213/347/233/256/342/226/2633/344/272/214/351/212/200/343/202/267/343/202/271/343/203/206/343/203/240.kif +1 -1
  130. data/lib/bioshogi/analysis//346/210/246/346/263/225/2/346/211/213/347/233/256/342/226/2636/344/272/214/351/212/200/346/210/246/346/263/225.kif +1 -1
  131. data/lib/bioshogi/analysis//346/210/246/346/263/225/5/346/211/213/347/210/206/345/274/276.kif +5 -1
  132. data/lib/bioshogi/analysis//346/210/246/346/263/225/5/347/255/213/344/275/215/345/217/226/343/202/212.kif +2 -2
  133. data/lib/bioshogi/analysis//346/210/246/346/263/225/GAVA/350/247/222.kif +1 -1
  134. data/lib/bioshogi/analysis//346/210/246/346/263/225/U/343/202/277/343/203/274/343/203/263/351/243/233/350/273/212.kif +11 -3
  135. data/lib/bioshogi/analysis//346/210/246/346/263/225/xaby/350/247/222/346/210/246/346/263/225.kif +1 -1
  136. data/lib/bioshogi/analysis//346/210/246/346/263/225//342/226/2624/344/272/224/346/255/251/346/227/251/344/273/225/346/216/233/343/201/221.kif +2 -0
  137. data/lib/bioshogi/analysis//346/210/246/346/263/225//342/226/2624/345/205/255/351/212/200/345/217/263/346/200/245/346/210/246.kif +1 -1
  138. data/lib/bioshogi/analysis//346/210/246/346/263/225//342/226/2625/344/270/203/351/207/221/346/210/246/346/263/225.kif +7 -3
  139. data/lib/bioshogi/analysis//346/210/246/346/263/225//342/226/2625/344/272/224/351/276/215/344/270/255/351/243/233/350/273/212.kif +3 -1
  140. data/lib/bioshogi/analysis//346/210/246/346/263/225//342/226/2633/344/270/211/346/241/202/346/210/246/346/263/225.kif +2 -2
  141. data/lib/bioshogi/analysis//346/210/246/346/263/225//342/226/2633/344/270/211/350/247/222/345/236/213/347/251/272/344/270/255/346/210/246/346/263/225.kif +3 -2
  142. data/lib/bioshogi/analysis//346/210/246/346/263/225//342/226/2633/344/270/211/351/207/221/345/236/213/346/227/251/347/271/260/343/202/212/351/212/200.kif +1 -1
  143. data/lib/bioshogi/analysis//346/210/246/346/263/225//342/226/2633/344/270/211/351/243/233/346/210/246/346/263/225.kif +9 -3
  144. data/lib/bioshogi/analysis//346/210/246/346/263/225//342/226/2634/344/272/224/350/247/222/346/210/246/346/263/225.kif +4 -2
  145. data/lib/bioshogi/analysis//346/210/246/346/263/225//342/226/2637/344/272/214/351/243/233/344/272/234/346/200/245/346/210/246.kif +3 -2
  146. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/201/206/343/201/243/343/201/213/343/202/212/344/270/211/351/226/223/351/243/233/350/273/212.kif +1 -1
  147. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/201/215/357/275/215/343/201/215/357/275/215/351/207/221.kif +1 -1
  148. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/201/257/343/201/217/345/274/217/345/233/233/351/226/223/351/243/233/350/273/212.kif +10 -2
  149. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/201/270/343/201/252/343/201/241/343/202/207/343/201/223/346/200/245/346/210/246.kif +3 -2
  150. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/204/343/201/260/343/203/234/343/203/274/343/202/272/346/265/201.kif +3 -0
  151. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/242/343/203/222/343/203/253/346/210/246/346/263/225.kif +5 -1
  152. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/250/343/203/253/343/203/242/346/200/245/346/210/246.kif +15 -2
  153. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/252/343/202/266/343/203/257/343/202/267/343/202/271/343/203/206/343/203/240.kif +4 -2
  154. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/253/343/203/213/343/202/253/343/203/213/351/207/221.kif +1 -1
  155. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/253/343/203/213/343/202/253/343/203/213/351/212/200.kif +1 -1
  156. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/263/343/203/274/343/203/244/343/203/263/346/265/201/344/270/211/351/226/223/351/243/233/350/273/212.kif +9 -3
  157. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/264/343/202/255/343/202/262/343/203/263/344/270/255/351/243/233/350/273/212.kif +4 -2
  158. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/264/343/203/252/343/202/264/343/203/252/351/207/221.kif +5 -1
  159. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/264/343/203/252/343/203/251/343/201/256/345/217/263/346/211/213.kif +6 -1
  160. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/264/343/203/252/351/201/225/343/201/204/350/247/222.kif +27 -0
  161. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/267/343/203/247/343/203/274/343/203/200/343/203/263/343/202/252/343/203/252/343/202/270/343/203/212/343/203/253.kif +3 -1
  162. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/202/267/343/203/247/343/203/274/343/203/200/343/203/263/343/202/267/343/202/271/343/203/206/343/203/240.kif +10 -1
  163. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/204/343/203/216/351/212/200/344/270/255/351/243/233/350/273/212.kif +7 -3
  164. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/204/343/203/216/351/212/200/345/236/213/345/217/263/347/216/211.kif +7 -2
  165. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/210/343/203/236/343/203/233/343/203/274/343/202/257.kif +3 -2
  166. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/215/343/202/263/345/274/217/343/202/277/343/203/206/346/255/251/345/217/226/343/202/212.kif +1 -1
  167. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/216/343/203/274/343/203/236/343/203/253/344/270/211/351/226/223/351/243/233/350/273/212.kif +6 -2
  168. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/216/343/203/274/343/203/236/343/203/253/345/233/233/351/226/223/351/243/233/350/273/212.kif +1 -1
  169. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/222/343/203/251/343/203/241/346/210/246/346/263/225.kif +3 -1
  170. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/235/343/203/263/343/203/235/343/203/263/346/241/202.kif +4 -2
  171. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/240/343/203/252/343/203/244/343/203/252/346/227/251/347/237/263/347/224/260.kif +18 -4
  172. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/241/343/202/244/343/203/211/343/202/267/343/202/271/343/203/206/343/203/240.kif +1 -1
  173. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/241/343/203/252/343/202/261/343/203/263/345/220/221/343/201/213/343/201/204/351/243/233/350/273/212.kif +3 -1
  174. data/lib/bioshogi/analysis//346/210/246/346/263/225//343/203/242/343/203/216/343/203/254/343/203/274/343/203/253/345/220/221/343/201/213/343/201/204/351/243/233/350/273/212.kif +8 -3
  175. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/200/346/211/213/346/220/215/350/247/222/346/217/233/343/202/217/343/202/212.kif +6 -3
  176. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/200/347/233/264/347/267/232/347/251/264/347/206/212.kif +8 -3
  177. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/200/351/226/223/351/243/233/350/273/212.kif +1 -1
  178. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/211/346/256/265/345/217/263/347/216/211.kif +7 -3
  179. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/211/351/226/223/351/243/233/350/273/212.kif +1 -1
  180. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/213/347/224/272/346/265/201/344/270/211/351/226/223/351/243/233/350/273/212.kif +3 -2
  181. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/255/345/216/237/346/265/201/346/200/245/346/210/246/347/237/242/345/200/211.kif +11 -3
  182. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/255/345/216/237/346/265/201/347/233/270/346/216/233/343/201/213/343/202/212.kif +5 -1
  183. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/255/345/216/237/351/243/233/350/273/212.kif +2 -2
  184. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/255/345/272/247/351/243/233/350/273/212.kif +2 -2
  185. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/255/351/243/233/350/273/212/343/203/237/343/203/254/343/203/213/343/202/242/343/203/240.kif +1 -1
  186. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/255/351/243/233/350/273/212/345/267/246/347/251/264/347/206/212.kif +10 -3
  187. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/270/345/261/261/343/203/257/343/202/257/343/203/201/343/203/263.kif +1 -1
  188. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/271/205/344/277/235/346/265/201/346/227/251/347/237/263/347/224/260.kif +2 -1
  189. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/271/235/351/226/223/351/243/233/350/273/212.kif +1 -1
  190. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/271/235/351/226/223/351/243/233/350/273/212/345/267/246/347/251/264/347/206/212.kif +4 -1
  191. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/210/235/346/211/213/342/226/2627/345/205/253/351/212/200/346/210/246/346/263/225.kif +1 -1
  192. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/212/240/350/227/244/346/265/201/350/242/226/351/243/233/350/273/212.kif +3 -2
  193. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/213/207/346/260/227/346/265/201.kif +1 -1
  194. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/215/207/347/224/260/345/274/217/347/237/263/347/224/260/346/265/201.kif +20 -71
  195. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/217/263/345/233/233/351/226/223/351/243/233/350/273/212/345/267/246/347/276/216/346/277/203.kif +4 -1
  196. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/217/263/345/233/233/351/226/223/351/243/233/350/273/212/346/200/245/346/210/246.kif +4 -2
  197. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/217/263/345/233/233/351/226/223/351/243/233/350/273/212/350/266/205/346/200/245/346/210/246.kif +1 -1
  198. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/217/263/347/216/211.kif +1 -1
  199. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/220/214/345/236/213/347/237/242/345/200/211.kif +2 -2
  200. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/233/233/346/211/213/350/247/222.kif +1 -1
  201. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/234/260/344/270/213/351/211/204/351/243/233/350/273/212.kif +5 -3
  202. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/241/232/347/224/260/343/202/271/343/203/232/343/202/267/343/203/243/343/203/253.kif +6 -2
  203. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/244/251/345/275/246/346/265/201/342/226/2626/345/205/255/350/247/222.kif +1 -1
  204. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/244/251/345/275/246/346/265/201/345/220/221/343/201/213/343/201/204/351/243/233/350/273/212.kif +1 -1
  205. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/254/211/351/207/216/346/265/201.kif +5 -1
  206. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/256/244/345/262/241/343/202/267/343/202/271/343/203/206/343/203/240.kif +13 -3
  207. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/257/276/347/237/242/345/200/211/346/200/245/346/210/246/346/243/222/351/212/200.kif +9 -3
  208. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/261/213/346/225/267/346/265/201/344/272/214/346/236/232/351/212/200.kif +3 -2
  209. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/261/213/346/225/267/346/265/201/344/272/214/346/236/232/351/212/200/346/243/222/351/212/200/345/236/213.kif +2 -0
  210. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/267/246/347/276/216/346/277/203/346/200/245/346/210/246.kif +14 -3
  211. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/271/273/346/203/263/345/233/233/351/226/223/351/243/233/350/273/212.kif +1 -1
  212. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/277/205/347/254/221/343/201/262/343/201/243/343/201/213/343/201/221/346/210/246/346/263/225.kif +1 -1
  213. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/210/270/{351/203/250 → 350/276/272}/346/265/2014/342/206/2223/346/210/246/346/263/225.kif +3 -3
  214. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/226/260/345/254/211/351/207/216/346/265/201.kif +4 -1
  215. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/226/260/346/235/221/347/224/260/343/202/267/343/202/271/343/203/206/343/203/240.kif +6 -1
  216. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/226/260/347/237/263/347/224/260/346/265/201.kif +1 -1
  217. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/226/260/347/261/263/351/225/267/347/216/211.kif +4 -1
  218. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/226/260/351/254/274/346/256/272/343/201/227.kif +1 -1
  219. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/234/250/346/235/221/345/256/232/350/267/241.kif +7 -3
  220. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/235/221/347/224/260/343/202/267/343/202/271/343/203/206/343/203/240.kif +1 -1
  221. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/241/220/345/261/261/346/265/201/343/202/277/343/203/206/346/255/251/346/243/222/351/212/200.kif +5 -2
  222. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/243/222/351/207/221.kif +1 -1
  223. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/243/256/344/270/213/343/202/267/343/202/271/343/203/206/343/203/240.kif +8 -4
  224. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/245/240/346/234/254/345/274/217/347/237/263/347/224/260/346/265/201.kif +4 -3
  225. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/245/265/351/231/220/346/227/251/347/271/260/343/202/212/351/212/200.kif +1 -1
  226. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/250/252/346/255/251/345/217/226/343/202/212.kif +2 -2
  227. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/270/205/351/207/216/346/265/201/345/262/220/351/230/234/346/210/246/346/263/225.kif +1 -1
  228. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/216/211/351/240/255/344/275/215/345/217/226/343/202/212.kif +1 -1
  229. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/216/211/351/240/255/351/212/200.kif +5 -1
  230. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/233/270/346/250/252/346/255/251/345/217/226/343/202/212.kif +2 -6
  231. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/233/270/347/255/213/351/201/225/343/201/204/350/247/222.kif +4 -2
  232. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/234/237/351/203/250/346/265/201.kif +5 -3
  233. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/237/242/345/200/211/342/226/2623/344/270/203/351/212/200/346/210/246/346/263/225.kif +5 -1
  234. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/237/242/345/200/211/344/270/255/351/243/233/350/273/212.kif +1 -1
  235. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/237/242/345/200/211/346/243/222/351/212/200.kif +2 -0
  236. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/237/263/347/224/260/346/265/201.kif +135 -55
  237. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/237/263/347/224/260/346/265/201/346/234/254/347/265/204/343/201/277.kif +60 -0
  238. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/250/262/345/272/255/346/210/246/346/263/225.kif +1 -1
  239. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/251/264/350/247/222/345/220/221/343/201/213/343/201/204/351/243/233/350/273/212.kif +1 -1
  240. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/251/264/350/247/222/346/210/246/346/263/225.kif +4 -3
  241. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/253/213/347/237/263/346/265/201/345/233/233/351/226/223/351/243/233/350/273/212.kif +1 -1
  242. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/253/271/351/203/250/343/202/271/343/203/232/343/202/267/343/203/243/343/203/253.kif +1 -1
  243. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/255/213/351/201/225/343/201/204/350/247/222.kif +5 -3
  244. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/261/263/351/225/267/346/265/201/346/200/245/346/210/246/347/237/242/345/200/211.kif +17 -2
  245. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/263/270/350/260/267/346/265/201/345/217/263/347/216/211.kif +8 -2
  246. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/276/275/347/224/237/345/274/217/350/242/226/351/243/233/350/273/212.kif +8 -4
  247. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/276/275/347/224/237/346/265/201/345/217/263/347/216/211.kif +1 -1
  248. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/200/200/351/276/215/343/201/262/343/201/255/343/202/212/351/243/233/350/273/212.kif +1 -1
  249. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/200/200/351/276/215/345/233/233/351/226/223/351/243/233/350/273/212.kif +1 -1
  250. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/205/260/346/216/233/343/201/221/351/212/200.kif +1 -2
  251. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/213/261/343/201/241/343/202/203/343/202/223/346/265/201/344/270/255/351/243/233/350/273/212.kif +8 -4
  252. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/213/261/346/230/245/346/265/201/343/201/213/343/201/276/343/201/204/343/201/237/343/201/241/346/210/246/346/263/225.kif +14 -3
  253. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/213/261/346/230/245/346/265/201/343/202/253/343/203/241/343/203/254/343/202/252/343/203/263.kif +6 -2
  254. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/217/205/344/272/225/346/265/201/344/270/211/351/226/223/351/243/233/350/273/212.kif +1 -1
  255. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/217/234/343/200/205/346/262/263/346/265/201/345/220/221/343/201/213/343/201/204/351/243/233/350/273/212.kif +4 -1
  256. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/227/244/346/243/256/346/265/201/346/200/245/346/210/246/347/237/242/345/200/211.kif +2 -0
  257. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/242/226/351/243/233/350/273/212.kif +12 -2
  258. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/243/217/343/202/242/343/203/222/343/203/253/346/210/246/346/263/225.kif +1 -1
  259. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/247/222/344/272/244/346/217/233/346/214/257/343/202/212/351/243/233/350/273/212.kif +3 -1
  260. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/247/222/346/217/233/343/202/217/343/202/212/345/217/263/347/216/211.kif +6 -2
  261. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/247/222/346/217/233/343/202/217/343/202/212/346/227/251/347/271/260/343/202/212/351/212/200.kif +11 -3
  262. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/247/222/346/217/233/343/202/217/343/202/212/346/243/222/351/212/200.kif +2 -0
  263. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/247/222/346/217/233/343/202/217/343/202/212/350/205/260/346/216/233/343/201/221/351/212/200.kif +1 -1
  264. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/247/222/346/217/233/343/202/217/343/202/212/350/205/260/346/216/233/343/201/221/351/212/200/346/227/247/345/236/213.kif +2 -2
  265. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/247/222/351/240/255/346/255/251/346/210/246/346/263/225.kif +1 -1
  266. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/266/205/346/200/245/346/210/246.kif +1 -1
  267. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/200/206/346/243/222/351/212/200.kif +1 -1
  268. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/201/240/345/261/261/346/265/201.kif +5 -2
  269. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/203/275/346/210/220/346/265/201/342/226/2633/344/270/200/351/207/221.kif +24 -11
  270. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/207/221/346/262/242/346/265/201.kif +1 -1
  271. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/207/221/347/204/241/345/217/214/346/200/245/346/210/246.kif +3 -1
  272. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/207/221/351/212/200/346/251/213.kif +2 -2
  273. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/212/200/351/233/262/351/233/200.kif +1 -1
  274. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/214/206/345/210/200/346/210/246/346/263/225.kif +54 -0
  275. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/230/252/347/224/260/346/265/2012/346/211/213/347/233/256/342/226/2639/345/233/233/346/255/251.kif +1 -1
  276. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/230/252/347/224/260/346/265/201/345/220/221/343/201/213/343/201/204/351/243/233/350/273/212.kif +4 -2
  277. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/230/277/344/271/205/346/264/245/346/265/201/346/200/245/346/210/246/347/237/242/345/200/211.kif +5 -2
  278. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/233/200/345/210/272/343/201/227.kif +8 -4
  279. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/233/201/346/234/250/345/217/263/347/216/211.kif +8 -3
  280. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/242/250/350/273/212.kif +5 -2
  281. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/243/233/351/250/250/343/201/256/344/270/255/351/243/233/350/273/212/345/220/210/346/216/214/351/200/240/343/202/212.kif +2 -1
  282. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/253/230/347/224/260/346/265/201/345/267/246/347/216/211.kif +1 -1
  283. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/254/274/345/205/255/346/265/201/343/201/251/343/201/243/343/201/213/343/202/223/351/243/233/350/273/212.kif +54 -0
  284. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/254/274/346/256/272/343/201/227/345/220/221/343/201/213/343/201/204/351/243/233/350/273/212.kif +1 -1
  285. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/255/224/347/225/214/345/233/233/351/226/223/351/243/233/350/273/212.kif +1 -1
  286. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/267/272/345/256/256/345/256/232/350/267/241.kif +2 -1
  287. data/lib/bioshogi/analysis//346/211/213/347/255/213/2/346/256/265/343/203/255/343/202/261/343/203/203/343/203/210.kif +1 -1
  288. data/lib/bioshogi/analysis//346/211/213/347/255/213//343/201/237/343/201/237/343/201/215/343/201/256/346/255/251.kif +27 -9
  289. data/lib/bioshogi/analysis//346/211/213/347/255/213//343/203/221/343/203/263/343/203/204/343/202/222/350/204/261/343/201/220.kif +11 -11
  290. data/lib/bioshogi/analysis//346/211/213/347/255/213//344/270/213/346/256/265/343/201/256/351/246/231.kif +26 -0
  291. data/lib/bioshogi/analysis//346/211/213/347/255/213//345/260/273/351/207/221.kif +28 -0
  292. data/lib/bioshogi/analysis//346/211/213/347/255/213//345/261/205/351/243/233/350/273/212/343/201/256/347/250/216/351/207/221.kif +15 -0
  293. data/lib/bioshogi/analysis//346/211/213/347/255/213//346/216/247/343/201/210/343/201/256/346/241/202.kif +23 -0
  294. data/lib/bioshogi/analysis//346/211/213/347/255/213//346/255/251/351/240/255/343/201/256/346/241/202.kif +2 -1
  295. data/lib/bioshogi/analysis//346/211/213/347/255/213//347/253/257/347/216/211/343/201/253/343/201/257/347/253/257/346/255/251.kif +12 -14
  296. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/202/251/351/207/221.kif +21 -0
  297. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/202/251/351/212/200.kif +21 -0
  298. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/205/271/351/207/221.kif +25 -0
  299. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/205/271/351/212/200.kif +2 -1
  300. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/243/276/351/207/221.kif +33 -0
  301. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/243/276/351/212/200.kif +21 -0
  302. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/267/263/343/201/255/351/201/225/343/201/204/343/201/256/346/241/202.kif +27 -0
  303. data/lib/bioshogi/analysis//346/211/213/347/255/213//351/200/243/346/211/223/343/201/256/346/255/251.kif +2 -1
  304. data/lib/bioshogi/analysis//346/211/213/347/255/213//351/201/240/350/246/213/343/201/256/350/247/222.kif +16 -6
  305. data/lib/bioshogi/analysis//346/211/213/347/255/213//351/207/221/351/240/255/343/201/256/346/241/202.kif +30 -0
  306. data/lib/bioshogi/analysis//346/211/213/347/255/213//351/212/200/343/201/260/343/201/225/343/201/277.kif +1 -0
  307. data/lib/bioshogi/analysis//346/211/213/347/255/213//351/212/200/345/206/240/343/201/256/345/260/217/351/203/250/345/261/213.kif +2 -1
  308. data/lib/bioshogi/analysis//346/211/213/347/255/213//351/240/255/351/207/221.kif +21 -0
  309. data/lib/bioshogi/analysis//346/211/213/347/255/213//351/240/255/351/212/200.kif +21 -0
  310. data/lib/bioshogi/analysis.rb +4 -0
  311. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_club24.png +0 -0
  312. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_modern.png +0 -0
  313. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_paper.png +0 -0
  314. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_piyo.png +0 -0
  315. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_real.png +0 -0
  316. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_shape.png +0 -0
  317. data/lib/bioshogi/assets/images/piece/nureyon/BB0.png +0 -0
  318. data/lib/bioshogi/assets/images/piece/nureyon/BB1.png +0 -0
  319. data/lib/bioshogi/assets/images/piece/nureyon/BG0.png +0 -0
  320. data/lib/bioshogi/assets/images/piece/nureyon/BK0.png +0 -0
  321. data/lib/bioshogi/assets/images/piece/nureyon/BL0.png +0 -0
  322. data/lib/bioshogi/assets/images/piece/nureyon/BL1.png +0 -0
  323. data/lib/bioshogi/assets/images/piece/nureyon/BN0.png +0 -0
  324. data/lib/bioshogi/assets/images/piece/nureyon/BN1.png +0 -0
  325. data/lib/bioshogi/assets/images/piece/nureyon/BP0.png +0 -0
  326. data/lib/bioshogi/assets/images/piece/nureyon/BP1.png +0 -0
  327. data/lib/bioshogi/assets/images/piece/nureyon/BR0.png +0 -0
  328. data/lib/bioshogi/assets/images/piece/nureyon/BR1.png +0 -0
  329. data/lib/bioshogi/assets/images/piece/nureyon/BS0.png +0 -0
  330. data/lib/bioshogi/assets/images/piece/nureyon/BS1.png +0 -0
  331. data/lib/bioshogi/assets/images/piece/nureyon/README.org +20 -0
  332. data/lib/bioshogi/assets/images/piece/nureyon/WB0.png +0 -0
  333. data/lib/bioshogi/assets/images/piece/nureyon/WB1.png +0 -0
  334. data/lib/bioshogi/assets/images/piece/nureyon/WG0.png +0 -0
  335. data/lib/bioshogi/assets/images/piece/nureyon/WK0.png +0 -0
  336. data/lib/bioshogi/assets/images/piece/nureyon/WL0.png +0 -0
  337. data/lib/bioshogi/assets/images/piece/nureyon/WL1.png +0 -0
  338. data/lib/bioshogi/assets/images/piece/nureyon/WN0.png +0 -0
  339. data/lib/bioshogi/assets/images/piece/nureyon/WN1.png +0 -0
  340. data/lib/bioshogi/assets/images/piece/nureyon/WP0.png +0 -0
  341. data/lib/bioshogi/assets/images/piece/nureyon/WP1.png +0 -0
  342. data/lib/bioshogi/assets/images/piece/nureyon/WR0.png +0 -0
  343. data/lib/bioshogi/assets/images/piece/nureyon/WR1.png +0 -0
  344. data/lib/bioshogi/assets/images/piece/nureyon/WS0.png +0 -0
  345. data/lib/bioshogi/assets/images/piece/nureyon/WS1.png +0 -0
  346. data/lib/bioshogi/assets/images/piece/nureyon/convert.rb +43 -0
  347. data/lib/bioshogi/assets/images/piece/nureyon/original/BB0.svg +11 -0
  348. data/lib/bioshogi/assets/images/piece/nureyon/original/BB1.svg +11 -0
  349. data/lib/bioshogi/assets/images/piece/nureyon/original/BG0.svg +11 -0
  350. data/lib/bioshogi/assets/images/piece/nureyon/original/BK0.svg +11 -0
  351. data/lib/bioshogi/assets/images/piece/nureyon/original/BL0.svg +11 -0
  352. data/lib/bioshogi/assets/images/piece/nureyon/original/BL1.svg +11 -0
  353. data/lib/bioshogi/assets/images/piece/nureyon/original/BN0.svg +11 -0
  354. data/lib/bioshogi/assets/images/piece/nureyon/original/BN1.svg +11 -0
  355. data/lib/bioshogi/assets/images/piece/nureyon/original/BP0.svg +11 -0
  356. data/lib/bioshogi/assets/images/piece/nureyon/original/BP1.svg +11 -0
  357. data/lib/bioshogi/assets/images/piece/nureyon/original/BR0.svg +11 -0
  358. data/lib/bioshogi/assets/images/piece/nureyon/original/BR1.svg +11 -0
  359. data/lib/bioshogi/assets/images/piece/nureyon/original/BS0.svg +11 -0
  360. data/lib/bioshogi/assets/images/piece/nureyon/original/BS1.svg +11 -0
  361. data/lib/bioshogi/assets/images/piece/nureyon/original/BX0.svg +12 -0
  362. data/lib/bioshogi/assets/images/piece/nureyon/original/README.org +5 -0
  363. data/lib/bioshogi/assets/images/piece/nureyon/original/convert.sh +15 -0
  364. data/lib/bioshogi/assets/images/piece/nureyon/original/style.rb +26 -0
  365. data/lib/bioshogi/assets/images/piece/portella/BB0.png +0 -0
  366. data/lib/bioshogi/assets/images/piece/portella/BB1.png +0 -0
  367. data/lib/bioshogi/assets/images/piece/portella/BG0.png +0 -0
  368. data/lib/bioshogi/assets/images/piece/portella/BK0.png +0 -0
  369. data/lib/bioshogi/assets/images/piece/portella/BL0.png +0 -0
  370. data/lib/bioshogi/assets/images/piece/portella/BL1.png +0 -0
  371. data/lib/bioshogi/assets/images/piece/portella/BN0.png +0 -0
  372. data/lib/bioshogi/assets/images/piece/portella/BN1.png +0 -0
  373. data/lib/bioshogi/assets/images/piece/portella/BP0.png +0 -0
  374. data/lib/bioshogi/assets/images/piece/portella/BP1.png +0 -0
  375. data/lib/bioshogi/assets/images/piece/portella/BR0.png +0 -0
  376. data/lib/bioshogi/assets/images/piece/portella/BR1.png +0 -0
  377. data/lib/bioshogi/assets/images/piece/portella/BS0.png +0 -0
  378. data/lib/bioshogi/assets/images/piece/portella/BS1.png +0 -0
  379. data/lib/bioshogi/assets/images/piece/portella/WB0.png +0 -0
  380. data/lib/bioshogi/assets/images/piece/portella/WB1.png +0 -0
  381. data/lib/bioshogi/assets/images/piece/portella/WG0.png +0 -0
  382. data/lib/bioshogi/assets/images/piece/portella/WK0.png +0 -0
  383. data/lib/bioshogi/assets/images/piece/portella/WL0.png +0 -0
  384. data/lib/bioshogi/assets/images/piece/portella/WL1.png +0 -0
  385. data/lib/bioshogi/assets/images/piece/portella/WN0.png +0 -0
  386. data/lib/bioshogi/assets/images/piece/portella/WN1.png +0 -0
  387. data/lib/bioshogi/assets/images/piece/portella/WP0.png +0 -0
  388. data/lib/bioshogi/assets/images/piece/portella/WP1.png +0 -0
  389. data/lib/bioshogi/assets/images/piece/portella/WR0.png +0 -0
  390. data/lib/bioshogi/assets/images/piece/portella/WR1.png +0 -0
  391. data/lib/bioshogi/assets/images/piece/portella/WS0.png +0 -0
  392. data/lib/bioshogi/assets/images/piece/portella/WS1.png +0 -0
  393. data/lib/bioshogi/assets/images/piece/portella/convert.rb +89 -0
  394. data/lib/bioshogi/board/basic.rb +2 -1
  395. data/lib/bioshogi/board/csa_formatter.rb +2 -2
  396. data/lib/bioshogi/board/kakinoki_formatter.rb +5 -5
  397. data/lib/bioshogi/board/reader_methods.rb +8 -4
  398. data/lib/bioshogi/board_parser/kakinoki_board_parser.rb +2 -2
  399. data/lib/bioshogi/container/checkmate_yomiage.rb +1 -1
  400. data/lib/bioshogi/container/core_methods.rb +4 -4
  401. data/lib/bioshogi/counter_hash.rb +34 -0
  402. data/lib/bioshogi/dimension/base.rb +49 -10
  403. data/lib/bioshogi/dimension/column.rb +131 -0
  404. data/lib/bioshogi/dimension/module_methods.rb +19 -20
  405. data/lib/bioshogi/dimension/row.rb +128 -0
  406. data/lib/bioshogi/extreme_validator.rb +1 -1
  407. data/lib/bioshogi/formatter/animation/animation_mp4_builder.rb +17 -14
  408. data/lib/bioshogi/formatter/animation/ffmpeg_support.rb +14 -1
  409. data/lib/bioshogi/formatter/core.rb +9 -9
  410. data/lib/bioshogi/formatter/skill_embed.rb +45 -16
  411. data/lib/bioshogi/formatter/sugatayaki_validator.rb +2 -2
  412. data/lib/bioshogi/hand/drop.rb +1 -1
  413. data/lib/bioshogi/hand/move.rb +6 -6
  414. data/lib/bioshogi/input_adapter/ki2_adapter.rb +10 -10
  415. data/lib/bioshogi/input_adapter/shared_validation.rb +1 -1
  416. data/lib/bioshogi/location.rb +22 -2
  417. data/lib/bioshogi/official_formatter.rb +38 -38
  418. data/lib/bioshogi/order_info.rb +5 -3
  419. data/lib/bioshogi/parser/base.rb +4 -4
  420. data/lib/bioshogi/parser/pi.rb +11 -0
  421. data/lib/bioshogi/piece/piece_vector.rb +16 -10
  422. data/lib/bioshogi/piece.rb +17 -9
  423. data/lib/bioshogi/piller_cop.rb +47 -0
  424. data/lib/bioshogi/place.rb +159 -62
  425. data/lib/bioshogi/player/other_methods.rb +16 -33
  426. data/lib/bioshogi/player/piece_box_methods.rb +1 -1
  427. data/lib/bioshogi/player/soldier_methods.rb +12 -6
  428. data/lib/bioshogi/player.rb +1 -0
  429. data/lib/bioshogi/player_executor/base.rb +3 -2
  430. data/lib/bioshogi/screen_image/color_theme_info.rb +22 -7
  431. data/lib/bioshogi/screen_image/core_methods.rb +37 -23
  432. data/lib/bioshogi/screen_image/helper.rb +2 -2
  433. data/lib/bioshogi/screen_image/layer_methods.rb +6 -3
  434. data/lib/bioshogi/screen_image/nureyon_image_info.rb +43 -0
  435. data/lib/bioshogi/screen_image/pentagon.rb +2 -2
  436. data/lib/bioshogi/screen_image/piece_image_info.rb +26 -0
  437. data/lib/bioshogi/screen_image/soldier_methods.rb +16 -14
  438. data/lib/bioshogi/screen_image/soldier_model_methods.rb +14 -0
  439. data/lib/bioshogi/screen_image/stand.rb +10 -7
  440. data/lib/bioshogi/soldier/technique_matcher_methods.rb +57 -0
  441. data/lib/bioshogi/soldier.rb +15 -79
  442. data/lib/bioshogi/soldier_walker.rb +1 -1
  443. data/lib/bioshogi/turn_info.rb +2 -2
  444. data/lib/bioshogi/v/preset_vectors.rb +129 -0
  445. data/lib/bioshogi/v.rb +4 -2
  446. data/lib/bioshogi/version.rb +1 -1
  447. data/lib/bioshogi.rb +4 -1
  448. data//347/275/256/343/201/215/346/217/233/343/201/210/346/216/250/345/245/250.txt +1 -1
  449. metadata +179 -206
  450. data/lib/bioshogi/analysis/technique_matcher_info.rb +0 -810
  451. data/lib/bioshogi/assets/audios/any.band/Alternatives/000/DisplayState.plist +0 -0
  452. data/lib/bioshogi/assets/audios/any.band/Alternatives/000/DisplayStateArchive +0 -0
  453. data/lib/bioshogi/assets/audios/any.band/Alternatives/000/MetaData.plist +0 -0
  454. data/lib/bioshogi/assets/audios/any.band/Alternatives/000/ProjectData +0 -0
  455. data/lib/bioshogi/assets/audios/any.band/Alternatives/000/WindowImage.jpg +0 -0
  456. data/lib/bioshogi/assets/audios/any.band/Media/Audio Files/Strategy.caf +0 -0
  457. data/lib/bioshogi/assets/audios/any.band/Resources/ProjectInformation.plist +0 -0
  458. data/lib/bioshogi/assets/audios/any.band/projectData +0 -3183
  459. data/lib/bioshogi/assets/audios/breakbeat_long.band/Alternatives/000/DisplayState.plist +0 -0
  460. data/lib/bioshogi/assets/audios/breakbeat_long.band/Alternatives/000/DisplayStateArchive +0 -0
  461. data/lib/bioshogi/assets/audios/breakbeat_long.band/Alternatives/000/MetaData.plist +0 -0
  462. data/lib/bioshogi/assets/audios/breakbeat_long.band/Alternatives/000/ProjectData +0 -0
  463. data/lib/bioshogi/assets/audios/breakbeat_long.band/Alternatives/000/WindowImage.jpg +0 -0
  464. data/lib/bioshogi/assets/audios/breakbeat_long.band/Resources/ProjectInformation.plist +0 -0
  465. data/lib/bioshogi/assets/audios/breakbeat_long.band/projectData +0 -3183
  466. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Alternatives/000/DisplayState.plist +0 -0
  467. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Alternatives/000/DisplayStateArchive +0 -0
  468. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Alternatives/000/MetaData.plist +0 -0
  469. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Alternatives/000/ProjectData +0 -0
  470. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Alternatives/000/WindowImage.jpg +0 -0
  471. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Media/Audio Files/Strategy.caf +0 -0
  472. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Resources/ProjectInformation.plist +0 -0
  473. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/projectData +0 -3183
  474. data/lib/bioshogi/assets/audios/china_like.band/Alternatives/000/DisplayState.plist +0 -0
  475. data/lib/bioshogi/assets/audios/china_like.band/Alternatives/000/DisplayStateArchive +0 -0
  476. data/lib/bioshogi/assets/audios/china_like.band/Alternatives/000/MetaData.plist +0 -0
  477. data/lib/bioshogi/assets/audios/china_like.band/Alternatives/000/ProjectData +0 -0
  478. data/lib/bioshogi/assets/audios/china_like.band/Alternatives/000/WindowImage.jpg +0 -0
  479. data/lib/bioshogi/assets/audios/china_like.band/Resources/ProjectInformation.plist +0 -0
  480. data/lib/bioshogi/assets/audios/china_like.band/projectData +0 -3183
  481. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Alternatives/000/DisplayState.plist +0 -0
  482. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Alternatives/000/DisplayStateArchive +0 -0
  483. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Alternatives/000/MetaData.plist +0 -0
  484. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Alternatives/000/ProjectData +0 -0
  485. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Alternatives/000/WindowImage.jpg +0 -0
  486. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Resources/ProjectInformation.plist +0 -0
  487. data/lib/bioshogi/assets/audios/digit_blast_layers.band/projectData +0 -3183
  488. data/lib/bioshogi/assets/audios/foo.band/Alternatives/000/DisplayState.plist +0 -0
  489. data/lib/bioshogi/assets/audios/foo.band/Alternatives/000/DisplayStateArchive +0 -0
  490. data/lib/bioshogi/assets/audios/foo.band/Alternatives/000/MetaData.plist +0 -0
  491. data/lib/bioshogi/assets/audios/foo.band/Alternatives/000/ProjectData +0 -0
  492. data/lib/bioshogi/assets/audios/foo.band/Alternatives/000/WindowImage.jpg +0 -0
  493. data/lib/bioshogi/assets/audios/foo.band/Media/Audio Files/Strategy.caf +0 -0
  494. data/lib/bioshogi/assets/audios/foo.band/Resources/ProjectInformation.plist +0 -0
  495. data/lib/bioshogi/assets/audios/foo.band/projectData +0 -3183
  496. data/lib/bioshogi/assets/audios/headspin_long.band/Alternatives/000/DisplayState.plist +0 -0
  497. data/lib/bioshogi/assets/audios/headspin_long.band/Alternatives/000/DisplayStateArchive +0 -0
  498. data/lib/bioshogi/assets/audios/headspin_long.band/Alternatives/000/MetaData.plist +0 -0
  499. data/lib/bioshogi/assets/audios/headspin_long.band/Alternatives/000/ProjectData +0 -0
  500. data/lib/bioshogi/assets/audios/headspin_long.band/Alternatives/000/WindowImage.jpg +0 -0
  501. data/lib/bioshogi/assets/audios/headspin_long.band/Resources/ProjectInformation.plist +0 -0
  502. data/lib/bioshogi/assets/audios/headspin_long.band/projectData +0 -3183
  503. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Alternatives/000/DisplayState.plist +0 -0
  504. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Alternatives/000/DisplayStateArchive +0 -0
  505. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Alternatives/000/MetaData.plist +0 -0
  506. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Alternatives/000/ProjectData +0 -0
  507. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Alternatives/000/WindowImage.jpg +0 -0
  508. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Resources/ProjectInformation.plist +0 -0
  509. data/lib/bioshogi/assets/audios/loop_bgm_i.band/projectData +0 -3183
  510. data/lib/bioshogi/assets/audios/mastermind.band/Alternatives/000/DisplayState.plist +0 -0
  511. data/lib/bioshogi/assets/audios/mastermind.band/Alternatives/000/DisplayStateArchive +0 -0
  512. data/lib/bioshogi/assets/audios/mastermind.band/Alternatives/000/MetaData.plist +0 -0
  513. data/lib/bioshogi/assets/audios/mastermind.band/Alternatives/000/ProjectData +0 -0
  514. data/lib/bioshogi/assets/audios/mastermind.band/Alternatives/000/WindowImage.jpg +0 -0
  515. data/lib/bioshogi/assets/audios/mastermind.band/Resources/ProjectInformation.plist +0 -0
  516. data/lib/bioshogi/assets/audios/mastermind.band/projectData +0 -3183
  517. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/Autosave/.dummy +0 -0
  518. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/Autosave/2021-08-19 05:25:23Z.displayData +0 -0
  519. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/Autosave/2021-08-19 05:25:23Z.eventData +0 -0
  520. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/Autosave/2021-08-19 05:25:23Z.songData +0 -0
  521. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/DisplayState.plist +0 -0
  522. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/DisplayStateArchive +0 -0
  523. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/MetaData.plist +0 -0
  524. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/ProjectData +0 -0
  525. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/WindowImage.jpg +0 -0
  526. data/lib/bioshogi/assets/audios/positive_think.band/Resources/ProjectInformation.plist +0 -0
  527. data/lib/bioshogi/assets/audios/positive_think.band/projectData +0 -3183
  528. data/lib/bioshogi/assets/audios/stg_like_type1.band/Alternatives/000/DisplayState.plist +0 -0
  529. data/lib/bioshogi/assets/audios/stg_like_type1.band/Alternatives/000/DisplayStateArchive +0 -0
  530. data/lib/bioshogi/assets/audios/stg_like_type1.band/Alternatives/000/MetaData.plist +0 -0
  531. data/lib/bioshogi/assets/audios/stg_like_type1.band/Alternatives/000/ProjectData +0 -0
  532. data/lib/bioshogi/assets/audios/stg_like_type1.band/Alternatives/000/WindowImage.jpg +0 -0
  533. data/lib/bioshogi/assets/audios/stg_like_type1.band/Resources/ProjectInformation.plist +0 -0
  534. data/lib/bioshogi/assets/audios/stg_like_type1.band/projectData +0 -3183
  535. data/lib/bioshogi/assets/audios/strategy.band/Alternatives/000/DisplayState.plist +0 -0
  536. data/lib/bioshogi/assets/audios/strategy.band/Alternatives/000/DisplayStateArchive +0 -0
  537. data/lib/bioshogi/assets/audios/strategy.band/Alternatives/000/MetaData.plist +0 -0
  538. data/lib/bioshogi/assets/audios/strategy.band/Alternatives/000/ProjectData +0 -0
  539. data/lib/bioshogi/assets/audios/strategy.band/Alternatives/000/WindowImage.jpg +0 -0
  540. data/lib/bioshogi/assets/audios/strategy.band/Media/Audio Files/Strategy.caf +0 -0
  541. data/lib/bioshogi/assets/audios/strategy.band/Resources/ProjectInformation.plist +0 -0
  542. data/lib/bioshogi/assets/audios/strategy.band/projectData +0 -3183
  543. data/lib/bioshogi/assets/audios/test1.band/Alternatives/000/DisplayState.plist +0 -0
  544. data/lib/bioshogi/assets/audios/test1.band/Alternatives/000/DisplayStateArchive +0 -0
  545. data/lib/bioshogi/assets/audios/test1.band/Alternatives/000/MetaData.plist +0 -0
  546. data/lib/bioshogi/assets/audios/test1.band/Alternatives/000/ProjectData +0 -0
  547. data/lib/bioshogi/assets/audios/test1.band/Alternatives/000/WindowImage.jpg +0 -0
  548. data/lib/bioshogi/assets/audios/test1.band/Resources/ProjectInformation.plist +0 -0
  549. data/lib/bioshogi/assets/audios/test1.band/projectData +0 -3183
  550. data/lib/bioshogi/assets/audios/test2.band/Alternatives/000/DisplayState.plist +0 -0
  551. data/lib/bioshogi/assets/audios/test2.band/Alternatives/000/DisplayStateArchive +0 -0
  552. data/lib/bioshogi/assets/audios/test2.band/Alternatives/000/MetaData.plist +0 -0
  553. data/lib/bioshogi/assets/audios/test2.band/Alternatives/000/ProjectData +0 -0
  554. data/lib/bioshogi/assets/audios/test2.band/Alternatives/000/WindowImage.jpg +0 -0
  555. data/lib/bioshogi/assets/audios/test2.band/Resources/ProjectInformation.plist +0 -0
  556. data/lib/bioshogi/assets/audios/test2.band/projectData +0 -3183
  557. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Black.ttf +0 -0
  558. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Bold.ttf +0 -0
  559. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-ExtraBold.ttf +0 -0
  560. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Light.ttf +0 -0
  561. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Medium.ttf +0 -0
  562. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Regular.ttf +0 -0
  563. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Thin.ttf +0 -0
  564. data/lib/bioshogi/assets/fonts/NewTegomin-Regular.ttf +0 -0
  565. data/lib/bioshogi/assets/fonts/NotoSansJP-Black.otf +0 -0
  566. data/lib/bioshogi/assets/fonts/NotoSansJP-Bold.otf +0 -0
  567. data/lib/bioshogi/assets/fonts/NotoSansJP-Light.otf +0 -0
  568. data/lib/bioshogi/assets/fonts/NotoSansJP-Medium.otf +0 -0
  569. data/lib/bioshogi/assets/fonts/NotoSansJP-Regular.otf +0 -0
  570. data/lib/bioshogi/assets/fonts/NotoSansJP-Thin.otf +0 -0
  571. data/lib/bioshogi/assets/fonts/NotoSerifJP-Black.otf +0 -0
  572. data/lib/bioshogi/assets/fonts/NotoSerifJP-Bold.otf +0 -0
  573. data/lib/bioshogi/assets/fonts/NotoSerifJP-ExtraLight.otf +0 -0
  574. data/lib/bioshogi/assets/fonts/NotoSerifJP-Light.otf +0 -0
  575. data/lib/bioshogi/assets/fonts/NotoSerifJP-Medium.otf +0 -0
  576. data/lib/bioshogi/assets/fonts/NotoSerifJP-Regular.otf +0 -0
  577. data/lib/bioshogi/assets/fonts/NotoSerifJP-SemiBold.otf +0 -0
  578. data/lib/bioshogi/assets/fonts/YuseiMagic-Regular.ttf +0 -0
  579. data/lib/bioshogi/assets/images/piece/Portella/BB0.png +0 -0
  580. data/lib/bioshogi/assets/images/piece/Portella/BB1.png +0 -0
  581. data/lib/bioshogi/assets/images/piece/Portella/BG0.png +0 -0
  582. data/lib/bioshogi/assets/images/piece/Portella/BK0.png +0 -0
  583. data/lib/bioshogi/assets/images/piece/Portella/BL0.png +0 -0
  584. data/lib/bioshogi/assets/images/piece/Portella/BL1.png +0 -0
  585. data/lib/bioshogi/assets/images/piece/Portella/BN0.png +0 -0
  586. data/lib/bioshogi/assets/images/piece/Portella/BN1.png +0 -0
  587. data/lib/bioshogi/assets/images/piece/Portella/BP0.png +0 -0
  588. data/lib/bioshogi/assets/images/piece/Portella/BP1.png +0 -0
  589. data/lib/bioshogi/assets/images/piece/Portella/BR0.png +0 -0
  590. data/lib/bioshogi/assets/images/piece/Portella/BR1.png +0 -0
  591. data/lib/bioshogi/assets/images/piece/Portella/BS0.png +0 -0
  592. data/lib/bioshogi/assets/images/piece/Portella/BS1.png +0 -0
  593. data/lib/bioshogi/assets/images/piece/Portella/BX0.png +0 -0
  594. data/lib/bioshogi/assets/images/piece/Portella/WB0.png +0 -0
  595. data/lib/bioshogi/assets/images/piece/Portella/WB1.png +0 -0
  596. data/lib/bioshogi/assets/images/piece/Portella/WG0.png +0 -0
  597. data/lib/bioshogi/assets/images/piece/Portella/WK0.png +0 -0
  598. data/lib/bioshogi/assets/images/piece/Portella/WL0.png +0 -0
  599. data/lib/bioshogi/assets/images/piece/Portella/WL1.png +0 -0
  600. data/lib/bioshogi/assets/images/piece/Portella/WN0.png +0 -0
  601. data/lib/bioshogi/assets/images/piece/Portella/WN1.png +0 -0
  602. data/lib/bioshogi/assets/images/piece/Portella/WP0.png +0 -0
  603. data/lib/bioshogi/assets/images/piece/Portella/WP1.png +0 -0
  604. data/lib/bioshogi/assets/images/piece/Portella/WR0.png +0 -0
  605. data/lib/bioshogi/assets/images/piece/Portella/WR1.png +0 -0
  606. data/lib/bioshogi/assets/images/piece/Portella/WS0.png +0 -0
  607. data/lib/bioshogi/assets/images/piece/Portella/WS1.png +0 -0
  608. data/lib/bioshogi/assets/images/piece/Portella/WX0.png +0 -0
  609. data/lib/bioshogi/assets/images/piece/Portella/convert.sh +0 -32
  610. data/lib/bioshogi/board/piece_counts_methods.rb +0 -43
  611. data/lib/bioshogi/dimension/place_x.rb +0 -27
  612. data/lib/bioshogi/dimension/place_y.rb +0 -57
  613. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/README.org +0 -0
  614. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0FU.png +0 -0
  615. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0GI.png +0 -0
  616. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0GY.png +0 -0
  617. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0HI.png +0 -0
  618. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0KA.png +0 -0
  619. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0KE.png +0 -0
  620. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0KI.png +0 -0
  621. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0KI.svg +0 -0
  622. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0KY.png +0 -0
  623. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0NG.png +0 -0
  624. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0NK.png +0 -0
  625. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0NY.png +0 -0
  626. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0OU.png +0 -0
  627. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0RY.png +0 -0
  628. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0TO.png +0 -0
  629. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0UM.png +0 -0
  630. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1FU.png +0 -0
  631. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1GI.png +0 -0
  632. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1GY.png +0 -0
  633. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1HI.png +0 -0
  634. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1KA.png +0 -0
  635. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1KE.png +0 -0
  636. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1KI.png +0 -0
  637. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1KY.png +0 -0
  638. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1NG.png +0 -0
  639. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1NK.png +0 -0
  640. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1NY.png +0 -0
  641. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1OU.png +0 -0
  642. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1RY.png +0 -0
  643. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1TO.png +0 -0
  644. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1UM.png +0 -0
@@ -1,810 +0,0 @@
1
- # frozen-string-literal: true
2
-
3
- module Bioshogi
4
- module Analysis
5
- class TechniqueMatcherInfo
6
- LRUD_PLUS_TWO = [
7
- [ 2, 0],
8
- [-2, 0],
9
- [ 0, 2],
10
- [ 0, -2],
11
- ]
12
-
13
- LR = [-1, +1]
14
- LR2 = [[1, 2], [-1, -2]]
15
-
16
- include ApplicationMemoryRecord
17
- memory_record [
18
- {
19
- key: "金底の歩",
20
- logic_desc: "打った歩が一番下の段でその上に自分の金がある",
21
- verify_process: proc {
22
- if false
23
- p executor.drop_hand
24
- soldier = executor.hand.soldier
25
- p soldier.piece.key
26
- p soldier.bottom_spaces
27
- p soldier.place
28
- p Place.lookup([soldier.place.x.value, soldier.place.y.value - soldier.location.value_sign])
29
- end
30
-
31
- # # 「打」でないとだめ
32
- # unless executor.drop_hand
33
- # throw :skip
34
- # end
35
-
36
- soldier = executor.hand.soldier
37
-
38
- # 「最下段」でないとだめ
39
- if soldier.bottom_spaces != 0
40
- throw :skip
41
- end
42
-
43
- # # 「歩」でないとだめ
44
- # if soldier.piece.key != :pawn
45
- # throw :skip
46
- # end
47
-
48
- # 1つ上の位置
49
- place = soldier.place
50
- v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
51
-
52
- # 1つ上の位置になにかないとだめ
53
- s = surface[v]
54
- unless s
55
- throw :skip
56
- end
57
-
58
- # 1つ上の駒が「自分」の「金」でないとだめ
59
- unless s.piece.key == :gold && s.location == soldier.location
60
- throw :skip
61
- end
62
- },
63
- },
64
-
65
- {
66
- key: "一間竜",
67
- logic_desc: "上下左右+2の位置に相手の玉がある",
68
- verify_process: proc {
69
- soldier = executor.hand.soldier
70
-
71
- place = soldier.place
72
- retv = LRUD_PLUS_TWO.any? do |x, y|
73
- v = Place.lookup([place.x.value + x, place.y.value + y])
74
- if s = surface[v]
75
- s.piece.key == :king && s.location != soldier.location
76
- end
77
- end
78
-
79
- unless retv
80
- throw :skip
81
- end
82
- },
83
- },
84
-
85
- {
86
- key: "こびん攻め",
87
- logic_desc: "玉や飛の斜めの歩を攻める",
88
- verify_process: proc {
89
- soldier = executor.hand.soldier
90
- place = soldier.place
91
-
92
- # 端の場合は「こびん」とは言わないため省く
93
- if place.x.value == 0 || place.x.value == Dimension::PlaceX.dimension.pred
94
- throw :skip
95
- end
96
-
97
- # 相手が歩か?
98
- v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
99
- if (s = surface[v]) && s.piece.key == :pawn && !s.promoted && s.location != soldier.location
100
- else
101
- throw :skip
102
- end
103
-
104
- # その歩の後ろの左右に玉か飛があるか?
105
- retv = LR.any? do |x|
106
- v = Place.lookup([place.x.value + x, place.y.value - (soldier.location.value_sign * 2)])
107
- if s = surface[v]
108
- (s.piece.key == :king || (s.piece.key == :rook && !s.promoted)) && s.location != soldier.location
109
- end
110
- end
111
-
112
- unless retv
113
- throw :skip
114
- end
115
- },
116
- },
117
-
118
- {
119
- key: "位の確保",
120
- logic_desc: "5段目の歩の下に銀を移動する",
121
- verify_process: proc {
122
- soldier = executor.hand.soldier
123
- place = soldier.place
124
-
125
- # 6段目に移動した
126
- unless place.y.value == (Dimension::PlaceY.dimension / 2 + soldier.location.value_sign)
127
- throw :skip
128
- end
129
-
130
- # 両端2列は含まない
131
- padding = 2
132
- unless (padding...(Dimension::PlaceX.dimension - padding)).cover?(place.x.value)
133
- throw :skip
134
- end
135
-
136
- # 自分の歩の下に移動した
137
- v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
138
- unless (s = surface[v]) && s.piece.key == :pawn && !s.promoted && s.location == soldier.location
139
- throw :skip
140
- end
141
-
142
- # 自分の歩の上には何もないこと
143
- v = Place.lookup([place.x.value, place.y.value - (soldier.location.value_sign * 2)])
144
- if surface[v]
145
- throw :skip
146
- end
147
- },
148
- },
149
-
150
- {
151
- key: "パンツを脱ぐ",
152
- logic_desc: "開戦前かつ、跳んだ桂が下から3つ目かつ、(近い方の)端から3つ目かつ、移動元の隣(端に近い方)に自分の玉がある",
153
- verify_process: proc {
154
- if false
155
- p executor.move_hand
156
- soldier = executor.move_hand.soldier
157
- p soldier.piece.key
158
- p soldier.bottom_spaces
159
- p soldier.place
160
- p Place.lookup([soldier.place.x.value, soldier.place.y.value - soldier.location.value_sign])
161
- end
162
-
163
- soldier = executor.move_hand.soldier
164
-
165
- # 「3段目」でないとだめ
166
- if soldier.bottom_spaces != 2
167
- throw :skip
168
- end
169
-
170
- # 「端から3つ目」でなければだめ
171
- if soldier.smaller_one_of_side_spaces != 2
172
- throw :skip
173
- end
174
-
175
- # 移動元は「端から2つ目」でなければだめ(△61から飛んだ場合を除外する)
176
- if executor.move_hand.origin_soldier.smaller_one_of_side_spaces != 1
177
- throw :skip
178
- end
179
-
180
- # FIXME: origin_soldier
181
- # 下に2つ、壁の方に2つ
182
- place = soldier.place
183
- v = Place.lookup([place.x.value + soldier.sign_to_goto_closer_side * 2, place.y.value + soldier.location.value_sign * 2])
184
-
185
- # そこに何かないとだめ
186
- s = surface[v]
187
- unless s
188
- throw :skip
189
- end
190
-
191
- # その駒が「自分」の「玉」でないとだめ
192
- unless s.piece.key == :king && s.location == soldier.location
193
- throw :skip
194
- end
195
- },
196
- },
197
-
198
- {
199
- key: "腹銀",
200
- logic_desc: "銀を打ったとき左右どちらかに相手の玉がある",
201
- verify_process: proc {
202
- soldier = executor.hand.soldier
203
-
204
- # 左右に相手の玉がいるか?
205
- place = soldier.place
206
- retv = LR.any? do |x|
207
- v = Place.lookup([place.x.value + x, place.y.value])
208
- if s = surface[v]
209
- s.piece.key == :king && s.location != soldier.location
210
- end
211
- end
212
- unless retv
213
- throw :skip
214
- end
215
- },
216
- },
217
-
218
- {
219
- key: "尻銀",
220
- logic_desc: "銀を打ったとき下に相手の玉がある",
221
- verify_process: proc {
222
- soldier = executor.hand.soldier
223
- place = soldier.place
224
- v = Place.lookup([place.x.value, place.y.value + soldier.location.value_sign])
225
- unless s = surface[v]
226
- throw :skip
227
- end
228
- unless s.piece.key == :king && s.location != soldier.location
229
- throw :skip
230
- end
231
- },
232
- },
233
-
234
- {
235
- key: "垂れ歩",
236
- logic_desc: "打った歩の前が空で次に成れる余地がある場合",
237
- verify_process: proc {
238
- soldier = executor.hand.soldier
239
-
240
- # 2, 3, 4段目でなければだめ(1段目は反則)
241
- v = soldier.top_spaces
242
- unless 1 <= v && v <= Dimension::PlaceY.promotable_depth
243
- throw :skip
244
- end
245
-
246
- # 一歩先が空
247
- place = soldier.place
248
- v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
249
- if surface[v]
250
- throw :skip
251
- end
252
- },
253
- },
254
-
255
- # 単に「18角打」をチェックした方がいい
256
- # {
257
- # key: "遠見の角",
258
- # logic_desc: "打った角の位置が下から2番目かつ近い方の端から1番目(つまり自分の香の上の位置)",
259
- # verify_process: proc {
260
- # soldier = executor.hand.soldier
261
- #
262
- # # 8段目でなければだめ
263
- # if soldier.bottom_spaces != 1
264
- # throw :skip
265
- # end
266
- #
267
- # # 端でなければだめ
268
- # if soldier.smaller_one_of_side_spaces != 0
269
- # throw :skip
270
- # end
271
- # },
272
- # },
273
-
274
- {
275
- key: "割り打ちの銀",
276
- logic_desc: "打った銀の後ろの左右両方に相手の飛か金がある",
277
- verify_process: proc {
278
- soldier = executor.hand.soldier
279
- place = soldier.place
280
- retv = LR.all? do |x|
281
- v = Place.lookup([place.x.value + x, place.y.value + soldier.location.value_sign])
282
- if s = surface[v]
283
- if s.location != soldier.location
284
- (s.piece.key == :rook && !s.promoted) || s.piece.key == :gold
285
- end
286
- end
287
- end
288
- unless retv
289
- throw :skip
290
- end
291
- },
292
- },
293
-
294
- {
295
- key: "たすきの銀",
296
- logic_desc: "打った銀の斜めに飛と金がある",
297
- verify_process: proc {
298
- soldier = executor.hand.soldier
299
- place = soldier.place # 72
300
- retv = [1, -1].any? do |x|
301
- v = Place.lookup([place.x.value - x, place.y.value - soldier.location.value_sign]) # 81
302
- if s = surface[v]
303
- if s.piece.key == :rook && !s.promoted && s.location != soldier.location # 左上に相手の飛車がある
304
- v = Place.lookup([place.x.value + x, place.y.value + soldier.location.value_sign]) # 63
305
- if s = surface[v]
306
- (s.piece.key == :gold || (s.piece.key == :silver && s.promoted)) && s.location != soldier.location # 右下に相手の金または成銀がある
307
- # s.piece.key == :gold && s.location != soldier.location # 右下に相手の金がある
308
- end
309
- end
310
- end
311
- end
312
- unless retv
313
- throw :skip
314
- end
315
- },
316
- },
317
-
318
- {
319
- key: "たすきの角",
320
- logic_desc: "打った角の斜めに飛と金がある",
321
- verify_process: proc {
322
- instance_eval(&TechniqueMatcherInfo[:"たすきの銀"].verify_process)
323
- },
324
- },
325
-
326
- {
327
- key: "桂頭の銀",
328
- logic_desc: "打った銀の上に相手の桂がある",
329
- verify_process: proc {
330
- soldier = executor.hand.soldier
331
- place = soldier.place
332
- v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
333
- unless s = surface[v]
334
- throw :skip
335
- end
336
- unless s.piece.key == :knight && !s.promoted && s.location != soldier.location
337
- throw :skip
338
- end
339
- },
340
- },
341
-
342
- {
343
- key: "歩頭の桂",
344
- logic_desc: "打った桂の上に相手の歩がある",
345
- verify_process: proc {
346
- soldier = executor.hand.soldier
347
- place = soldier.place
348
- v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
349
- unless s = surface[v]
350
- throw :skip
351
- end
352
- unless s.piece.key == :pawn && !s.promoted && s.location != soldier.location
353
- throw :skip
354
- end
355
- },
356
- },
357
-
358
- {
359
- key: "銀ばさみ",
360
- logic_desc: "動かした歩の左右どちらかに相手の銀があり、その向こうに自分の歩がある。また歩の前に何もないこと。",
361
- verify_process: proc {
362
- # 「打」ではだめ
363
- if executor.drop_hand
364
- throw :skip
365
- end
366
-
367
- # 「同歩」ではだめ
368
- if executor.move_hand.captured_soldier
369
- throw :skip
370
- end
371
-
372
- soldier = executor.hand.soldier
373
- place = soldier.place
374
-
375
- # 進めた歩の前が空である
376
- flag = false
377
- if v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
378
- unless surface[v]
379
- flag = true
380
- end
381
- end
382
- unless flag
383
- throw :skip
384
- end
385
-
386
- matched = LR2.any? do |x1, x2|
387
- silver_exist = false
388
- pawn_exist = false
389
-
390
- # 隣に相手の銀がある
391
- if v = Place.lookup([place.x.value + x1, place.y.value])
392
- if s = surface[v]
393
- if s.piece.key == :silver && !s.promoted && s.location != soldier.location
394
- silver_exist = true
395
- end
396
- end
397
- end
398
- # その隣に自分の歩がある
399
- if silver_exist
400
- if v = Place.lookup([place.x.value + x2, place.y.value])
401
- if s = surface[v]
402
- if s.piece.key == :pawn && !s.promoted && s.location == soldier.location
403
- pawn_exist = true
404
- end
405
- end
406
- end
407
- end
408
- # その歩の前が空
409
- if pawn_exist
410
- if v = Place.lookup([place.x.value + x2, place.y.value - soldier.location.value_sign])
411
- unless surface[v]
412
- true
413
- end
414
- end
415
- end
416
- end
417
-
418
- unless matched
419
- throw :skip
420
- end
421
- },
422
- },
423
-
424
- {
425
- key: "端玉には端歩",
426
- logic_desc: nil,
427
- verify_process: proc {
428
- soldier = executor.hand.soldier
429
- place = soldier.place
430
-
431
- # 端の場合のみ
432
- if place.x.value == 0 || place.x.value == Dimension::PlaceX.dimension.pred
433
- else
434
- throw :skip
435
- end
436
-
437
- # 進めた歩の前が歩である
438
- pawn_found = false
439
- if v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
440
- if s = surface[v]
441
- if s.piece.key == :pawn && !s.promoted && s.location != soldier.location
442
- pawn_found = true
443
- end
444
- end
445
- end
446
- unless pawn_found
447
- throw :skip
448
- end
449
-
450
- # その相手の歩の奥に相手の玉がいる
451
- king_found = false
452
- (2...Dimension::PlaceY.dimension).each do |y|
453
- if v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign * y])
454
- if s = surface[v]
455
- if s.piece.key == :king && s.location != soldier.location
456
- king_found = true
457
- end
458
- break
459
- else
460
- # 空ならさらに奥を見る
461
- end
462
- else
463
- break
464
- end
465
- end
466
- unless king_found
467
- throw :skip
468
- end
469
-
470
- # 端の下に香がいる
471
- lance_found = false
472
- bottom_place = Place.lookup([place.x.value, place.y.value + soldier.location.value_sign * soldier.bottom_spaces]) # 99
473
- Dimension::PlaceY.dimension.times do |y|
474
- v = Place.lookup([bottom_place.x.value, bottom_place.y.value - (soldier.location.value_sign * y)])
475
- if s = surface[v]
476
- if s.piece.key == :lance && !s.promoted && s.location == soldier.location
477
- lance_found = true
478
- end
479
- break
480
- else
481
- # 空ならさらに上を見る
482
- end
483
- end
484
- unless lance_found
485
- throw :skip
486
- end
487
- },
488
- },
489
-
490
- # {
491
- # key: "ロケット",
492
- # logic_desc: "打った香の下に自分の香か飛か龍がある",
493
- # verify_process: proc {
494
- # # p ["#{__FILE__}:#{__LINE__}", __method__, ]
495
- # soldier = executor.hand.soldier
496
- # # p soldier.bottom_spaces
497
- # # p place
498
- # # p place.y
499
- # # p place.y.flip
500
- # # place = Place.lookup([place.x.value, place.y.value + soldier.bottom_spaces * soldier.location.value_sign])
501
- #
502
- # rook_count = 0
503
- # lance_count = 0
504
- # if soldier.piece.key == :rook
505
- # rook_count += 1
506
- # else
507
- # lance_count += 1
508
- # end
509
- #
510
- # [1, -1].each do |sign| # 1:↓ -1:↑
511
- # (1..).each do |i|
512
- # place = Place.lookup([soldier.place.x.value, soldier.place.y.value + (i * soldier.location.value_sign * sign)])
513
- # unless place
514
- # break
515
- # end
516
- # if s = surface[place]
517
- # if s.location == soldier.location
518
- # if s.piece.key == :rook
519
- # rook_count += 1
520
- # elsif s.piece.key == :lance && !s.promoted
521
- # lance_count += 1
522
- # else
523
- # break
524
- # end
525
- # else
526
- # break
527
- # end
528
- # end
529
- # end
530
- # end
531
- #
532
- # p rook_count
533
- # p lance_count
534
- #
535
- # count = rook_count + lance_count
536
- # if lance_count >= 1 && count >= 2
537
- # # raise "ここで count 段ロケットということはわかったがこれをどうタグに入れるか?"
538
- # else
539
- # throw :skip
540
- # end
541
- # },
542
- # },
543
-
544
- {
545
- key: "田楽刺し",
546
- logic_desc: "角の頭に打つ",
547
- verify_process: proc {
548
- soldier = executor.hand.soldier
549
- place = soldier.place
550
- mode = :walk_to_bishop
551
- loop do
552
- place = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
553
- unless place
554
- throw :skip # 盤面の外なので終わり
555
- end
556
- if s = surface[place]
557
- if s.location == soldier.location
558
- throw :skip # 自分と同じ駒があった場合はおわり
559
- end
560
- if mode == :walk_to_bishop
561
- if s.piece.key == :bishop && !s.promoted
562
- mode = :walk_to_king
563
- end
564
- else
565
- if s.piece.dengaku_target
566
- break
567
- end
568
- end
569
- else
570
- # 駒がないので次のマスに進む
571
- end
572
- end
573
- },
574
- },
575
-
576
- {
577
- key: "ふんどしの桂",
578
- logic_desc: "打った桂の2つ前の左右に自分より価値の高い相手の駒がある",
579
- verify_process: proc {
580
- soldier = executor.hand.soldier
581
- place = soldier.place
582
- retv = LR.all? do |x|
583
- v = Place.lookup([place.x.value + x, place.y.value - soldier.location.value_sign * 2])
584
- if s = surface[v]
585
- if s.location != soldier.location
586
- s.abs_weight > soldier.abs_weight
587
- end
588
- end
589
- end
590
- unless retv
591
- throw :skip
592
- end
593
- },
594
- },
595
-
596
- {
597
- key: "土下座の歩",
598
- logic_desc: nil,
599
- verify_process: proc {
600
- soldier = executor.hand.soldier
601
- place = soldier.place
602
-
603
- # 8,9段目であること
604
- if soldier.bottom_spaces < 2
605
- else
606
- throw :skip
607
- end
608
-
609
- # 一つ上が空であること
610
- v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
611
- if surface[v]
612
- throw :skip
613
- end
614
-
615
- # 二つ上に相手の前に進める駒があること
616
- flag = false
617
- v = Place.lookup([place.x.value, place.y.value - (soldier.location.value_sign * 2)])
618
- if s = surface[v]
619
- if s.location != soldier.location
620
- if s.promoted || s.piece.maesusumeru
621
- flag = true
622
- end
623
- end
624
- end
625
- unless flag
626
- throw :skip
627
- end
628
- },
629
- },
630
-
631
- {
632
- key: "たたきの歩",
633
- logic_desc: "取ると取り返せるような場合もたたきの歩として判別されるのであまり正しくない",
634
- verify_process: proc {
635
- soldier = executor.hand.soldier
636
- place = soldier.place
637
-
638
- # # 中盤以降は無効とする
639
- # if executor.container.turn_info.display_turn.next >= 42
640
- # throw :skip
641
- # end
642
-
643
- # 打った位置が1から4段目である
644
- if soldier.top_spaces <= Dimension::PlaceY.promotable_depth
645
- else
646
- throw :skip
647
- end
648
-
649
- # 相手が「成駒」または「飛金銀香玉」である
650
- flag = false
651
- v = Place.lookup([place.x.value, place.y.value - soldier.location.value_sign])
652
- if s = surface[v]
653
- if s.location != soldier.location
654
- if s.promoted || s.piece.tatakare_target
655
- flag = true
656
- end
657
- end
658
- end
659
- unless flag
660
- throw :skip
661
- end
662
-
663
- # 打った位置の後ろに自分の(前に進めることのできる)駒があるなら無効とする (厳密な判定ではない)
664
- v = Place.lookup([place.x.value, place.y.value + soldier.location.value_sign])
665
- if s = surface[v]
666
- if s.location == soldier.location
667
- if s.promoted || s.piece.maesusumeru
668
- throw :skip
669
- end
670
- end
671
- end
672
- },
673
- },
674
-
675
- {
676
- key: "継ぎ歩",
677
- logic_desc: "",
678
- verify_process: proc {
679
- # 0手前: ▲25歩打 継ぎ歩 したらここに来る
680
-
681
- soldier = executor.hand.soldier
682
- x = soldier.place.x
683
- y = soldier.place.y
684
- y2 = y.value - soldier.location.value_sign # 24歩のY座標(整数値)
685
-
686
- # 1手前: △24同歩 取らされる
687
- flag = false
688
- if hand_log = executor.container.hand_logs[-1]
689
- if s = hand_log&.move_hand&.soldier
690
- flag = (s.place.x == x && s.place.y.value == y2 && s.piece.key == :pawn && !s.promoted && s.location != soldier.location)
691
- end
692
- end
693
- unless flag
694
- throw :skip
695
- end
696
-
697
- # 2手前: ▲24歩(25) 突き
698
- flag = false
699
- if hand_log = executor.container.hand_logs[-2]
700
- if s = hand_log&.move_hand&.soldier # 最初を突き捨てとするため hand ではなく move_hand にすること
701
- flag = (s.place.x == x && s.place.y.value == y2 && s.piece.key == :pawn && !s.promoted && s.location == soldier.location)
702
- end
703
- end
704
- unless flag
705
- throw :skip
706
- end
707
- },
708
- },
709
-
710
- {
711
- key: "連打の歩",
712
- logic_desc: "",
713
- verify_process: proc {
714
- # 0手前: ▲25歩打 継ぎ歩 したらここに来る
715
-
716
- soldier = executor.hand.soldier
717
- x = soldier.place.x
718
- y = soldier.place.y
719
- y2 = y.value - soldier.location.value_sign # 24歩のY座標(整数値)
720
-
721
- # 1手前: △24同歩 取らされる
722
- flag = false
723
- if hand_log = executor.container.hand_logs[-1]
724
- if s = hand_log&.move_hand&.soldier
725
- flag = (s.place.x == x && s.place.y.value == y2 && s.location != soldier.location)
726
- end
727
- end
728
- unless flag
729
- throw :skip
730
- end
731
-
732
- # 2手前: ▲24歩打
733
- flag = false
734
- if hand_log = executor.container.hand_logs[-2]
735
- if s = hand_log&.drop_hand&.soldier
736
- flag = (s.place.x == x && s.place.y.value == y2 && s.location == soldier.location)
737
- end
738
- end
739
- unless flag
740
- throw :skip
741
- end
742
- },
743
- },
744
-
745
- {
746
- key: "継ぎ桂",
747
- logic_desc: "打った桂の2つ後ろの左右のどちらかに自分の桂がある",
748
- verify_process: proc {
749
- soldier = executor.hand.soldier
750
- place = soldier.place
751
- retv = LR.any? do |x|
752
- v = Place.lookup([place.x.value + x, place.y.value + soldier.location.value_sign * 2])
753
- if s = surface[v]
754
- s.piece.key == :knight && !s.promoted && s.location == soldier.location
755
- end
756
- end
757
- unless retv
758
- throw :skip
759
- end
760
- },
761
- },
762
-
763
- {
764
- key: "入玉",
765
- logic_desc: "玉が移動して上のスペースが3つの状態から2つの状態になった",
766
- verify_process: proc {
767
- soldier = executor.hand.soldier
768
- if soldier.top_spaces != Dimension::PlaceY.promotable_depth - 1
769
- throw :skip
770
- end
771
-
772
- origin_soldier = executor.hand.origin_soldier
773
- if origin_soldier.top_spaces != Dimension::PlaceY.promotable_depth
774
- throw :skip
775
- end
776
-
777
- # ここで相手を見て、相手も入玉していたら、次のように相入玉とする方法もあるが
778
- # player.skill_set.note_infos << Analysis::NoteInfo["相入玉"]
779
- # それでなくてもここは処理が重いのでやらない
780
- # formatter.container_run_once の方で、最後にチェックしている
781
- },
782
- },
783
-
784
- {
785
- key: "角不成",
786
- logic_desc: "相手陣地に入るときと出るときの両方チェックする",
787
- verify_process: proc {
788
- unless executor.hand.origin_soldier.next_promotable?(executor.soldier.place)
789
- throw :skip
790
- end
791
- },
792
- },
793
-
794
- {
795
- key: "飛車不成",
796
- logic_desc: "角不成と同じ方法でよい",
797
- verify_process: proc {
798
- unless executor.hand.origin_soldier.next_promotable?(executor.soldier.place)
799
- throw :skip
800
- end
801
- },
802
- },
803
- ]
804
- end
805
- end
806
- end
807
- # ~> -:16:in `<class:TechniqueMatcherInfo>': uninitialized constant Bioshogi::Analysis::TechniqueMatcherInfo::ApplicationMemoryRecord (NameError)
808
- # ~> from -:5:in `<module:Analysis>'
809
- # ~> from -:4:in `<module:Bioshogi>'
810
- # ~> from -:3:in `<main>'