Changeset 18694

Show
Ignore:
Timestamp:
09/03/08 02:04:11 (4 months ago)
Author:
hajimehoshi
Message:

Refactored

Location:
lang/ruby/bokeshi/trunk/bokeshi
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/ruby/bokeshi/trunk/bokeshi/cpu.rb

    r18571 r18694  
    1515      else 
    1616        if seqs.all?{|seq| seq.length == 1} 
    17           seqs.size % 2 == 0 
     17          seqs.size % 2 == 0  
    1818        else 
    1919          seqs.inject(0) do |result, seq| 
     
    3030        seqs = stage_or_seqs 
    3131      end 
    32       removings = [] 
    33       now_winnable = winnable?(seqs) 
    34       seqs.each do |seq| 
    35         next_seqs = seqs.select{|s| s != seq} 
    36         seq.splits.each do |removing, result| 
    37           if !now_winnable or !winnable?(next_seqs + result) 
    38             removings << removing 
     32      if winnable?(seqs) 
     33        seqs.map do |seq| 
     34          seq.splits.select do |removing, result| 
     35            !winnable?(seqs + result - [seq]) 
     36          end.map do |removing, result| 
     37            removing 
    3938          end 
    40         end 
     39        end.flatten 
     40      else 
     41        seqs.map{|seq| seq.splits.keys}.flatten 
    4142      end 
    42       removings 
    4343    end 
    4444 
  • lang/ruby/bokeshi/trunk/bokeshi/stage.rb

    r18571 r18694  
    2828        d 
    2929      else 
    30         length - length 
     30        length - other.length 
    3131      end 
    3232    end 
  • lang/ruby/bokeshi/trunk/bokeshi/test_cpu.rb

    r18571 r18694  
    3838      assert_equal([Seq.new(0, 0, 1)], 
    3939                   cpu.next_removings([Seq.new(0, 0, 1)]).sort) 
     40      assert_equal([Seq.new(0, 0, 1), Seq.new(0, 0, 2), Seq.new(0, 1, 1), 
     41                    Seq.new(1, 0, 1), Seq.new(1, 0, 2), Seq.new(1, 1, 1)].sort, 
     42                   cpu.next_removings([Seq.new(0, 0, 2), Seq.new(1, 0, 2)]).sort) 
     43      assert_equal([], 
     44                   cpu.next_removings([]).sort) 
    4045    end 
    4146