#!/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()