#!/usr/local/bin/ruby # -*- mode: ruby -*- # $Id: methcall.ruby,v 1.2 2000/12/24 22:04:51 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) val = 1 toggle = Toggle.new(val) n.times do val = toggle.activate().value() end if val then puts "true" else puts "false" end val = 1 ntoggle = NthToggle.new(val, 3) n.times do val = ntoggle.activate().value() end if val then puts "true" else puts "false" end end main()