bioshogi 0.0.15 → 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 (506) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.ruby-version +2 -1
  4. data/A/342/206/222B/342/206/222C/345/233/262/343/201/204.txt +1 -0
  5. data/A/342/206/222B/342/206/222C/346/210/246/346/263/225.txt +7 -2
  6. data/Gemfile.lock +57 -47
  7. data/bioshogi.gemspec +3 -1
  8. data/credit.org +0 -1
  9. data/lib/bioshogi/analysis/analyzer.rb +1 -1
  10. data/lib/bioshogi/analysis/analyzer_mod.rb +4 -4
  11. data/lib/bioshogi/analysis/attack_info.rb +231 -230
  12. data/lib/bioshogi/analysis/board_piece_counts_methods.rb +53 -0
  13. data/lib/bioshogi/analysis/board_piller_methods.rb +10 -32
  14. data/lib/bioshogi/analysis/core_soldier_place_methods.rb +58 -0
  15. data/lib/bioshogi/analysis/defense_info.rb +9 -0
  16. data/lib/bioshogi/analysis/frequency.rb +351 -347
  17. data/lib/bioshogi/analysis/note_info.rb +20 -19
  18. data/lib/bioshogi/analysis/player_methods.rb +28 -0
  19. data/lib/bioshogi/analysis/shape_info.rb +40 -6
  20. data/lib/bioshogi/analysis/tactic_hit_turn_table.rb +19 -1
  21. data/lib/bioshogi/analysis/tactic_info.rb +17 -3
  22. data/lib/bioshogi/analysis/technique_info.rb +24 -11
  23. data/lib/bioshogi/analysis/technique_verify_info.rb +179 -6
  24. data/lib/bioshogi/analysis//345/202/231/350/200/203//345/205/250/351/247/222.kif +27 -0
  25. 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
  26. 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
  27. 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 -1
  28. data/lib/bioshogi/analysis//345/202/231/350/200/203//346/200/245/346/210/246.kif +1 -1
  29. data/lib/bioshogi/analysis//345/202/231/350/200/203//346/214/201/344/271/205/346/210/246.kif +4 -1
  30. data/lib/bioshogi/analysis//345/202/231/350/200/203//347/216/211/345/215/230/351/250/216.kif +27 -0
  31. data/lib/bioshogi/analysis//345/202/231/350/200/203//347/233/270/347/251/264/347/206/212.kif +2 -0
  32. data/lib/bioshogi/analysis//345/202/231/350/200/203//350/203/214/346/260/264/343/201/256/351/231/243.kif +4 -1
  33. data/lib/bioshogi/analysis//345/202/231/350/200/203//350/247/222/344/270/215/346/210/220.kif +2 -2
  34. data/lib/bioshogi/analysis//345/202/231/350/200/203//351/203/275/350/251/260/343/202/201.kif +5 -1
  35. data/lib/bioshogi/analysis//345/202/231/350/200/203//351/225/267/346/211/213/346/225/260.kif +13 -2
  36. 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
  37. data/lib/bioshogi/analysis//345/202/231/350/200/203//351/247/222/346/237/261.kif +12 -2
  38. 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
  39. 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 +2 -1
  40. 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
  41. 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
  42. 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 +7 -2
  43. 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 +2 -0
  44. 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
  45. data/lib/bioshogi/analysis//345/233/262/343/201/204//343/202/253/343/202/277/345/233/262/343/201/204.kif +2 -2
  46. 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
  47. 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
  48. 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
  49. 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 +2 -1
  50. 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 +2 -3
  51. 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 +9 -2
  52. 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
  53. data/lib/bioshogi/analysis//345/233/262/343/201/204//344/270/255/344/275/217/343/201/276/343/201/204.kif +2 -1
  54. 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
  55. 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
  56. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/233/233/346/256/265/347/253/257/347/216/211.kif +5 -2
  57. 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
  58. 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 +6 -3
  59. data/lib/bioshogi/analysis//345/233/262/343/201/204//345/261/205/347/216/211.kif +2 -1
  60. 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 +7 -2
  61. 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 +2 -0
  62. 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 +2 -0
  63. 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
  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/223/343/203/203/343/202/2604.kif +2 -1
  65. 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 +2 -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/244/251/345/256/210/351/226/243/347/276/216/346/277/203.kif +2 -0
  67. 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
  68. 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
  69. 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
  70. 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
  71. 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
  72. 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
  73. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/256/261/345/205/245/343/202/212/345/250/230.kif +2 -0
  74. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/264/231/347/251/264/347/206/212.kif +4 -2
  75. data/lib/bioshogi/analysis//345/233/262/343/201/204//347/267/217/347/237/242/345/200/211.kif +7 -2
  76. 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
  77. data/lib/bioshogi/analysis//345/233/262/343/201/204//350/243/276/345/233/272/343/202/201.kif +2 -0
  78. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/347/233/276/345/233/262/343/201/204.kif +2 -0
  79. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/207/221/347/276/216/346/277/203.kif +2 -1
  80. 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
  81. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/212/200/345/206/240.kif +2 -2
  82. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/212/200/345/206/240/347/251/264/347/206/212.kif +2 -0
  83. data/lib/bioshogi/analysis//345/233/262/343/201/204//351/212/200/345/244/232/344/274/235.kif +8 -1
  84. 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 +4 -1
  85. 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
  86. data/lib/bioshogi/analysis//346/210/246/346/263/225/GAVA/350/247/222.kif +1 -1
  87. 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 +8 -3
  88. data/lib/bioshogi/analysis//346/210/246/346/263/225/xaby/350/247/222/346/210/246/346/263/225.kif +1 -1
  89. 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
  90. 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
  91. 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 +3 -1
  92. 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 +2 -0
  93. 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 +7 -2
  94. 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 +3 -1
  95. 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 +2 -1
  96. 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 +7 -1
  97. 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 +2 -1
  98. 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
  99. 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 +11 -2
  100. 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
  101. 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 +4 -1
  102. 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 +2 -1
  103. 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 +4 -0
  104. 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 +5 -0
  105. 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 +8 -1
  106. 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 -1
  107. 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 +2 -1
  108. 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 +2 -1
  109. 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 +5 -1
  110. 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 +2 -0
  111. 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 -0
  112. 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
  113. 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
  114. 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 -2
  115. 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 +5 -3
  116. 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 +3 -1
  117. 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
  118. data/lib/bioshogi/analysis//346/210/246/346/263/225//344/270/211/346/256/265/345/217/263/347/216/211.kif +5 -2
  119. 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 +2 -1
  120. 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 +10 -3
  121. 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 +3 -0
  122. 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 +8 -2
  123. 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
  124. 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
  125. 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 +2 -1
  126. 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 +19 -70
  127. 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 +3 -1
  128. 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
  129. 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 +2 -1
  130. 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 +5 -2
  131. 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
  132. data/lib/bioshogi/analysis//346/210/246/346/263/225//345/254/211/351/207/216/346/265/201.kif +2 -1
  133. 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 -2
  134. 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 +4 -1
  135. 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 +4 -2
  136. 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
  137. 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 +12 -2
  138. 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
  139. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/226/260/345/254/211/351/207/216/346/265/201.kif +2 -1
  140. 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 +4 -1
  141. 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
  142. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/226/260/347/261/263/351/225/267/347/216/211.kif +3 -0
  143. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/234/250/346/235/221/345/256/232/350/267/241.kif +4 -2
  144. 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 +4 -2
  145. data/lib/bioshogi/analysis//346/210/246/346/263/225//346/243/222/347/216/211.kif +1 -1
  146. 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 +6 -2
  147. 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 -1
  148. 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
  149. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/216/211/351/240/255/351/212/200.kif +4 -2
  150. 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 -2
  151. 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
  152. 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
  153. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/237/263/347/224/260/346/265/201.kif +135 -55
  154. 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
  155. data/lib/bioshogi/analysis//346/210/246/346/263/225//347/255/213/351/201/225/343/201/204/350/247/222.kif +2 -1
  156. 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 +11 -2
  157. 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 +7 -2
  158. 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 +6 -4
  159. 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
  160. 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
  161. 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 -2
  162. 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 +11 -2
  163. 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 +3 -1
  164. 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
  165. 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 +3 -1
  166. 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
  167. data/lib/bioshogi/analysis//346/210/246/346/263/225//350/242/226/351/243/233/350/273/212.kif +7 -2
  168. 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
  169. 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 +2 -1
  170. 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 +8 -3
  171. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/201/240/345/261/261/346/265/201.kif +3 -1
  172. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/207/221/346/262/242/346/265/201.kif +1 -1
  173. 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 +2 -0
  174. 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
  175. 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 +2 -1
  176. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/233/200/345/210/272/343/201/227.kif +6 -2
  177. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/233/201/346/234/250/345/217/263/347/216/211.kif +6 -2
  178. data/lib/bioshogi/analysis//346/210/246/346/263/225//351/242/250/350/273/212.kif +4 -1
  179. 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
  180. 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
  181. 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
  182. data/lib/bioshogi/analysis//346/211/213/347/255/213//345/260/273/351/207/221.kif +28 -0
  183. 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
  184. 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
  185. 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
  186. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/202/251/351/207/221.kif +21 -0
  187. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/202/251/351/212/200.kif +21 -0
  188. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/205/271/351/207/221.kif +25 -0
  189. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/205/271/351/212/200.kif +2 -1
  190. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/243/276/351/207/221.kif +33 -0
  191. data/lib/bioshogi/analysis//346/211/213/347/255/213//350/243/276/351/212/200.kif +21 -0
  192. 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
  193. 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
  194. 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
  195. 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
  196. data/lib/bioshogi/analysis//346/211/213/347/255/213//351/240/255/351/207/221.kif +21 -0
  197. data/lib/bioshogi/analysis//346/211/213/347/255/213//351/240/255/351/212/200.kif +21 -0
  198. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_club24.png +0 -0
  199. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_modern.png +0 -0
  200. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_paper.png +0 -0
  201. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_piyo.png +0 -0
  202. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_real.png +0 -0
  203. data/lib/bioshogi/assets/images/color_theme_preview/is_color_theme_shape.png +0 -0
  204. data/lib/bioshogi/assets/images/piece/nureyon/BB0.png +0 -0
  205. data/lib/bioshogi/assets/images/piece/nureyon/BB1.png +0 -0
  206. data/lib/bioshogi/assets/images/piece/nureyon/BG0.png +0 -0
  207. data/lib/bioshogi/assets/images/piece/nureyon/BK0.png +0 -0
  208. data/lib/bioshogi/assets/images/piece/nureyon/BL0.png +0 -0
  209. data/lib/bioshogi/assets/images/piece/nureyon/BL1.png +0 -0
  210. data/lib/bioshogi/assets/images/piece/nureyon/BN0.png +0 -0
  211. data/lib/bioshogi/assets/images/piece/nureyon/BN1.png +0 -0
  212. data/lib/bioshogi/assets/images/piece/nureyon/BP0.png +0 -0
  213. data/lib/bioshogi/assets/images/piece/nureyon/BP1.png +0 -0
  214. data/lib/bioshogi/assets/images/piece/nureyon/BR0.png +0 -0
  215. data/lib/bioshogi/assets/images/piece/nureyon/BR1.png +0 -0
  216. data/lib/bioshogi/assets/images/piece/nureyon/BS0.png +0 -0
  217. data/lib/bioshogi/assets/images/piece/nureyon/BS1.png +0 -0
  218. data/lib/bioshogi/assets/images/piece/nureyon/README.org +20 -0
  219. data/lib/bioshogi/assets/images/piece/nureyon/WB0.png +0 -0
  220. data/lib/bioshogi/assets/images/piece/nureyon/WB1.png +0 -0
  221. data/lib/bioshogi/assets/images/piece/nureyon/WG0.png +0 -0
  222. data/lib/bioshogi/assets/images/piece/nureyon/WK0.png +0 -0
  223. data/lib/bioshogi/assets/images/piece/nureyon/WL0.png +0 -0
  224. data/lib/bioshogi/assets/images/piece/nureyon/WL1.png +0 -0
  225. data/lib/bioshogi/assets/images/piece/nureyon/WN0.png +0 -0
  226. data/lib/bioshogi/assets/images/piece/nureyon/WN1.png +0 -0
  227. data/lib/bioshogi/assets/images/piece/nureyon/WP0.png +0 -0
  228. data/lib/bioshogi/assets/images/piece/nureyon/WP1.png +0 -0
  229. data/lib/bioshogi/assets/images/piece/nureyon/WR0.png +0 -0
  230. data/lib/bioshogi/assets/images/piece/nureyon/WR1.png +0 -0
  231. data/lib/bioshogi/assets/images/piece/nureyon/WS0.png +0 -0
  232. data/lib/bioshogi/assets/images/piece/nureyon/WS1.png +0 -0
  233. data/lib/bioshogi/assets/images/piece/nureyon/convert.rb +43 -0
  234. data/lib/bioshogi/assets/images/piece/nureyon/original/BB0.svg +11 -0
  235. data/lib/bioshogi/assets/images/piece/nureyon/original/BB1.svg +11 -0
  236. data/lib/bioshogi/assets/images/piece/nureyon/original/BG0.svg +11 -0
  237. data/lib/bioshogi/assets/images/piece/nureyon/original/BK0.svg +11 -0
  238. data/lib/bioshogi/assets/images/piece/nureyon/original/BL0.svg +11 -0
  239. data/lib/bioshogi/assets/images/piece/nureyon/original/BL1.svg +11 -0
  240. data/lib/bioshogi/assets/images/piece/nureyon/original/BN0.svg +11 -0
  241. data/lib/bioshogi/assets/images/piece/nureyon/original/BN1.svg +11 -0
  242. data/lib/bioshogi/assets/images/piece/nureyon/original/BP0.svg +11 -0
  243. data/lib/bioshogi/assets/images/piece/nureyon/original/BP1.svg +11 -0
  244. data/lib/bioshogi/assets/images/piece/nureyon/original/BR0.svg +11 -0
  245. data/lib/bioshogi/assets/images/piece/nureyon/original/BR1.svg +11 -0
  246. data/lib/bioshogi/assets/images/piece/nureyon/original/BS0.svg +11 -0
  247. data/lib/bioshogi/assets/images/piece/nureyon/original/BS1.svg +11 -0
  248. data/lib/bioshogi/assets/images/piece/nureyon/original/BX0.svg +12 -0
  249. data/lib/bioshogi/assets/images/piece/nureyon/original/README.org +5 -0
  250. data/lib/bioshogi/assets/images/piece/nureyon/original/convert.sh +15 -0
  251. data/lib/bioshogi/assets/images/piece/nureyon/original/style.rb +26 -0
  252. data/lib/bioshogi/assets/images/piece/portella/BB0.png +0 -0
  253. data/lib/bioshogi/assets/images/piece/portella/BB1.png +0 -0
  254. data/lib/bioshogi/assets/images/piece/portella/BG0.png +0 -0
  255. data/lib/bioshogi/assets/images/piece/portella/BK0.png +0 -0
  256. data/lib/bioshogi/assets/images/piece/portella/BL0.png +0 -0
  257. data/lib/bioshogi/assets/images/piece/portella/BL1.png +0 -0
  258. data/lib/bioshogi/assets/images/piece/portella/BN0.png +0 -0
  259. data/lib/bioshogi/assets/images/piece/portella/BN1.png +0 -0
  260. data/lib/bioshogi/assets/images/piece/portella/BP0.png +0 -0
  261. data/lib/bioshogi/assets/images/piece/portella/BP1.png +0 -0
  262. data/lib/bioshogi/assets/images/piece/portella/BR0.png +0 -0
  263. data/lib/bioshogi/assets/images/piece/portella/BR1.png +0 -0
  264. data/lib/bioshogi/assets/images/piece/portella/BS0.png +0 -0
  265. data/lib/bioshogi/assets/images/piece/portella/BS1.png +0 -0
  266. data/lib/bioshogi/assets/images/piece/portella/WB0.png +0 -0
  267. data/lib/bioshogi/assets/images/piece/portella/WB1.png +0 -0
  268. data/lib/bioshogi/assets/images/piece/portella/WG0.png +0 -0
  269. data/lib/bioshogi/assets/images/piece/portella/WK0.png +0 -0
  270. data/lib/bioshogi/assets/images/piece/portella/WL0.png +0 -0
  271. data/lib/bioshogi/assets/images/piece/portella/WL1.png +0 -0
  272. data/lib/bioshogi/assets/images/piece/portella/WN0.png +0 -0
  273. data/lib/bioshogi/assets/images/piece/portella/WN1.png +0 -0
  274. data/lib/bioshogi/assets/images/piece/portella/WP0.png +0 -0
  275. data/lib/bioshogi/assets/images/piece/portella/WP1.png +0 -0
  276. data/lib/bioshogi/assets/images/piece/portella/WR0.png +0 -0
  277. data/lib/bioshogi/assets/images/piece/portella/WR1.png +0 -0
  278. data/lib/bioshogi/assets/images/piece/portella/WS0.png +0 -0
  279. data/lib/bioshogi/assets/images/piece/portella/WS1.png +0 -0
  280. data/lib/bioshogi/assets/images/piece/portella/convert.rb +89 -0
  281. data/lib/bioshogi/board/basic.rb +2 -1
  282. data/lib/bioshogi/container/core_methods.rb +4 -4
  283. data/lib/bioshogi/counter_hash.rb +34 -0
  284. data/lib/bioshogi/extreme_validator.rb +1 -1
  285. data/lib/bioshogi/formatter/animation/animation_mp4_builder.rb +17 -14
  286. data/lib/bioshogi/formatter/animation/ffmpeg_support.rb +14 -1
  287. data/lib/bioshogi/formatter/core.rb +9 -9
  288. data/lib/bioshogi/formatter/skill_embed.rb +45 -16
  289. data/lib/bioshogi/formatter/sugatayaki_validator.rb +1 -1
  290. data/lib/bioshogi/official_formatter.rb +1 -1
  291. data/lib/bioshogi/parser/base.rb +4 -4
  292. data/lib/bioshogi/parser/pi.rb +11 -0
  293. data/lib/bioshogi/piece.rb +16 -8
  294. data/lib/bioshogi/piller_cop.rb +47 -0
  295. data/lib/bioshogi/place.rb +4 -0
  296. data/lib/bioshogi/player/other_methods.rb +16 -33
  297. data/lib/bioshogi/player/piece_box_methods.rb +1 -1
  298. data/lib/bioshogi/player/soldier_methods.rb +10 -4
  299. data/lib/bioshogi/player.rb +1 -0
  300. data/lib/bioshogi/player_executor/base.rb +3 -2
  301. data/lib/bioshogi/screen_image/color_theme_info.rb +22 -7
  302. data/lib/bioshogi/screen_image/core_methods.rb +36 -22
  303. data/lib/bioshogi/screen_image/helper.rb +2 -2
  304. data/lib/bioshogi/screen_image/layer_methods.rb +6 -3
  305. data/lib/bioshogi/screen_image/nureyon_image_info.rb +43 -0
  306. data/lib/bioshogi/screen_image/piece_image_info.rb +26 -0
  307. data/lib/bioshogi/screen_image/soldier_methods.rb +15 -13
  308. data/lib/bioshogi/screen_image/soldier_model_methods.rb +14 -0
  309. data/lib/bioshogi/screen_image/stand.rb +5 -2
  310. data/lib/bioshogi/soldier/technique_matcher_methods.rb +6 -0
  311. data/lib/bioshogi/soldier.rb +1 -0
  312. data/lib/bioshogi/version.rb +1 -1
  313. data/lib/bioshogi.rb +2 -1
  314. metadata +167 -201
  315. data/lib/bioshogi/assets/audios/any.band/Alternatives/000/DisplayState.plist +0 -0
  316. data/lib/bioshogi/assets/audios/any.band/Alternatives/000/DisplayStateArchive +0 -0
  317. data/lib/bioshogi/assets/audios/any.band/Alternatives/000/MetaData.plist +0 -0
  318. data/lib/bioshogi/assets/audios/any.band/Alternatives/000/ProjectData +0 -0
  319. data/lib/bioshogi/assets/audios/any.band/Alternatives/000/WindowImage.jpg +0 -0
  320. data/lib/bioshogi/assets/audios/any.band/Media/Audio Files/Strategy.caf +0 -0
  321. data/lib/bioshogi/assets/audios/any.band/Resources/ProjectInformation.plist +0 -0
  322. data/lib/bioshogi/assets/audios/any.band/projectData +0 -3183
  323. data/lib/bioshogi/assets/audios/breakbeat_long.band/Alternatives/000/DisplayState.plist +0 -0
  324. data/lib/bioshogi/assets/audios/breakbeat_long.band/Alternatives/000/DisplayStateArchive +0 -0
  325. data/lib/bioshogi/assets/audios/breakbeat_long.band/Alternatives/000/MetaData.plist +0 -0
  326. data/lib/bioshogi/assets/audios/breakbeat_long.band/Alternatives/000/ProjectData +0 -0
  327. data/lib/bioshogi/assets/audios/breakbeat_long.band/Alternatives/000/WindowImage.jpg +0 -0
  328. data/lib/bioshogi/assets/audios/breakbeat_long.band/Resources/ProjectInformation.plist +0 -0
  329. data/lib/bioshogi/assets/audios/breakbeat_long.band/projectData +0 -3183
  330. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Alternatives/000/DisplayState.plist +0 -0
  331. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Alternatives/000/DisplayStateArchive +0 -0
  332. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Alternatives/000/MetaData.plist +0 -0
  333. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Alternatives/000/ProjectData +0 -0
  334. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Alternatives/000/WindowImage.jpg +0 -0
  335. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Media/Audio Files/Strategy.caf +0 -0
  336. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/Resources/ProjectInformation.plist +0 -0
  337. data/lib/bioshogi/assets/audios/breakbeat_long_strip.band/projectData +0 -3183
  338. data/lib/bioshogi/assets/audios/china_like.band/Alternatives/000/DisplayState.plist +0 -0
  339. data/lib/bioshogi/assets/audios/china_like.band/Alternatives/000/DisplayStateArchive +0 -0
  340. data/lib/bioshogi/assets/audios/china_like.band/Alternatives/000/MetaData.plist +0 -0
  341. data/lib/bioshogi/assets/audios/china_like.band/Alternatives/000/ProjectData +0 -0
  342. data/lib/bioshogi/assets/audios/china_like.band/Alternatives/000/WindowImage.jpg +0 -0
  343. data/lib/bioshogi/assets/audios/china_like.band/Resources/ProjectInformation.plist +0 -0
  344. data/lib/bioshogi/assets/audios/china_like.band/projectData +0 -3183
  345. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Alternatives/000/DisplayState.plist +0 -0
  346. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Alternatives/000/DisplayStateArchive +0 -0
  347. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Alternatives/000/MetaData.plist +0 -0
  348. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Alternatives/000/ProjectData +0 -0
  349. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Alternatives/000/WindowImage.jpg +0 -0
  350. data/lib/bioshogi/assets/audios/digit_blast_layers.band/Resources/ProjectInformation.plist +0 -0
  351. data/lib/bioshogi/assets/audios/digit_blast_layers.band/projectData +0 -3183
  352. data/lib/bioshogi/assets/audios/foo.band/Alternatives/000/DisplayState.plist +0 -0
  353. data/lib/bioshogi/assets/audios/foo.band/Alternatives/000/DisplayStateArchive +0 -0
  354. data/lib/bioshogi/assets/audios/foo.band/Alternatives/000/MetaData.plist +0 -0
  355. data/lib/bioshogi/assets/audios/foo.band/Alternatives/000/ProjectData +0 -0
  356. data/lib/bioshogi/assets/audios/foo.band/Alternatives/000/WindowImage.jpg +0 -0
  357. data/lib/bioshogi/assets/audios/foo.band/Media/Audio Files/Strategy.caf +0 -0
  358. data/lib/bioshogi/assets/audios/foo.band/Resources/ProjectInformation.plist +0 -0
  359. data/lib/bioshogi/assets/audios/foo.band/projectData +0 -3183
  360. data/lib/bioshogi/assets/audios/headspin_long.band/Alternatives/000/DisplayState.plist +0 -0
  361. data/lib/bioshogi/assets/audios/headspin_long.band/Alternatives/000/DisplayStateArchive +0 -0
  362. data/lib/bioshogi/assets/audios/headspin_long.band/Alternatives/000/MetaData.plist +0 -0
  363. data/lib/bioshogi/assets/audios/headspin_long.band/Alternatives/000/ProjectData +0 -0
  364. data/lib/bioshogi/assets/audios/headspin_long.band/Alternatives/000/WindowImage.jpg +0 -0
  365. data/lib/bioshogi/assets/audios/headspin_long.band/Resources/ProjectInformation.plist +0 -0
  366. data/lib/bioshogi/assets/audios/headspin_long.band/projectData +0 -3183
  367. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Alternatives/000/DisplayState.plist +0 -0
  368. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Alternatives/000/DisplayStateArchive +0 -0
  369. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Alternatives/000/MetaData.plist +0 -0
  370. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Alternatives/000/ProjectData +0 -0
  371. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Alternatives/000/WindowImage.jpg +0 -0
  372. data/lib/bioshogi/assets/audios/loop_bgm_i.band/Resources/ProjectInformation.plist +0 -0
  373. data/lib/bioshogi/assets/audios/loop_bgm_i.band/projectData +0 -3183
  374. data/lib/bioshogi/assets/audios/mastermind.band/Alternatives/000/DisplayState.plist +0 -0
  375. data/lib/bioshogi/assets/audios/mastermind.band/Alternatives/000/DisplayStateArchive +0 -0
  376. data/lib/bioshogi/assets/audios/mastermind.band/Alternatives/000/MetaData.plist +0 -0
  377. data/lib/bioshogi/assets/audios/mastermind.band/Alternatives/000/ProjectData +0 -0
  378. data/lib/bioshogi/assets/audios/mastermind.band/Alternatives/000/WindowImage.jpg +0 -0
  379. data/lib/bioshogi/assets/audios/mastermind.band/Resources/ProjectInformation.plist +0 -0
  380. data/lib/bioshogi/assets/audios/mastermind.band/projectData +0 -3183
  381. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/Autosave/.dummy +0 -0
  382. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/Autosave/2021-08-19 05:25:23Z.displayData +0 -0
  383. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/Autosave/2021-08-19 05:25:23Z.eventData +0 -0
  384. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/Autosave/2021-08-19 05:25:23Z.songData +0 -0
  385. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/DisplayState.plist +0 -0
  386. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/DisplayStateArchive +0 -0
  387. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/MetaData.plist +0 -0
  388. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/ProjectData +0 -0
  389. data/lib/bioshogi/assets/audios/positive_think.band/Alternatives/000/WindowImage.jpg +0 -0
  390. data/lib/bioshogi/assets/audios/positive_think.band/Resources/ProjectInformation.plist +0 -0
  391. data/lib/bioshogi/assets/audios/positive_think.band/projectData +0 -3183
  392. data/lib/bioshogi/assets/audios/stg_like_type1.band/Alternatives/000/DisplayState.plist +0 -0
  393. data/lib/bioshogi/assets/audios/stg_like_type1.band/Alternatives/000/DisplayStateArchive +0 -0
  394. data/lib/bioshogi/assets/audios/stg_like_type1.band/Alternatives/000/MetaData.plist +0 -0
  395. data/lib/bioshogi/assets/audios/stg_like_type1.band/Alternatives/000/ProjectData +0 -0
  396. data/lib/bioshogi/assets/audios/stg_like_type1.band/Alternatives/000/WindowImage.jpg +0 -0
  397. data/lib/bioshogi/assets/audios/stg_like_type1.band/Resources/ProjectInformation.plist +0 -0
  398. data/lib/bioshogi/assets/audios/stg_like_type1.band/projectData +0 -3183
  399. data/lib/bioshogi/assets/audios/strategy.band/Alternatives/000/DisplayState.plist +0 -0
  400. data/lib/bioshogi/assets/audios/strategy.band/Alternatives/000/DisplayStateArchive +0 -0
  401. data/lib/bioshogi/assets/audios/strategy.band/Alternatives/000/MetaData.plist +0 -0
  402. data/lib/bioshogi/assets/audios/strategy.band/Alternatives/000/ProjectData +0 -0
  403. data/lib/bioshogi/assets/audios/strategy.band/Alternatives/000/WindowImage.jpg +0 -0
  404. data/lib/bioshogi/assets/audios/strategy.band/Media/Audio Files/Strategy.caf +0 -0
  405. data/lib/bioshogi/assets/audios/strategy.band/Resources/ProjectInformation.plist +0 -0
  406. data/lib/bioshogi/assets/audios/strategy.band/projectData +0 -3183
  407. data/lib/bioshogi/assets/audios/test1.band/Alternatives/000/DisplayState.plist +0 -0
  408. data/lib/bioshogi/assets/audios/test1.band/Alternatives/000/DisplayStateArchive +0 -0
  409. data/lib/bioshogi/assets/audios/test1.band/Alternatives/000/MetaData.plist +0 -0
  410. data/lib/bioshogi/assets/audios/test1.band/Alternatives/000/ProjectData +0 -0
  411. data/lib/bioshogi/assets/audios/test1.band/Alternatives/000/WindowImage.jpg +0 -0
  412. data/lib/bioshogi/assets/audios/test1.band/Resources/ProjectInformation.plist +0 -0
  413. data/lib/bioshogi/assets/audios/test1.band/projectData +0 -3183
  414. data/lib/bioshogi/assets/audios/test2.band/Alternatives/000/DisplayState.plist +0 -0
  415. data/lib/bioshogi/assets/audios/test2.band/Alternatives/000/DisplayStateArchive +0 -0
  416. data/lib/bioshogi/assets/audios/test2.band/Alternatives/000/MetaData.plist +0 -0
  417. data/lib/bioshogi/assets/audios/test2.band/Alternatives/000/ProjectData +0 -0
  418. data/lib/bioshogi/assets/audios/test2.band/Alternatives/000/WindowImage.jpg +0 -0
  419. data/lib/bioshogi/assets/audios/test2.band/Resources/ProjectInformation.plist +0 -0
  420. data/lib/bioshogi/assets/audios/test2.band/projectData +0 -3183
  421. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Black.ttf +0 -0
  422. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Bold.ttf +0 -0
  423. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-ExtraBold.ttf +0 -0
  424. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Light.ttf +0 -0
  425. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Medium.ttf +0 -0
  426. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Regular.ttf +0 -0
  427. data/lib/bioshogi/assets/fonts/MPLUSRounded1c-Thin.ttf +0 -0
  428. data/lib/bioshogi/assets/fonts/NewTegomin-Regular.ttf +0 -0
  429. data/lib/bioshogi/assets/fonts/NotoSansJP-Black.otf +0 -0
  430. data/lib/bioshogi/assets/fonts/NotoSansJP-Bold.otf +0 -0
  431. data/lib/bioshogi/assets/fonts/NotoSansJP-Light.otf +0 -0
  432. data/lib/bioshogi/assets/fonts/NotoSansJP-Medium.otf +0 -0
  433. data/lib/bioshogi/assets/fonts/NotoSansJP-Regular.otf +0 -0
  434. data/lib/bioshogi/assets/fonts/NotoSansJP-Thin.otf +0 -0
  435. data/lib/bioshogi/assets/fonts/NotoSerifJP-Black.otf +0 -0
  436. data/lib/bioshogi/assets/fonts/NotoSerifJP-Bold.otf +0 -0
  437. data/lib/bioshogi/assets/fonts/NotoSerifJP-ExtraLight.otf +0 -0
  438. data/lib/bioshogi/assets/fonts/NotoSerifJP-Light.otf +0 -0
  439. data/lib/bioshogi/assets/fonts/NotoSerifJP-Medium.otf +0 -0
  440. data/lib/bioshogi/assets/fonts/NotoSerifJP-Regular.otf +0 -0
  441. data/lib/bioshogi/assets/fonts/NotoSerifJP-SemiBold.otf +0 -0
  442. data/lib/bioshogi/assets/fonts/YuseiMagic-Regular.ttf +0 -0
  443. data/lib/bioshogi/assets/images/piece/Portella/BB0.png +0 -0
  444. data/lib/bioshogi/assets/images/piece/Portella/BB1.png +0 -0
  445. data/lib/bioshogi/assets/images/piece/Portella/BG0.png +0 -0
  446. data/lib/bioshogi/assets/images/piece/Portella/BK0.png +0 -0
  447. data/lib/bioshogi/assets/images/piece/Portella/BL0.png +0 -0
  448. data/lib/bioshogi/assets/images/piece/Portella/BL1.png +0 -0
  449. data/lib/bioshogi/assets/images/piece/Portella/BN0.png +0 -0
  450. data/lib/bioshogi/assets/images/piece/Portella/BN1.png +0 -0
  451. data/lib/bioshogi/assets/images/piece/Portella/BP0.png +0 -0
  452. data/lib/bioshogi/assets/images/piece/Portella/BP1.png +0 -0
  453. data/lib/bioshogi/assets/images/piece/Portella/BR0.png +0 -0
  454. data/lib/bioshogi/assets/images/piece/Portella/BR1.png +0 -0
  455. data/lib/bioshogi/assets/images/piece/Portella/BS0.png +0 -0
  456. data/lib/bioshogi/assets/images/piece/Portella/BS1.png +0 -0
  457. data/lib/bioshogi/assets/images/piece/Portella/BX0.png +0 -0
  458. data/lib/bioshogi/assets/images/piece/Portella/WB0.png +0 -0
  459. data/lib/bioshogi/assets/images/piece/Portella/WB1.png +0 -0
  460. data/lib/bioshogi/assets/images/piece/Portella/WG0.png +0 -0
  461. data/lib/bioshogi/assets/images/piece/Portella/WK0.png +0 -0
  462. data/lib/bioshogi/assets/images/piece/Portella/WL0.png +0 -0
  463. data/lib/bioshogi/assets/images/piece/Portella/WL1.png +0 -0
  464. data/lib/bioshogi/assets/images/piece/Portella/WN0.png +0 -0
  465. data/lib/bioshogi/assets/images/piece/Portella/WN1.png +0 -0
  466. data/lib/bioshogi/assets/images/piece/Portella/WP0.png +0 -0
  467. data/lib/bioshogi/assets/images/piece/Portella/WP1.png +0 -0
  468. data/lib/bioshogi/assets/images/piece/Portella/WR0.png +0 -0
  469. data/lib/bioshogi/assets/images/piece/Portella/WR1.png +0 -0
  470. data/lib/bioshogi/assets/images/piece/Portella/WS0.png +0 -0
  471. data/lib/bioshogi/assets/images/piece/Portella/WS1.png +0 -0
  472. data/lib/bioshogi/assets/images/piece/Portella/WX0.png +0 -0
  473. data/lib/bioshogi/assets/images/piece/Portella/convert.sh +0 -32
  474. data/lib/bioshogi/board/piece_counts_methods.rb +0 -43
  475. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/README.org +0 -0
  476. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0FU.png +0 -0
  477. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0GI.png +0 -0
  478. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0GY.png +0 -0
  479. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0HI.png +0 -0
  480. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0KA.png +0 -0
  481. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0KE.png +0 -0
  482. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0KI.png +0 -0
  483. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0KI.svg +0 -0
  484. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0KY.png +0 -0
  485. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0NG.png +0 -0
  486. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0NK.png +0 -0
  487. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0NY.png +0 -0
  488. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0OU.png +0 -0
  489. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0RY.png +0 -0
  490. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0TO.png +0 -0
  491. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/0UM.png +0 -0
  492. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1FU.png +0 -0
  493. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1GI.png +0 -0
  494. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1GY.png +0 -0
  495. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1HI.png +0 -0
  496. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1KA.png +0 -0
  497. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1KE.png +0 -0
  498. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1KI.png +0 -0
  499. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1KY.png +0 -0
  500. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1NG.png +0 -0
  501. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1NK.png +0 -0
  502. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1NY.png +0 -0
  503. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1OU.png +0 -0
  504. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1RY.png +0 -0
  505. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1TO.png +0 -0
  506. /data/lib/bioshogi/assets/images/piece/{Portella → portella}/original/1UM.png +0 -0
