bioshogi 0.0.14 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (282) hide show
  1. checksums.yaml +4 -4
  2. data/.dumbjump +4 -0
  3. data/A/342/206/222B/342/206/222C/346/210/246/346/263/225.txt +2 -2
  4. data/Gemfile.lock +1 -1
  5. data/README.org +3 -3
  6. data/lib/bioshogi/ai/brain.rb +6 -6
  7. data/lib/bioshogi/analysis/analyzer.rb +66 -8
  8. data/lib/bioshogi/analysis/analyzer_mod.rb +2 -9
  9. data/lib/bioshogi/analysis/attack_info.rb +231 -227
  10. data/lib/bioshogi/analysis/{tech_accessor.rb → basic_accessor.rb} +4 -4
  11. data/lib/bioshogi/analysis/board_piller_methods.rb +9 -9
  12. data/lib/bioshogi/analysis/defense_info.rb +132 -132
  13. data/lib/bioshogi/analysis/file_normalizer.rb +1 -1
  14. data/lib/bioshogi/analysis/frequency.rb +368 -311
  15. data/lib/bioshogi/analysis/note_info.rb +6 -6
  16. data/lib/bioshogi/analysis/rocket_analyzer.rb +45 -58
  17. data/lib/bioshogi/analysis/shape_info.rb +73 -19
  18. data/lib/bioshogi/analysis/style_accessor.rb +22 -19
  19. data/lib/bioshogi/analysis/tactic_hit_turn_table.rb +8 -3
  20. data/lib/bioshogi/analysis/tactic_hit_turn_table_generator.rb +15 -14
  21. data/lib/bioshogi/analysis/tactic_info.rb +2 -2
  22. data/lib/bioshogi/analysis/technique_info.rb +3 -4
  23. data/lib/bioshogi/analysis/technique_verify_info.rb +627 -0
  24. 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
  25. 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 +4 -0
  26. data/lib/bioshogi/analysis//345/202/231/350/200/203//345/257/276/347/251/264/347/206/212.kif +3 -2
  27. data/lib/bioshogi/analysis//345/202/231/350/200/203//346/214/201/344/271/205/346/210/246.kif +2 -2
  28. data/lib/bioshogi/analysis//345/202/231/350/200/203//347/251/264/347/206/212.kif +3 -2
  29. 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
  30. data/lib/bioshogi/analysis//345/202/231/350/200/203//350/203/214/346/260/264/343/201/256/351/231/243.kif +7 -3
  31. data/lib/bioshogi/analysis//345/202/231/350/200/203//351/225/267/346/211/213/346/225/260.kif +1 -2
  32. data/lib/bioshogi/analysis//345/202/231/350/200/203//351/247/222/346/237/261.kif +4 -2
  33. 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
  34. 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 +4 -2
  35. 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 +1 -1
  36. 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 +1 -1
  37. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/202/253/343/202/277/345/233/262/343/201/204.kif +3 -1
  38. 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
  39. 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 +1 -1
  40. 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 -1
  41. 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 +6 -3
  42. 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
  43. data/lib/bioshogi/analysis//345/233/262/343/201/204//344/270/255/344/275/217/343/201/276/343/201/204.kif +2 -0
  44. 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
  45. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/217/263/347/237/242/345/200/211.kif +1 -1
  46. 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
  47. 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
  48. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/233/233/346/236/232/351/212/200/345/206/240.kif +2 -2
  49. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/233/233/346/256/265/347/253/257/347/216/211.kif +3 -3
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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 +2 -1
  57. 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
  58. 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 +4 -2
  59. 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 +1 -1
  60. 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
  61. 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 +1 -1
  62. 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
  63. 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 +4 -1
  64. 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 +5 -2
  65. 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
  66. 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
  67. 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
  68. data/lib/bioshogi/analysis//345/233/262/343/201/204//346/226/207/351/216/256/345/233/262/343/201/204.kif +1 -1
  69. 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
  70. 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
  71. 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
  72. 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
  73. 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
  74. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/211/207/347/251/264/347/206/212.kif +1 -1
  75. 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
  76. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/256/261/345/205/245/343/202/212/345/250/230.kif +2 -2
  77. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/267/217/347/237/242/345/200/211.kif +1 -1
  78. 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
  79. data/lib/bioshogi/analysis//345/233/262/343/201/204//350/217/212/346/260/264/347/237/242/345/200/211.kif +1 -1
  80. data/lib/bioshogi/analysis//345/233/262/343/201/204//350/217/261/347/237/242/345/200/211.kif +1 -1
  81. 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
  82. data/lib/bioshogi/analysis//345/233/262/343/201/204//350/243/276/345/233/272/343/202/201.kif +1 -1
  83. data/lib/bioshogi/analysis//345/233/262/343/201/204//350/247/222/347/237/242/345/200/211.kif +1 -1
  84. 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
  85. 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
  86. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/345/244/232/344/274/235.kif +1 -1
  87. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/347/204/241/345/217/214.kif +3 -2
  88. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/347/233/276/345/233/262/343/201/204.kif +1 -1
  89. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/347/276/216/346/277/203.kif +2 -0
  90. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/212/200/345/206/240/347/251/264/347/206/212.kif +1 -1
  91. 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
  92. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/212/200/347/276/216/346/277/203.kif +2 -2
  93. 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
  94. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/253/230/347/237/242/345/200/211.kif +1 -1
  95. 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
  96. 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 +2 -1
  97. 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
  98. 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
  99. data/lib/bioshogi/analysis//346/210/246/346/263/225/5/346/211/213/347/210/206/345/274/276.kif +5 -1
  100. 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
  101. data/lib/bioshogi/analysis//346/210/246/346/263/225/6/347/255/213/344/275/215/345/217/226/343/202/212.kif +1 -1
  102. 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 +5 -2
  103. 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 +5 -3
  104. 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 +1 -1
  105. 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
  106. 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
  107. 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
  108. 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 +3 -2
  109. 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 +1 -1
  110. 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 +1 -1
  111. 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
  112. 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
  113. 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 +4 -2
  114. 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 +1 -1
  115. 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
  116. 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 +6 -2
  117. 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
  118. 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
  119. 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 +6 -3
  120. 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 +3 -2
  121. 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 +1 -1
  122. 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 +1 -1
  123. 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
  124. 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
  125. 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 +3 -1
  126. 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 +4 -3
  127. 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 +6 -2
  128. 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 +1 -1
  129. 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
  130. 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 +1 -1
  131. 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
  132. 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 +1 -1
  133. 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 +2 -2
  134. 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
  135. 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 +5 -3
  136. 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 +2 -1
  137. 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 +6 -3
  138. 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
  139. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/211/346/256/265/345/217/263/347/216/211.kif +3 -2
  140. 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
  141. 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 +1 -1
  142. 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 +2 -1
  143. 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 +2 -1
  144. 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
  145. 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
  146. 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
  147. 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 +3 -2
  148. 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
  149. 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
  150. 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
  151. 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 +1 -1
  152. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/213/207/346/260/227/346/265/201.kif +1 -1
  153. 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 +1 -1
  154. 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
  155. 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 +1 -1
  156. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/217/263/347/216/211.kif +1 -1
  157. 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
  158. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/233/233/346/211/213/350/247/222.kif +1 -1
  159. 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 +3 -2
  160. 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 +2 -1
  161. 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
  162. 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
  163. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/254/211/351/207/216/346/265/201.kif +4 -1
  164. 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 +1 -2
  165. 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 +6 -3
  166. 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 +2 -3
  167. 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
  168. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/261/261/347/224/260/345/256/232/350/267/241.kif +1 -1
  169. 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 +3 -2
  170. 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
  171. 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
  172. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/226/260/345/254/211/351/207/216/346/265/201.kif +2 -0
  173. 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 +3 -1
  174. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/226/260/347/261/263/351/225/267/347/216/211.kif +1 -1
  175. 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
  176. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/234/250/346/235/221/345/256/232/350/267/241.kif +5 -3
  177. 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
  178. 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 +2 -1
  179. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/243/222/347/216/211.kif +1 -1
  180. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/243/222/351/207/221.kif +1 -1
  181. 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 +2 -2
  182. 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 +2 -2
  183. 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
  184. 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
  185. 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
  186. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/216/211/351/240/255/351/212/200.kif +3 -1
  187. 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
  188. 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 +2 -0
  189. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/234/237/351/203/250/346/265/201.kif +5 -3
  190. 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 +3 -1
  191. 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
  192. 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
  193. 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
  194. 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
  195. 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
  196. 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
  197. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/255/213/351/201/225/343/201/204/350/247/222.kif +3 -2
  198. 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 +8 -2
  199. 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 +2 -1
  200. 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 +3 -1
  201. 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
  202. 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
  203. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/204/207/343/202/267/343/202/271/343/203/206/343/203/240.kif +1 -1
  204. 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
  205. 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 +5 -4
  206. 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 +5 -3
  207. 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 +4 -2
  208. 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
  209. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/217/234/343/200/205/346/262/263/346/265/201/342/226/2634/345/233/233/350/247/222.kif +1 -1
  210. 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 +2 -1
  211. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/242/226/351/243/233/350/273/212.kif +7 -2
  212. 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
  213. 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 +5 -2
  214. 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 +4 -1
  215. 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
  216. 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
  217. 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
  218. 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
  219. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/266/205/346/200/245/346/210/246.kif +1 -1
  220. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/200/206/346/243/222/351/212/200.kif +1 -1
  221. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/201/240/345/261/261/346/265/201.kif +3 -2
  222. 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
  223. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/207/221/346/262/242/346/265/201.kif +1 -1
  224. 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 +1 -1
  225. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/207/221/351/212/200/346/251/213.kif +2 -2
  226. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/212/200/351/233/262/351/233/200.kif +1 -1
  227. 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
  228. 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
  229. 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 +3 -2
  230. 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
  231. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/233/200/345/210/272/343/201/227.kif +2 -2
  232. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/233/201/346/234/250/345/217/263/347/216/211.kif +3 -2
  233. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/242/250/350/273/212.kif +1 -1
  234. 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
  235. 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
  236. 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
  237. 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
  238. 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
  239. 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
  240. 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
  241. 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
  242. 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
  243. 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
  244. data/lib/bioshogi/analysis.rb +4 -0
  245. data/lib/bioshogi/board/csa_formatter.rb +2 -2
  246. data/lib/bioshogi/board/kakinoki_formatter.rb +5 -5
  247. data/lib/bioshogi/board/reader_methods.rb +8 -4
  248. data/lib/bioshogi/board_parser/kakinoki_board_parser.rb +2 -2
  249. data/lib/bioshogi/container/checkmate_yomiage.rb +1 -1
  250. data/lib/bioshogi/dimension/base.rb +49 -10
  251. data/lib/bioshogi/dimension/column.rb +131 -0
  252. data/lib/bioshogi/dimension/module_methods.rb +19 -20
  253. data/lib/bioshogi/dimension/row.rb +128 -0
  254. data/lib/bioshogi/formatter/sugatayaki_validator.rb +1 -1
  255. data/lib/bioshogi/hand/drop.rb +1 -1
  256. data/lib/bioshogi/hand/move.rb +6 -6
  257. data/lib/bioshogi/input_adapter/ki2_adapter.rb +10 -10
  258. data/lib/bioshogi/input_adapter/shared_validation.rb +1 -1
  259. data/lib/bioshogi/location.rb +22 -2
  260. data/lib/bioshogi/official_formatter.rb +37 -37
  261. data/lib/bioshogi/order_info.rb +5 -3
  262. data/lib/bioshogi/piece/piece_vector.rb +16 -10
  263. data/lib/bioshogi/piece.rb +2 -2
  264. data/lib/bioshogi/place.rb +155 -62
  265. data/lib/bioshogi/player/soldier_methods.rb +2 -2
  266. data/lib/bioshogi/screen_image/core_methods.rb +2 -2
  267. data/lib/bioshogi/screen_image/pentagon.rb +2 -2
  268. data/lib/bioshogi/screen_image/soldier_methods.rb +1 -1
  269. data/lib/bioshogi/screen_image/stand.rb +5 -5
  270. data/lib/bioshogi/soldier/technique_matcher_methods.rb +51 -0
  271. data/lib/bioshogi/soldier.rb +14 -79
  272. data/lib/bioshogi/soldier_walker.rb +1 -1
  273. data/lib/bioshogi/turn_info.rb +2 -2
  274. data/lib/bioshogi/v/preset_vectors.rb +129 -0
  275. data/lib/bioshogi/v.rb +4 -2
  276. data/lib/bioshogi/version.rb +1 -1
  277. data/lib/bioshogi.rb +2 -0
  278. data//347/275/256/343/201/215/346/217/233/343/201/210/346/216/250/345/245/250.txt +1 -1
  279. metadata +14 -7
  280. data/lib/bioshogi/analysis/technique_matcher_info.rb +0 -810
  281. data/lib/bioshogi/dimension/place_x.rb +0 -27
  282. data/lib/bioshogi/dimension/place_y.rb +0 -57
