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