@@ -18,8 +18,8 @@ module Bioshogi
18
18
 
19
19
  # パラメータがないものはあとで埋めるもの
20
20
 
21
- { 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: 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, skip_if_exist_keys: "振り飛車", add_to_self: nil, add_to_opponent: nil, },
22
- { 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: 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, skip_if_exist_keys: "居飛車", add_to_self: nil, add_to_opponent: "対振り飛車", },
21
+ { 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: 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, skip_if_exist_keys: "振り飛車", add_to_self: nil, add_to_opponent: nil, },
22
+ { 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: 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, skip_if_exist_keys: "居飛車", add_to_self: nil, add_to_opponent: "対振り飛車", },
23
23
 
24
24
  { key: "相居飛車", },
25
25
  { key: "相振り飛車", },
@@ -47,46 +47,47 @@ module Bioshogi
47
47
 
48
48
  ################################################################################
49
49
 
50
- ################################################################################
50
+ {
51
+ 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: 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,
52
+ add_to_self: nil, add_to_opponent: "玉単騎",
53
+ piece_box_added_proc: -> note_info, captured_soldier {
54
+ player.zengoma?
55
+ },
56
+ },
57
+ { key: "玉単騎", },
51
58
 
52
- { key: "大駒全ブッチ", },
59
+ ################################################################################
53
60
 