@@ -7,14 +7,14 @@ module Bioshogi
7
7
  memory_record [
8
8
  # 戦法から引っ越し
9
9
 
10
- { key: "角交換型", parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: true, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: 1, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: "角", op_hold_piece_eq: nil, group_key: nil, add_to_self: nil, add_to_opponent: "角交換型", technique_matcher_info: nil, },
11
- { key: "手得角交換型", parent: "角交換型", related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, op_hold_piece_eq: nil, group_key: nil, add_to_self: nil, add_to_opponent: nil, technique_matcher_info: nil, },
12
- { key: "手損角交換型", parent: "角交換型", related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: :sente, not_have_pawn: nil, kill_only: true, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: "角", op_hold_piece_eq: nil, group_key: nil, add_to_self: nil, add_to_opponent: "手得角交換型", technique_matcher_info: nil, },
10
+ { key: "角交換型", parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: true, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: 1, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: "角", op_hold_piece_eq: nil, group_key: nil, add_to_self: nil, add_to_opponent: "角交換型", technique_verify_info: nil, },
11
+ { key: "手得角交換型", parent: "角交換型", related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, op_hold_piece_eq: nil, group_key: nil, add_to_self: nil, add_to_opponent: nil, technique_verify_info: nil, },
12
+ { key: "手損角交換型", parent: "角交換型", related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: :order_first, not_have_pawn: nil, kill_only: true, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: "角", op_hold_piece_eq: nil, group_key: nil, add_to_self: nil, add_to_opponent: "手得角交換型", technique_verify_info: nil, },
13
13
 
14
14
  # shape_info あり
15
15
 
16
- { key: "矢倉旧24手組", parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: 24, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: 0, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, op_hold_piece_eq: nil, group_key: nil, add_to_self: nil, add_to_opponent: "矢倉旧24手組", technique_matcher_info: nil, },
17
- { key: "矢倉新24手組", parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: 24, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: 0, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, op_hold_piece_eq: nil, group_key: nil, add_to_self: nil, add_to_opponent: "矢倉新24手組", technique_matcher_info: nil, },
16
+ { key: "矢倉旧24手組", parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: 24, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: 0, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, op_hold_piece_eq: nil, group_key: nil, add_to_self: nil, add_to_opponent: "矢倉旧24手組", technique_verify_info: nil, },
17
+ { key: "矢倉新24手組", parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: 24, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: 0, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, op_hold_piece_eq: nil, group_key: nil, add_to_self: nil, add_to_opponent: "矢倉新24手組", technique_verify_info: nil, },
18
18
 
19
19
  # パラメータがないものはあとで埋めるもの
20
20
 
@@ -93,7 +93,7 @@ module Bioshogi
93
93
  class_attribute :human_name, default: "備考"
94
94
 
95
95
  include ShapeInfoRelation
96
- include TechAccessor
96
+ include BasicAccessor
97
97
  include StyleAccessor
98
98
  end
99
99
  end
@@ -5,48 +5,45 @@ module Bioshogi
5
5
  class RocketAnalyzer
6
6
  DEBUG = false
7
7
 
8
- attr_reader :analyzer
9
- attr_reader :soldier
10
- attr_reader :drop_hand
11
-
12
- delegate :executor, to: :analyzer
8
+ delegate *[
9
+ :executor,
10
+ :soldier,
11
+ :board,
12
+ :drop_hand,
13
+ :opponent?,
14
+ :verify_if,
15
+ :skip_if,
16
+ ], to: :@analyzer
13
17
 
14
18
  def initialize(analyzer)
15
19
  @analyzer = analyzer
16
20
  end
17
21
 
18
22
  def call
19
- unless corresponding_piece?
20
- return
21
- end
23
+ catch :skip do
24
+ # 1. 「飛龍」が来たか「香」を打った
25
+ verify_if { trigger? }
22
26
 
23
- investigate
24
- count = @rook_count + @lance_count
27
+ investigate
25
28
 
26
- # 「飛龍香」が縦に1つしかないので除外する
27
- if count <= 1
28
- return
29
- end
29
+ # 「飛龍香」が縦に2つ以上あること
30
+ verify_if { count_all >= 2 }
30
31
 
31
- # 「飛飛」並びは除外する
32
- if @rook_count == 2 && @lance_count == 0
33
- return
34
- end
32
+ # 「飛飛」並びは除外する
33
+ skip_if { @rook_count == 2 && @lance_count == 0 }
35
34
 
36
- # 飛の下に香がある形は除外する
37
- # [@lance_y, @rook_y, @lance_y <=> @rook_y, soldier.location.value_sign] # => [3, 4, -1, 1] (先手)
38
- # [@lance_y, @rook_y, @lance_y <=> @rook_y, soldier.location.value_sign] # => [5, 4, 1, -1] (後手)
39
- # つまり ((@lance_y <=> @rook_y) + soldier.location.value_sign).zero? のとき飛車の上に香車がいる
40
- if @rook_count == 1 && @lance_count == 1
41
- if ((@lance_y <=> @rook_y) + soldier.location.value_sign).nonzero?
42
- return
35
+ # 飛の下に香がある形は除外する
36
+ # [@lance, @rook, @lance <=> @rook, soldier.location.sign_dir] # => [3, 4, -1, 1] (先手)
37
+ # [@lance, @rook, @lance <=> @rook, soldier.location.sign_dir] # => [5, 4, 1, -1] (後手)
38
+ # つまり ((@lance <=> @rook) + soldier.location.sign_dir).zero? のとき飛車の上に香車がいる
39
+ skip_if do
40
+ if @rook_count == 1 && @lance_count == 1
41
+ ((@lance.row.value <=> @rook.row.value) + soldier.location.sign_dir).nonzero?
42
+ end
43
43
  end
44
- end
45
44
 
46
- if count >= 2
47
- # analyzer.skill_push(NoteInfo[:"ロケット"])
48
- if technique_info = TechniqueInfo[:"#{count}段ロケット"] # 7段以上のロケットは除外する
49
- analyzer.skill_push(technique_info)
45
+ if e = TechniqueInfo[:"#{count_all}段ロケット"] # 7段以上のロケットは除外する
46
+ @analyzer.skill_push(e)
50
47
  end
51
48
  end
52
49
  end
@@ -54,41 +51,39 @@ module Bioshogi
54
51
  private
55
52
 
56
53
  def investigate
57
- @rook_y = nil # 飛車のY座標
58
- @lance_y = nil # 香車のY座標
54
+ @rook = nil # 飛車の座標
55
+ @lance = nil # 香車の座標
59
56
 
60
- @rook_count = 0 # 発見した飛車の個数
61
- @lance_count = 0 # 発見した香車の個数
57
+ @rook_count = 0 # 発見した飛車の個数
58
+ @lance_count = 0 # 発見した香車の個数
62
59
 
63
60
  # いま打った駒が飛車か香車かで初期値を調整する
64
61
 
65
62
  if soldier.piece.key == :rook
66
63
  @rook_count += 1
67
- @rook_y = soldier.place.y.value
64
+ @rook = soldier.place
68
65
  else
69
66
  @lance_count += 1
70
- @lance_y = soldier.place.y.value
67
+ @lance = soldier.place
71
68
  end
72
69
 
73
70
  # 打った位置から上下に移動して飛車と香車の位置と個数を調べる
74
71
 
75
- [-1, 1].each do |sign| # -1:↑ 1:↓
72
+ [:up, :down].each do |up|
76
73
  (1..).each do |y|
77
- place = Place.lookup([soldier.place.x.value, soldier.place.y.value + (y * soldier.location.value_sign * sign)])
78
- unless place
79
- break # 盤面の外
80
- end
81
- if s = analyzer.surface[place]
82
- if s.location != soldier.location
74
+ v = soldier.relative_move_to(up, magnification: y)
75
+ v or break # 盤面の外
76
+ if s = @analyzer.board[v]
77
+ if opponent?(s)
83
78
  break # 相手の駒
84
79
  end
85
80
  case
86
81
  when s.piece.key == :rook # 「飛」「龍」
87
82
  @rook_count += 1
88
- @rook_y = place.y.value
89
- when s.piece.key == :lance && !s.promoted # 「香」
83
+ @rook = v
84
+ when s.piece.key == :lance && s.normal? # 「香」
90
85
  @lance_count += 1
91
- @lance_y = place.y.value
86
+ @lance = v
92
87
  else
93
88
  break # 自分の「飛龍香」以外
94
89
  end
@@ -97,20 +92,12 @@ module Bioshogi
97
92
  end
98
93
  end
99
94
 
100
- def corresponding_piece?
101
- soldier.piece.key == :rook || (soldier.piece.key == :lance && !soldier.promoted && drop_hand)
102
- end
103
-
104
- def surface
105
- analyzer.surface
106
- end
107
-
108
- def soldier
109
- executor.hand.soldier
95
+ def trigger?
96
+ soldier.piece.key == :rook || (soldier.piece.key == :lance && soldier.normal? && drop_hand) # 「飛龍」が来たか「香」を打った
110
97
  end
111
98
 
112
- def drop_hand
113
- executor.drop_hand
99
+ def count_all
100
+ @rook_count + @lance_count
114
101
  end
115
102
  end
116
103
  end
@@ -2434,11 +2434,12 @@ EOT
2434
2434
  },
