#!/usr/local/bin/ruby # -*- mode: ruby -*- # $Id: objinst.ruby,v 1.2 2000/12/24 22:04:57 doug Exp $ # http://www.bagley.org/~doug/shootout/ class Toggle def initialize(start_state) @bool = start_state self end def value() @bool end def activate() @bool = !@bool self end end class NthToggle < Toggle def initialize(start_state, max_counter) super(start_state) @count_max = max_counter @counter = 0 self end def activate() @counter += 1 if (@counter >= @count_max) then @bool = !@bool @counter = 0 end self end end def main() n = Integer(ARGV.shift || 1) toggle = Toggle.new(1) 5.times do if toggle.activate().value() then puts "true" else puts "false" end end n.times do toggle = Toggle.new(1) end puts ntoggle = NthToggle.new(1, 3) 8.times do if ntoggle.activate().value() then puts "true" else puts "false" end end n.times do ntoggle = NthToggle.new(1, 3) end end main()