54
61
  {
55
62
  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: 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,
56
63
  add_to_self: nil, add_to_opponent: "大駒全ブッチ",
57
64
  piece_box_added_proc: -> note_info, captured_soldier {
58
- if captured_soldier.piece.stronger
59
- player.stronger_piece_completed?
60
- # retv = player.stronger_piece_completed?
61
- # # 相手にも追加
62
- # if retv
63
- # # raise
64
- # # player.opponent_player.skill_set.list_push(Analysis::NoteInfo["大駒全ブッチ"])
65
- # # list << note_info
66
- # # skill_set.list_of(e) << note_info
67
- # end
68
- # retv
65
+ if captured_soldier.piece.strong
66
+ player.strong_piece_completed?
69
67
  end
70
68
  },
71
69
  },
70
+ { key: "大駒全ブッチ", },
71
+
72
72
  { key: "背水の陣", },
73
73
 
74
74
  ################################################################################
75
75
 
76
76
  {
77
77
  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: 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,
78
+ add_to_self: nil, add_to_opponent: "駒柱",
78
79
  every_time_proc: -> note_info {
79
- retv = player.board.piece_piller_by_latest_piece
80
- if retv
81
- player.opponent_player.skill_set.list_push(note_info)
80
+ player.board.piller_cop.active?.tap do
81
+ player.board.piller_cop.active = false # FIXME: できればここで更新はしたくない
82
82
  end
83
- retv
84
83
  },
85
84
  },