2435
2435
  {
2436
2436
  key: "都成流△3一金",
2437
+ description: "本人の解説動画で先手でも手番調整で使えるとのことなので後手番専用としてはいけない",
2437
2438
  body: <<~EOT,
2438
2439
  +---------------------------+
2439
2440
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
2440
2441
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
2441
- | ・ ・ ・ ・ ・ ・ ・ ・|
2442
+ | ・ ・ ・ ・ ・ ・v歩 ・ ・|
2442
2443
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
2443
2444
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
2444
2445
  | ・v飛 歩 ・ ・ ・ ・ ・ ・|
@@ -2635,6 +2636,24 @@ EOT
2635
2636
  +---------------------------+
2636
2637
  EOT
2637
2638
  },
2639
+ {
2640
+ key: "ゴリ違い角",
2641
+ description: "お互いに角を取り合った局面で先手は26歩の1回で2筋の歩をぶつけられる",
2642
+ body: <<~EOT,
2643
+ +---------------------------+
2644
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
2645
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
2646
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
2647
+ | ・ ・ ・ ・ ・ ・ ・v歩 ・|
2648
+ | ・ ・ ・v角 ・ ・v歩 角 ・|
2649
+ | ・ ・ ・!歩 ・ ・ ・ ・ ・|
2650
+ | ・ ・ 金 ・ ・ ・ ・ ・ ・|
2651
+ | ・ ・ ・ ・ ・ ・ ・ 飛 ・|
2652
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
2653
+ +---------------------------+
2654
+ EOT
2655
+ },
2656
+
2638
2657
  {
2639
2658
  key: "木村定跡",
2640
2659
  body: <<~EOT,
@@ -3515,7 +3534,7 @@ EOT
3515
3534
  },
