Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Box drawing class.
- class Box
- # Initialize to given size, and filled with spaces.
- def initialize(w,h)
- @wid = w
- @hgt = h
- @fill = ' '
- end
- # Change the fill.
- def fill(f)
- @fill = f
- return self
- end
- # Rotate 90 degrees.
- def flip
- @wid, @hgt = @hgt, @wid
- return self
- end
- # Generate (print) the box
- def gen
- line('+', @wid - 2, '-')
- (@hgt - 2).times { line('|', @wid - 2, @fill) }
- line('+', @wid - 2, '-')
- end
- # For printing
- def to_s
- fill = @fill
- if fill == ' '
- fill = '(spaces)'
- end
- return "Box " + @wid.to_s + "x" + @hgt.to_s + ", filled: " + fill
- end
- private
- # Print one line of the box.
- def line(ends, count, fill)
- print ends;
- count.times { print fill }
- print ends, "\n";
- end
- end
- # Create some boxes.
- b1 = Box.new(10, 4)
- b2 = Box.new(5,12).fill('$')
- b3 = Box.new(3,3).fill('@')
- print "b1 = ", b1, "\nb2 = ", b2, "\nb3 = ", b3, "\n\n"
- # Print some boxes.
- print "b1:\n";
- b1.gen
- print "\nb2:\n";
- b2.gen
- print "\nb3:\n";
- b3.gen
- print "\nb2 flipped and filled with #:\n";
- b2.fill('#').flip.gen
- print "\nb2 = ", b2, "\n"
Add Comment
Please, Sign In to add comment