86
85
 
87
86
  { key: "穴熊の姿焼き", }, # 勝った方だけに入れる
88
87
  { key: "名人に定跡なし", }, # 定跡なしで勝ったら入れる
89
88
  { key: "都詰め", },
89
+ { key: "雪隠詰め", },
90
+ { key: "吊るし桂", },
90
91
  { key: "ロケット", },
91
92
  ]
92
93
 
@@ -0,0 +1,28 @@
1
+ # frozen-string-literal: true
2
+
3
+ module Bioshogi
4
+ module Analysis
5
+ module PlayerMethods
6
+ attr_writer :king_moved_counter
7
+ attr_accessor :king_place
8
+ attr_accessor :king_first_moved_turn # 玉が最初に動いた手数
9
+
10
+ def king_moved_counter
11
+ @king_moved_counter ||= 0
12
+ end
13
+
14
+ # 玉の位置
15
+ def king_place
16
+ @king_place ||= king_soldier&.place
17
+ end
18
+
19
+ def king_place_update
20
+ @king_place = king_soldier&.place
21
+ end
22
+
23
+ def used_piece_counts
24
+ @used_piece_counts ||= Hash.new(0)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -3380,6 +3380,22 @@ EOT
3380
3380
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3381
3381
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3382
3382
  | ・ ・ 飛 ・ ・ ・ ・ ・ ・|