3516
3535
 
3517
3536
  {
3518
- key: "戸部流4→3戦法",
3537
+ key: "戸辺流4→3戦法",
3519
3538
  description: "後手番で早石田に組む戦法で、▲65角打を避けるためにいったん4筋で歩を守り、その間に玉を動かし、3筋に移動する。35歩を後回しにするのが重要",
3520
3539
  body: <<~EOT,
3521
3540
  +---------------------------+
@@ -3638,6 +3657,23 @@ EOT
3638
3657
  EOT
3639
3658
  },
3640
3659
 
3660
+ {
3661
+ key: "鬼六流どっかん飛車",
3662
+ body: <<~EOT,
3663
+ +---------------------------+
3664
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3665
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3666
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3667
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3668
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3669
+ | ・v飛 ・ ・ ・ ・ ・ ・ ・|
3670
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3671
+ | ・!飛 ・ ・ ★ 銀 金 玉 ・|
3672
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3673
+ +---------------------------+
3674
+ EOT
3675
+ },
3676
+
3641
3677
  {
3642
3678
  key: "向かい飛車",
3643
3679
  body: <<~EOT,
@@ -3986,6 +4022,24 @@ EOT
3986
4022
  EOT
3987
4023
  },
3988
4024
 
4025
+ {
4026
+ key: "錆刀戦法",
4027
+ description: "74歩とさせて37歩としていない状態で28角打とする",
4028
+ body: <<~EOT,
4029
+ +---------------------------+
4030
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
4031
+ | ・v飛 ・ ・ ・ ・ ・ ・ ・|
4032
+ | ・ ・ ○ ・ ・ ・ ・ ・ ・|
4033
+ | ・ ・v歩 ○ ・ ・ ・ ・ ・|
4034
+ | ・ ・ ・ 歩 ○ ・ ・ ・ ・|
4035
+ | ・ ・ 歩 ・ 歩 ○ ・ ・ ・|
4036
+ | ・ ・ 銀 ・ 銀 ・ 歩 ・ ・|
4037
+ | ・ ・ ・ 飛 ・ ・ 玉!角 ・|
4038
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
4039
+ +---------------------------+
4040
+ EOT
4041
+ },
4042
+
3989
4043
  {
3990
4044
  key: "幻想四間飛車",
3991
4045
  body: <<~EOT,
@@ -5513,23 +5567,23 @@ EOT
5513
5567
  +---------------------------+
5514
5568
  EOT
5515
5569
  },
