diff options
Diffstat (limited to 'benchmark/app_pentomino.yml')
-rw-r--r-- | benchmark/app_pentomino.yml | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/benchmark/app_pentomino.yml b/benchmark/app_pentomino.yml deleted file mode 100644 index ab6e19bf1a..0000000000 --- a/benchmark/app_pentomino.yml +++ /dev/null @@ -1,130 +0,0 @@ -benchmark: - app_pentomino: | - # This program is contributed by Shin Nishiyama - # modified by K.Sasada - - NP = 5 - ROW = 8 + NP - COL = 8 - - $p = [] - $b = [] - $no = 0 - - def piece(n, a, nb) - nb.each{|x| - a[n] = x - if n == NP-1 - $p << [a.sort] - else - nbc=nb.dup - [-ROW, -1, 1, ROW].each{|d| - if x+d > 0 and not a.include?(x+d) and not nbc.include?(x+d) - nbc << x+d - end - } - nbc.delete x - piece(n+1,a[0..n],nbc) - end - } - end - - def kikaku(a) - a.collect {|x| x - a[0]} - end - def ud(a) - kikaku(a.collect {|x| ((x+NP)%ROW)-ROW*((x+NP)/ROW) }.sort) - end - def rl(a) - kikaku(a.collect {|x| ROW*((x+NP)/ROW)+ROW-((x+NP)%ROW)}.sort) - end - def xy(a) - kikaku(a.collect {|x| ROW*((x+NP)%ROW) + (x+NP)/ROW }.sort) - end - - def mkpieces - piece(0,[],[0]) - $p.each do |a| - a0 = a[0] - a[1] = ud(a0) - a[2] = rl(a0) - a[3] = ud(rl(a0)) - a[4] = xy(a0) - a[5] = ud(xy(a0)) - a[6] = rl(xy(a0)) - a[7] = ud(rl(xy(a0))) - a.sort! - a.uniq! - end - $p.uniq!.sort! {|x,y| x[0] <=> y[0] } - end - - def mkboard - (0...ROW*COL).each{|i| - if i % ROW >= ROW-NP - $b[i] = -2 - else - $b[i] = -1 - end - $b[3*ROW+3]=$b[3*ROW+4]=$b[4*ROW+3]=$b[4*ROW+4]=-2 - } - end - - def pboard - return # skip print - print "No. #$no\n" - (0...COL).each{|i| - print "|" - (0...ROW-NP).each{|j| - x = $b[i*ROW+j] - if x < 0 - print "..|" - else - printf "%2d|",x+1 - end - } - print "\n" - } - print "\n" - end - - $pnum=[] - def setpiece(a,pos) - if a.length == $p.length then - $no += 1 - pboard - return - end - while $b[pos] != -1 - pos += 1 - end - ($pnum - a).each do |i| - $p[i].each do |x| - f = 0 - x.each{|s| - if $b[pos+s] != -1 - f=1 - break - end - } - if f == 0 then - x.each{|s| - $b[pos+s] = i - } - a << i - setpiece(a.dup, pos) - a.pop - x.each{|s| - $b[pos+s] = -1 - } - end - end - end - end - - mkpieces - mkboard - $p[4] = [$p[4][0]] - $pnum = (0...$p.length).to_a - setpiece([],0) -loop_count: 1 |