3383
+ |~角 ・@桂 ・ ・ ・ ・ ・ ・|
3384
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3385
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3386
+ +---------------------------+
3387
+ EOT
3388
+ },
3389
+ {
3390
+ key: "石田流本組み",
3391
+ body: <<~EOT,
3392
+ +---------------------------+
3393
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3394
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3395
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3396
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3397
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3398
+ | ・ ・ 飛 ・ ・ ・ ・ ・ ・|
3383
3399
  |@角 ・@桂 ・ ・ ・ ・ ・ ・|
3384
3400
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3385
3401
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
@@ -3404,29 +3420,31 @@ EOT
3404
3420
  },
3405
3421
  {
3406
3422
  key: "ムリヤリ早石田",
3423
+ description: "後手番の場合、先手が▲26歩から始めると△33飛すら間に合わない。が、76歩が入るとギリ間に合う。このときは6手目になるため6以下で成立とする。",
3407
3424
  body: <<~EOT,
3408
3425
  +---------------------------+
3409
3426
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3410
- | ・ ・ ・ ・ ・ ・ ・ ・|
3427
+ | ・v飛 ・ ・ ・ ・ ・ ・ ・|
3411
3428
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3412
3429
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3413
3430
  | ・v歩 ・ ・ ・ ・ ・ ・ ・|
3414
3431
  | ・ ・ 歩 ・ ・ ・ ・ ・ ・|
3415
- | ・ ・!飛 ・ ・ ・ ・ ・|
3416
- | ・ 角 ・ ・ ・ ・ ・ ・|
3432
+ | ・ 歩!飛 ・ ・ ・ ・ ・|
3433
+ | ・ 角 ・ ・ ・ ・ ・ ・|
3417
3434
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3418
3435
  +---------------------------+
3419
3436
  EOT
3420
3437
  },