5516
- {
5517
- key: "遠見の角",
5518
- body: <<~EOT,
5519
- 9 8 7 6 5 4 3 2 1
5520
- +---------------------------+
5521
- | ・ ・ ・ ・ ・ ・ ・ ・ ・|一
5522
- | ・ ・ ・ ・ ・ ・ ・ ・ ・|二
5523
- | ・ ・ ・ ・ ・ ・ ・ ・ ・|三
5524
- | ・ ・ ・ ・ ○ ・ ・ ・ ・|四
5525
- | ・ ・ ・ ・ ・ ○ ・ ・ ・|五
5526
- | ・ ・ ・ ・ ・ ・ ○ ・ ・|六
5527
- | ・ ・ ・ ・ ・ ・ ・ ○ ・|七
5528
- | ・ ・ ・ ・ ・ ・ ・ ・!角|八
5529
- | ・ ・ ・ ・ ・ ・ ・ ・ ・|九
5530
- +---------------------------+
5531
- EOT
5532
- },
5570
+ # {
5571
+ # key: "遠見の角",
5572
+ # body: <<~EOT,
5573
+ # 9 8 7 6 5 4 3 2 1
5574
+ # +---------------------------+
5575
+ # | ・ ・ ・ ・ ・ ・ ・ ・ ・|一
5576
+ # | ・ ・ ・ ・ ・ ・ ・ ・ ・|二
5577
+ # | ・ ・ ・ ・ ・ ・ ・ ・ ・|三
5578
+ # | ・ ・ ・ ・ ○ ・ ・ ・ ・|四
5579
+ # | ・ ・ ・ ・ ・ ○ ・ ・ ・|五
5580
+ # | ・ ・ ・ ・ ・ ・ ○ ・ ・|六
5581
+ # | ・ ・ ・ ・ ・ ・ ・ ○ ・|七
5582
+ # | ・ ・ ・ ・ ・ ・ ・ ・!角|八
5583
+ # | ・ ・ ・ ・ ・ ・ ・ ・ ・|九
5584
+ # +---------------------------+
5585
+ # EOT
5586
+ # },
5533
5587
  {
5534
5588
  key: "突き違いの歩",
5535
5589
  body: <<~EOT,
@@ -4,41 +4,44 @@ module Bioshogi
4
4
  module Analysis
5
5
  concern :StyleAccessor do
6
6
  class_methods do
7
- def style_reject_keys
8
- # [:"力戦", :"居玉"].to_set
9
- [].to_set
10
- end
11
-
7
+ # - 頻度0件の戦法が多いため0件の戦法は初期値「変態」としてテーブルには含めない
8
+ # - 1件でも存在するものだけで4エリアで分けたテーブルを作る
9
+ # - そこに含まれなかったものは「変態」とする
10
+ # - こうすることでほとんどが王道になってしまうのを防ぐことができる
12
11
  def styles_hash
13
12
  @styles_hash ||= yield_self do
14
- list = values.reject { |e| style_reject_keys.include?(e.key) }
15
- # list = list.take(7)
16
- list = list.sort_by { |e| -e.frequency }
17
- backets = Array.new(list.size, StyleInfo.count.pred) # 正確に四分割できないため「変態」で埋める
18
- step = list.size / StyleInfo.count
19
- StyleInfo.count.pred.times do |i|
13
+ # 分布数降順の戦法配列を準備する
14
+
15
+ av = values
16
+ av = av.find_all { |e| e.frequency >= 1 } # 1件以上のものに絞る
17
+ av = av.sort_by { |e| -e.frequency } # 分布数降順とする
18
+
19
+ # テーブル作成
20
+
21
+ backets = Array.new(av.size, StyleInfo.count.pred) # 正確に四分割できないため「変態」で埋める
22
+ step = av.size / StyleInfo.count # 1区分の幅
23
+ StyleInfo.count.pred.times do |i| # i = 0, 1, 2
20
24
  range = (i * step)...(i.next * step)
21
- backets.fill(i, range) # 最初の3区分を 0, 1, 2, で埋める
25
+ backets.fill(i, range) # 最初の3区分を 0, 1, 2 で埋める
22
26
  end
23
- list.each_with_object({}).with_index do |(e, m), i|
27
+
28
+ # 分布数降順の戦法に対応するスタイルを割り当てる
29
+
30
+ av.each_with_object({}).with_index do |(e, m), i|
24
31
  m[e.key] = StyleInfo.fetch(backets[i])
25
32
  end
26
33
  end
27
34
  end
28
35
  end
29
36
 
30
- # 王道 or 変態
31
- # 新しい戦法を追加したばかりのときはテーブルにない場合がある? → 必ずある
32
- # なぜなら最初に新しい戦法を追加するのは bioshogi 側なため。
33
- # したがってない場合を心配する必要はない。
34
37
  def style_info
35
- self.class.styles_hash.fetch(key)
38
+ self.class.styles_hash[key] || StyleInfo.values.last
36
39
  end
37
40
 
38
41
  # 使用数
39
42
  # これは Frequency にない場合もあるため、ない場合に 0 を返すのは正しい。
40
43
  def frequency
41
- Frequency[key] || 0
44
+ Frequency.dig(tactic_key, key) || 0
42
45
  end
43
46
  end
44
47
  end
@@ -1,5 +1,6 @@
1
1
  # -*- frozen_string_literal: true -*-
2
2
  # /Users/ikeda/src/bioshogi/lib/bioshogi/analysis/tactic_hit_turn_table_generator.rb から生成しているので編集するべからず
3
+ # 手数が nil のものは最後に判定してるため成立した手数を正確に知ることができない
3
4
  module Bioshogi
4
5
  module Analysis
5
6
  TacticHitTurnTable = {
@@ -31,6 +32,7 @@ module Bioshogi
31
32
  :"6段ロケット" => 1,
32
33
  :"たすきの角" => 1,
33
34
  :"たすきの銀" => 1,
35
+ :"たたきの歩" => 1,
34
36
  :"ふんどしの桂" => 1,
35
37
  :"パンツを脱ぐ" => 1,
36
38
  :"一間竜" => 1,
@@ -47,10 +49,8 @@ module Bioshogi
47
49
  :"歩頭の桂" => 1,
48
50
  :"田楽刺し" => 1,
49
51
  :"突き違いの歩" => 1,
50
- :"端玉には端歩" => 1,
51
52
  :"継ぎ桂" => 1,
52
53
  :"腹銀" => 1,
53
- :"遠見の角" => 1,
54
54
  :"金底の歩" => 1,
55
55
  :"銀ばさみ" => 1,
56
56
  :"2手目△3ニ飛戦法" => 2,
@@ -60,6 +60,8 @@ module Bioshogi
60
60
  :"パックマン戦法" => 2,
61
61
  :"嬉野流" => 2,
62
62
  :"新米長玉" => 2,
63
+ :"端玉には端歩" => 2,
64
+ :"遠見の角" => 2,
63
65
  :"阪田流2手目△9四歩" => 2,
64
66
  :"こびん攻め" => 3,
65
67
  :"メイドシステム" => 3,
@@ -122,7 +124,7 @@ module Bioshogi
122
124
  :"△3三飛戦法" => 10,
123
125
  :"ダイレクト向かい飛車" => 10,
124
126
  :"一間飛車" => 10,
125
- :"戸部流4→3戦法" => 10,
127
+ :"戸辺流4→3戦法" => 10,
126
128
  :"阪田流向かい飛車" => 10,
127
129
  :"ずれ美濃" => 11,
128
130
  :"エルモ囲い" => 11,
@@ -141,6 +143,7 @@ module Bioshogi
141
143
  :"英春流かまいたち戦法" => 12,
142
144
  :"菜々河流向かい飛車" => 12,
143
145
  :"カニ缶囲い" => 13,
146
+ :"ゴリ違い角" => 13,
144
147
  :"入玉" => 13,
145
148
  :"左山囲い" => 13,
146
149
  :"耀龍四間飛車" => 13,
@@ -206,6 +209,7 @@ module Bioshogi
206
209
  :"美濃囲い" => 19,
207
210
  :"舟囲いDX" => 19,
208
211
  :"角換わり早繰り銀" => 19,
212
+ :"鬼六流どっかん飛車" => 19,
209
213
  :"△3三金型早繰り銀" => 20,
210
214
  :"△4五角戦法" => 20,
211
215
  :"一間飛車穴熊" => 20,
@@ -312,6 +316,7 @@ module Bioshogi
312
316
  :"コーヤン流三間飛車" => 30,
313
317
  :"羽生流右玉" => 30,
314
318
  :"金多伝" => 30,
319
+ :"錆刀戦法" => 30,
315
320
  :"▲4五歩早仕掛け" => 31,
316
321
  :"オザワシステム" => 31,
317
322
  :"セメント囲い" => 31,
@@ -8,7 +8,6 @@ module Bioshogi
8
8
  end
9
9
 
10
10
  def call
11
- body = body_format(to_h.inspect)
12
11
  output_file.write(template % { body: body })
13
12
  if @options[:verbose]
14
13
  puts "write: #{output_file}"
@@ -16,10 +15,10 @@ module Bioshogi
16
15
  end
17
16
 
18
17
  def to_h
19
- list = Analysis::TacticInfo.all_elements.collect do |e|
18
+ av = Analysis::TacticInfo.all_elements.collect do |e|
20
19
  turn = nil
21
20
  e.main_reference_info.formatter.container.hand_logs.each.with_index do |hand_log, i|
22
- if hand_log.skill_set.flat_map { |e| e.flat_map(&:key) }.include?(e.key)
21
+ if hand_log.skill_set.has_skill?(e)
23
22
  turn = i.next
24
23
  break
25
24
  end
@@ -27,7 +26,18 @@ module Bioshogi
27
26
  [e, turn]
28
27
  end
29
28
 
30
- list.sort_by { |e, turn| [turn || 0, e.name] }.collect { |e, turn| [e.name, turn] }.to_h
29
+ av.sort_by { |e, turn| [turn || 0, e.name] }.collect { |e, turn| [e.name, turn] }.to_h
30
+ end
31
+
32
+ def body
33
+ str = to_h.inspect
34
+ str = str.gsub(/{/, "")
35
+ str = str.gsub(/}/, ",")
36
+ str = str.gsub(/\s*,\s*/, ",\n")
37
+ str = str.gsub(/^(?=")/, " " * 3)
38
+ str = str.gsub("=>", " => ")
39
+ str = str.gsub(/ "/, ':"')
40
+ str = str.rstrip
31
41
  end
32
42
 
33
43
  def output_file
@@ -38,6 +48,7 @@ module Bioshogi
38
48
  o = []
39
49
  o << "# -*- frozen_string_literal: true -*-"
40
50
  o << "# #{__FILE__} から生成しているので編集するべからず"
51
+ o << "# 手数が nil のものは最後に判定してるため成立した手数を正確に知ることができない"
41
52
  o << "module Bioshogi"
42
53
  o << " module Analysis"
43
54
  o << " TacticHitTurnTable = {"
@@ -47,16 +58,6 @@ module Bioshogi
47
58
  o << "end"
48
59
  o.join("\n") + "\n"
49
60
  end
50
-
51
- def body_format(str)
52
- str = str.gsub(/{/, "")
53
- str = str.gsub(/}/, ",")
54
- str = str.gsub(/\s*,\s*/, ",\n")
55
- str = str.gsub(/^(?=")/, " " * 3)
56
- str = str.gsub("=>", " => ")
57
- str = str.gsub(/ "/, ':"')
58
- str = str.rstrip
59
- end
60
61
  end
61
62
  end
62
63
  end
@@ -54,10 +54,10 @@ module Bioshogi
54
54
  ################################################################################
55
55
 
56
56
  # :PIECE_HASH_TABLE:
57
- # technique_matcher_info を持っている all_elements
57
+ # technique_verify_info を持っている all_elements
58
58
  def piece_hash_table
59
59
  @piece_hash_table ||= all_elements.each_with_object({}) do |e, m|
60
- if e.technique_matcher_info
60
+ if e.technique_verify_info
61
61
  Array.wrap(e.trigger_piece_key).each do |hv|
62
62
  piece_hash_table_keys_by(hv).each do |key|
63
63
  m[key] ||= []
@@ -13,7 +13,7 @@ module Bioshogi
13
13
 
14
14
  include ApplicationMemoryRecord
15
15
  memory_record [
16
- # { key: "たたきの歩", trigger_piece_key: { piece_key: :pawn, promoted: false, motion: :drop }, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
16
+ { key: "たたきの歩", trigger_piece_key: { piece_key: :pawn, promoted: false, motion: :drop }, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
17
17
  { key: "継ぎ歩", trigger_piece_key: { piece_key: :pawn, promoted: false, motion: :drop }, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
18
18
  { key: "連打の歩", trigger_piece_key: { piece_key: :pawn, promoted: false, motion: :drop }, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
19
19
  { key: "垂れ歩", trigger_piece_key: { piece_key: :pawn, promoted: false, motion: :drop }, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
@@ -36,10 +36,9 @@ module Bioshogi
36
36
  { key: "端玉には端歩", trigger_piece_key: { piece_key: :pawn, promoted: false, motion: :move }, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
37
37
  { key: "銀冠の小部屋", trigger_piece_key: nil, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
38
38
  { key: "幽霊角", trigger_piece_key: nil, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
39
- { key: "遠見の角", trigger_piece_key: nil, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: true, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
39
+ { key: "遠見の角", trigger_piece_key: { piece_key: :bishop, promoted: false, motion: :drop }, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
40
40
  { key: "突き違いの歩", trigger_piece_key: nil, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
41
41
  { key: "土下座の歩", trigger_piece_key: { piece_key: :pawn, promoted: false, motion: :drop }, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: nil, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: nil, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
42
- # { key: "土下座の歩", trigger_piece_key: nil, parent: nil, related_ancestors: nil, alternate_name: nil, alias_names: nil, turn_limit: nil, turn_eq: nil, order_key: nil, not_have_pawn: nil, kill_only: nil, drop_only: true, pawn_bishop_have_ok: nil, pawn_have_ok: nil, outbreak_skip: true, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
43
42
  { key: "2段ロケット", parent: nil, },
44
43
  { key: "3段ロケット", parent: "2段ロケット", },
45
44
  { key: "4段ロケット", parent: "3段ロケット", },
@@ -50,7 +49,7 @@ module Bioshogi
50
49
  class_attribute :human_name, default: "手筋"
51
50
 
52
51
  include ShapeInfoRelation
53
- include TechAccessor
52
+ include BasicAccessor
54
53
  include StyleAccessor
55
54
 
56
55
  class << self