Sha256: 01e768f0ef3579147a555f097ad7f3ea09e9f5f3f067be1e9ffd82f5bb80bf87

Contents?: true

Size: 1.11 KB

Versions: 8

Compression:

Stored size: 1.11 KB

Contents

# frozen-string-literal: true

module Bioshogi
  class Player
    module SoldierMethods
      def soldiers
        board.surface.values.find_all { |e| e.location == location }
      end

      def king_soldier
        soldiers.find { |e| e.piece.key == :king }
      end

      def to_s_soldiers
        soldiers.collect(&:name_without_location).sort.join(" ")
      end

      # 入玉宣言時の盤上にある駒の得点合計
      def soldiers_ek_score
        soldiers.sum(&:ek_score)
      end

      # 入玉している?
      def king_soldier_entered?
        if soldier = king_soldier
          soldier.place.promotable?(location)
        end
      end

      # 玉を除く駒が10毎以上相手陣に入っているか?
      def many_soliders_are_in_the_opponent_area?
        entered_soldiers.count >= Piece::EkScoreInfo::N_SOLIDIERS_IN_OPPONENT_AREA_WITHOUT_KING
      end

      # 相手陣に入っている玉を除く駒
      def entered_soldiers
        soldiers.find_all do |e|
          if e.piece.key != :king
            e.place.promotable?(location)
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
bioshogi-0.0.14 lib/bioshogi/player/soldier_methods.rb
bioshogi-0.0.10 lib/bioshogi/player/soldier_methods.rb
bioshogi-0.0.9 lib/bioshogi/player/soldier_methods.rb
bioshogi-0.0.8 lib/bioshogi/player/soldier_methods.rb
bioshogi-0.0.7 lib/bioshogi/player/soldier_methods.rb
bioshogi-0.0.5 lib/bioshogi/player/soldier_methods.rb
bioshogi-0.0.4 lib/bioshogi/player/soldier_methods.rb
bioshogi-0.0.3 lib/bioshogi/player/soldier_methods.rb