3421
3438
  {
3422
3439
  key: "升田式石田流",
3440
+ description: "後手番の場合は▲48銀のあと8手目に△62玉となる",
3423
3441
  body: <<~EOT,
3424
3442
  +---------------------------+
3425
3443
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3426
3444
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3427
- | ・ ・ ・ ・ ・ ・ ・ ・|
3428
- | ・v歩 ・ ・ ・ ・ ・ ・|
3429
- | ・ 歩 ・ ・ ・ ・ ・ ・|
3445
+ | ・ ・ ・ ・ ・ ・ ・ ・|
3446
+ | ・ ・ ・ ・ ・ ○v歩 ・ ・|
3447
+ | ・v歩 歩 ・ ・ ・ ・ ・ ・|
3430
3448
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3431
3449
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|
3432
3450
  | ・ ・ 飛 ・ ・!玉 ・ ・ ・|
@@ -5549,6 +5567,22 @@ EOT
5549
5567
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|八
5550
5568
  | ・ ・ ・ ・ ・ ・ ・ ・ ・|九
5551
5569
  +---------------------------+
5570
+ EOT
5571
+ },
5572
+ {
5573
+ key: "居飛車の税金",
5574
+ body: <<~EOT,
5575
+ +---------------------------+
5576
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
5577
+ | ・ ・ ・ ・?飛?飛?飛?飛 ・|
5578
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
5579
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
5580
+ | ・ ・ ・ ・ ・ ・ ・ ・ ○|
5581
+ | ・ ・ ・ ・ ・ ・ ・ ・!歩|
5582
+ | ・ ・ ・ ・ ・ ・ ・ ・ ★|
5583
+ | ・ ・ ・ ・ ・*飛*飛*飛 ・|
5584
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|
5585
+ +---------------------------+
5552
5586
  EOT
5553
5587
  },
5554
5588
  {
@@ -16,6 +16,7 @@ module Bioshogi
16
16
  :"急戦" => nil,
17
17
  :"手得角交換型" => nil,
18
18
  :"持久戦" => nil,
19
+ :"玉単騎" => nil,
19
20
  :"相入玉" => nil,
20
21
  :"相居玉" => nil,
21
22
  :"相居飛車" => nil,
@@ -36,12 +37,16 @@ module Bioshogi
36
37
  :"ふんどしの桂" => 1,
37
38
  :"パンツを脱ぐ" => 1,
38
39
  :"一間竜" => 1,
40
+ :"下段の香" => 1,
41
+ :"全駒" => 1,
39
42
  :"初手▲3六歩戦法" => 1,
40
43
  :"初手▲7八銀戦法" => 1,
41
44
  :"初手▲7八飛戦法" => 1,
42
45
  :"割り打ちの銀" => 1,
43
46
  :"原始中飛車" => 1,
47
+ :"吊るし桂" => 1,
44
48
  :"垂れ歩" => 1,
49
+ :"尻金" => 1,
45
50
  :"尻銀" => 1,
46
51
  :"居飛車" => 1,
47
52
  :"振り飛車" => 1,
@@ -50,9 +55,18 @@ module Bioshogi
50
55
  :"田楽刺し" => 1,
51
56
  :"突き違いの歩" => 1,
52
57
  :"継ぎ桂" => 1,
58
+ :"肩金" => 1,
59
+ :"肩銀" => 1,
60
+ :"腹金" => 1,
53
61
  :"腹銀" => 1,
62
+ :"裾金" => 1,
63
+ :"裾銀" => 1,
54
64
  :"金底の歩" => 1,
65
+ :"金頭の桂" => 1,
55
66
  :"銀ばさみ" => 1,
67
+ :"雪隠詰め" => 1,
68
+ :"頭金" => 1,
69
+ :"頭銀" => 1,
56
70
  :"2手目△3ニ飛戦法" => 2,
57
71
  :"2手目△3二銀システム" => 2,
58
72
  :"2手目△6二銀戦法" => 2,
@@ -66,11 +80,14 @@ module Bioshogi
66
80
  :"こびん攻め" => 3,
67
81
  :"メイドシステム" => 3,
68
82
  :"天彦流▲6六角" => 3,
83
+ :"居飛車の税金" => 3,
69
84
  :"手損角交換型" => 3,
85
+ :"控えの桂" => 3,
70
86
  :"継ぎ歩" => 3,
71
87
  :"英ちゃん流中飛車" => 3,
72
88
  :"角不成" => 3,
73
89
  :"角道オープン四間飛車" => 3,
90
+ :"跳ね違いの桂" => 3,
74
91
  :"連打の歩" => 3,
75
92
  :"金沢流" => 3,
76
93
  :"陽動振り飛車" => 3,
@@ -223,7 +240,7 @@ module Bioshogi
223
240
  :"悪形矢倉" => 21,
224
241
  :"桐山流タテ歩棒銀" => 21,
225
242
  :"片ツノ銀囲い" => 21,
226
- :"石田流" => 21,
243
+ :"石田流本組み" => 21,
227
244
  :"立石流四間飛車" => 21,
228
245
  :"藤井システム" => 21,
229
246
  :"鎖鎌銀" => 21,
@@ -311,6 +328,7 @@ module Bioshogi
311
328
  :"大山美濃" => 29,
312
329
  :"左美濃" => 29,
313
330
  :"流れ矢倉" => 29,
331
+ :"石田流" => 29,
314
332
  :"金無双" => 29,
315
333
  :"カギ囲い" => 30,
316
334
  :"コーヤン流三間飛車" => 30,
@@ -69,12 +69,13 @@ module Bioshogi
69
69
  end
70
70
 
71
71
  def piece_hash_table_keys_by(hv)
72
- drop_p = array_from_motion(hv[:motion])
72
+ promoted = array_from_promoted(hv[:promoted])
73
+ motion = array_from_motion(hv[:motion])
73
74
 
74
75
  av = []
75
76
  Array.wrap(hv[:piece_key]).each do |x|
76
- Array.wrap(hv[:promoted]).each do |y|
77
- Array.wrap(drop_p).each do |z|
77
+ Array.wrap(promoted).each do |y|
78
+ Array.wrap(motion).each do |z|
78
79
  av << [x, y, z]
79
80
  end
80
81
  end
@@ -82,6 +83,19 @@ module Bioshogi
82
83
  av
83
84
  end
84
85
 
86
+ def array_from_promoted(promoted)
87
+ case promoted
88
+ when true
89
+ [true]
90
+ when false
91
+ [false]
92
+ when :both
93
+ [true, false]
94
+ else
95
+ raise "must not happen"
96
+ end
97
+ end
98
+
85
99
  def array_from_motion(motion)
86
100
  case motion
87
101
  when :move
@@ -21,22 +21,35 @@ module Bioshogi
21
21
  { key: "こびん攻め", trigger_piece_key: { piece_key: :pawn, promoted: false, motion: :both }, 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, },
22
22
  { key: "一間竜", trigger_piece_key: { piece_key: :rook, promoted: true, 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, },
23
23
  { key: "位の確保", trigger_piece_key: { piece_key: :silver, 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: true, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
24
- { key: "腹銀", trigger_piece_key: { piece_key: :silver, 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, },
25
- { key: "尻銀", trigger_piece_key: { piece_key: :silver, 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, },
26
- { key: "割り打ちの銀", trigger_piece_key: { piece_key: :silver, 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, },
27
- { key: "たすきの銀", trigger_piece_key: { piece_key: :silver, 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, },
28
- { 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, },
29
- { key: "桂頭の銀", trigger_piece_key: { piece_key: :silver, 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, },
30
- { key: "歩頭の桂", trigger_piece_key: { piece_key: :knight, 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, },
24
+ { key: "腹銀", trigger_piece_key: { piece_key: :silver, promoted: false, motion: :both }, 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, },
25
+ { key: "尻銀", trigger_piece_key: { piece_key: :silver, promoted: false, motion: :both }, 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, },
26
+ { key: "肩銀", trigger_piece_key: { piece_key: :silver, promoted: false, motion: :both }, 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, },
27
+ { key: "裾銀", trigger_piece_key: { piece_key: :silver, promoted: false, motion: :both }, 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, },
28
+ { key: "頭銀", trigger_piece_key: { piece_key: :silver, promoted: false, motion: :both }, 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, },
29
+ { key: "腹金", trigger_piece_key: { piece_key: :gold, promoted: false, motion: :both }, 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, },
30
+ { key: "尻金", trigger_piece_key: { piece_key: :gold, promoted: false, motion: :both }, 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, },
31
+ { key: "肩金", trigger_piece_key: { piece_key: :gold, promoted: false, motion: :both }, 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, },
32
+ { key: "裾金", trigger_piece_key: { piece_key: :gold, promoted: false, motion: :both }, 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, },
33
+ { key: "頭金", trigger_piece_key: { piece_key: :gold, promoted: false, motion: :both }, 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, },
34
+ { key: "割り打ちの銀", trigger_piece_key: { piece_key: :silver, promoted: false, motion: :both }, 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, },
35
+ { key: "たすきの銀", trigger_piece_key: { piece_key: :silver, promoted: false, motion: :both }, 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
+ { key: "たすきの角", trigger_piece_key: { piece_key: :bishop, promoted: false, motion: :both }, 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
+ { key: "桂頭の銀", trigger_piece_key: { piece_key: :silver, promoted: false, motion: :both }, 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
+ { key: "歩頭の桂", trigger_piece_key: { piece_key: :knight, promoted: false, motion: :both }, 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: { piece_key: :knight, promoted: false, motion: :both }, 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, },
31
40
  { key: "田楽刺し", trigger_piece_key: { piece_key: :lance, 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, },
32
- { key: "継ぎ桂", trigger_piece_key: { piece_key: :knight, 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, },
33
- { key: "ふんどしの桂", trigger_piece_key: { piece_key: :knight, 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, },
41
+ { key: "下段の香", trigger_piece_key: { piece_key: :lance, 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: { piece_key: :knight, promoted: false, motion: :both }, 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, },
43
+ { key: "跳ね違いの桂", trigger_piece_key: { piece_key: :knight, promoted: :both, 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, },
44
+ { key: "ふんどしの桂", trigger_piece_key: { piece_key: :knight, promoted: false, motion: :both }, 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, },
45
+ { key: "控えの桂", trigger_piece_key: { piece_key: :knight, 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, },
34
46
  { key: "パンツを脱ぐ", trigger_piece_key: { piece_key: :knight, 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: 0, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
35
- { 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: true, kill_count_lteq: nil, hold_piece_not_in: nil, hold_piece_in: nil, hold_piece_empty: nil, hold_piece_eq: nil, },
47
+ { key: "銀ばさみ", trigger_piece_key: { piece_key: :pawn, promoted: false, motion: :both }, 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, },
36
48
  { 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, },
49
+ { 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, },
37
50
  { 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
51
  { 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: { 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, },
52
+ { key: "遠見の角", trigger_piece_key: { piece_key: :bishop, promoted: false, motion: :both }, 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
53
  { 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
54
  { 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
55
  { key: "2段ロケット", parent: nil, },
@@ -5,8 +5,6 @@
5
5
  module Bioshogi
6
6
  module Analysis
7
7
  class TechniqueVerifyInfo
8
- ROW_IS_2 = 1 # ▲から見て2段目のこと
9
-
10
8
  include ApplicationMemoryRecord
11
9
  memory_record [
12
10
  {
@@ -124,9 +122,11 @@ module Bioshogi
124
122
  },
125
123
  },
126
124
 
125
+ ################################################################################ 銀
126
+
127
127
  {
128
128
  key: "腹銀",
129
- description: "銀を打ったとき左右どちらかに相手の玉がある",
129
+ description: "銀を打ったか移動させたとき左右どちらかに相手の玉がある",
130
130
  func: proc {
131
131
  verify_if do
132
132
  V.left_right_vectors.any? do |e|
@@ -142,7 +142,7 @@ module Bioshogi
142
142
 
143
143
  {
144
144
  key: "尻銀",
145
- description: "銀を打ったとき下に相手の玉がある",
145
+ description: "銀を打ったか移動させたとき下に相手の玉がある",
146
146
  func: proc {
147
147
  verify_if do
148
148
  if v = soldier.relative_move_to(:down)
@@ -154,6 +154,96 @@ module Bioshogi
154
154
  },
155
155
  },
156
156
 
157
+ {
158
+ key: "肩銀",
159
+ description: "銀を打ったか移動させたとき左斜め前か右斜め前に玉がある",
160
+ func: proc {
161
+ verify_if do
162
+ V.bishop_naname_mae_vectors.any? do |up_left|
163
+ if v = soldier.relative_move_to(up_left)
164
+ if s = board[v]
165
+ s.piece.key == :king && opponent?(s)
166
+ end
167
+ end
168
+ end
169
+ end
170
+ },
171
+ },
172
+
173
+ {
174
+ key: "裾銀",
175
+ description: "銀を打ったか移動させたとき左斜め後か右斜め後に玉がある",
176
+ func: proc {
177
+ verify_if do
178
+ V.wariuchi_vectors.any? do |down_left|
179
+ if v = soldier.relative_move_to(down_left)
180
+ if s = board[v]
181
+ s.piece.key == :king && opponent?(s)
182
+ end
183
+ end
184
+ end
185
+ end
186
+ },
187
+ },
188
+
189
+ {
190
+ key: "頭銀",
191
+ description: "銀を打ったか移動させたとき前に相手の玉がある",
192
+ func: proc {
193
+ verify_if do
194
+ if v = soldier.relative_move_to(:up)
195
+ if s = board[v]
196
+ s.piece.key == :king && opponent?(s)
197
+ end
198
+ end
199
+ end
200
+ },
201
+ },
202
+
203
+ ################################################################################ 金
204
+
205
+ {
206
+ key: "腹金",
207
+ description: "金を打ったか移動させたとき左右どちらかに相手の玉がある",
208
+ func: proc {
209
+ instance_eval(&TechniqueVerifyInfo[:"腹銀"].func)
210
+ },
211
+ },
212
+
213
+ {
214
+ key: "尻金",
215
+ description: "金を打ったか移動させたとき下に相手の玉がある",
216
+ func: proc {
217
+ instance_eval(&TechniqueVerifyInfo[:"尻銀"].func)
218
+ },
219
+ },
220
+
221
+ {
222
+ key: "肩金",
223
+ description: "金を打ったか移動させたとき左斜め前か右斜め前に玉がある",
224
+ func: proc {
225
+ instance_eval(&TechniqueVerifyInfo[:"肩銀"].func)
226
+ },
227
+ },
228
+
229
+ {
230
+ key: "裾金",
231
+ description: "金を打ったか移動させたとき左斜め後か右斜め後に玉がある",
232
+ func: proc {
233
+ instance_eval(&TechniqueVerifyInfo[:"裾銀"].func)
234
+ },
235
+ },
236
+
237
+ {
238
+ key: "頭金",
239
+ description: "金を打ったか移動させたとき前に相手の玉がある",
240
+ func: proc {
241
+ instance_eval(&TechniqueVerifyInfo[:"頭銀"].func)
242
+ },
243
+ },
244
+
245
+ ################################################################################
246
+
157
247
  {
158
248
  key: "垂れ歩",
159
249
  description: "打った歩の前が空で次に成れる余地がある場合",
@@ -282,7 +372,7 @@ module Bioshogi
282
372
 
283
373
  {
284
374
  key: "歩頭の桂",
285
- description: "打った桂の上に相手の歩がある",
375
+ description: "打ったまたは移動した桂の上に相手の歩がある",
286
376
  func: proc {
287
377
  verify_if do
288
378
  if v = soldier.relative_move_to(:up)
@@ -294,12 +384,30 @@ module Bioshogi
294
384
  },
295
385
  },
296
386
 
387
+ {
388
+ key: "金頭の桂",
389
+ description: "打ったまたは移動した桂の上に相手の金がある",
390
+ func: proc {
391
+ verify_if do
392
+ if v = soldier.relative_move_to(:up)
393
+ if s = board[v]
394
+ s.piece.key == :gold && opponent?(s)
395
+ end
396
+ end
397
+ end
398
+ },
399
+ },
400
+
297
401
  {
298
402
  key: "銀ばさみ",
299
403
  description: "動かした歩の左右どちらかに相手の銀があり、その向こうに自分の歩がある。また歩の前に何もないこと。",
300
404
  func: proc {
301
405
  #【条件1】「同歩」でないこと
302
- verify_if { !executor.move_hand.captured_soldier }
406
+ skip_if do
407
+ if move_hand = executor.move_hand
408
+ move_hand.captured_soldier
409
+ end
410
+ end
303
411
 
304
412
  #【条件2】進めた歩の前が空であること
305
413
  verify_if do
@@ -431,6 +539,17 @@ module Bioshogi
431
539
  },
432
540
  },
433
541
 
542
+ {
543
+ # https://yokohamayanke.com/1078/ によると金底の香の状態でも「下段の香」として紹介されている
544
+ # いろんな条件を考えたが結局「下段」のみのチェックとする
545
+ key: "下段の香",
546
+ description: "打った香が一番下",
547
+ func: proc {
548
+ #【条件1】「最下段」であること
549
+ verify_if { soldier.bottom_spaces.zero? }
550
+ },
551
+ },
552
+
434
553
  {
435
554
  key: "ふんどしの桂",
436
555
  description: "打った桂の2つ前の左右に自分より価値の高い相手の駒がある",
@@ -449,6 +568,34 @@ module Bioshogi
449
568
  },
450
569
  },
451
570
 
571
+ {
572
+ key: "控えの桂",
573
+ description: "打った桂の利きにある相手の駒を集め、それが1つ以上かつすべて歩である",
574
+ func: proc {
575
+ #【条件1】打った位置が6段目以降である
576
+ verify_if { soldier.top_spaces >= Dimension::Row.promotable_depth + 2 }
577
+
578
+ # 打った桂の利きの2箇所にある相手の駒を取得する
579
+ soldiers = V.keima_vectors.collect { |e|
580
+ if v = soldier.relative_move_to(e)
581
+ if s = board[v]
582
+ if opponent?(s)
583
+ s
584
+ end
585
+ end
586
+ end
587
+ }.compact
588
+
589
+ # 【条件2】 相手の駒は1つ以上ある
590
+ verify_if { !soldiers.empty? }
591
+
592
+ # 【条件3】 相手の駒は「歩」である
593
+ verify_if do
594
+ soldiers.all? { |e| e.piece.key == :pawn }
595
+ end
596
+ },
597
+ },
598
+
452
599
  {
453
600
  key: "土下座の歩",
454
601
  description: nil,
@@ -597,6 +744,28 @@ module Bioshogi
597
744
  },
598
745
  },
599
746
 
747
+ {
748
+ key: "跳ね違いの桂",
749
+ description: "移動元から見て移動してない方に相手が1手前に移動した桂があるか?",
750
+ func: proc {
751
+ verify_if do
752
+ # △33桂(21)▲13桂成(25)で考える
753
+ # 跳ね違いは相手の桂を捌けなくする目的でもあるため「成っていない桂」のチェックとする
754
+ V.keima_vectors.any? do |e|
755
+ if v = origin_soldier.relative_move_to(e) # 25から33と13を見る
756
+ if s = board[v] # そこにある駒
757
+ if opponent?(s) && s.piece.key == :knight && s.normal? # その駒は相手の駒かつ桂
758
+ if hand_log = executor.container.hand_logs[-1] # それは1手前に「動かした」駒か?
759
+ hand_log&.move_hand&.soldier == s
760
+ end
761
+ end
762
+ end
763
+ end
764
+ end
765
+ end
766
+ },
767
+ },
768
+
600
769
  {
601
770
  key: "入玉",
602
771
  description: "玉が4段目から3段目に移動した",
@@ -625,3 +794,7 @@ module Bioshogi
625
794
  end
626
795
  end
627
796
  end
797
+ # ~> -:8:in `<class:TechniqueVerifyInfo>': uninitialized constant Bioshogi::Analysis::TechniqueVerifyInfo::ApplicationMemoryRecord (NameError)
798
+ # ~> from -:7:in `<module:Analysis>'
799
+ # ~> from -:6:in `<module:Bioshogi>'
800
+ # ~> from -:5:in `<main>'
@@ -0,0 +1,27 @@
1
+ 棋戦:共有将棋盤
2
+ 先手の囲い:居玉
3
+ 後手の囲い:居玉
4
+ 先手の備考:全駒, 相居玉
5
+ 後手の備考:玉単騎, 相居玉
6
+ 先手の棋風:王道
7
+ 後手の棋風:王道
8
+ 後手の持駒:なし
9
+ 9 8 7 6 5 4 3 2 1
10
+ +---------------------------+
11
+ | ・ ・ ・ ・v玉 ・ ・ ・ ・|一
12
+ | ・ ・ ・ ・ ・ ・ ・v金 ・|二
13
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|三
14
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|四
15
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|五
16
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|六
17
+ | ・ ・ ・ ・ ・ ・ ・ ・ ・|七
18
+ | ・ ・ ・ ・ ・ ・ ・ 飛 ・|八
19
+ | ・ ・ ・ ・ 玉 ・ ・ ・ ・|九
20
+ +---------------------------+
21
+ 先手の持駒:飛 角二 金三 銀四 桂四 香四 歩十八
22
+ 先手番
23
+ 手数----指手---------消費時間--
24
+ 1 2二飛成(28)
25
+ *▲備考:全駒
26
+ 2 投了
27
+ まで1手で先手の勝ち