aboutsummaryrefslogtreecommitdiff
path: root/02-hub3.rb
diff options
context:
space:
mode:
Diffstat (limited to '02-hub3.rb')
-rw-r--r--02-hub3.rb21
1 files changed, 11 insertions, 10 deletions
diff --git a/02-hub3.rb b/02-hub3.rb
index 8750027..5379bb4 100644
--- a/02-hub3.rb
+++ b/02-hub3.rb
@@ -1,14 +1,13 @@
require './level'
require './frame'
-class Level
- interfaces %w(1 2 3)
- description <<~EOD
+$levels << Level.new do
+ @interfaces = %w(1 2 3)
+ @description = <<~EOD
You are now a three-port hub. Your job is to forward frames from one interface to all the others.
EOD
- clicks 5
- def self.target(frame)
+ def target(frame)
case frame.iface
when ?1
[frame.to(?2), frame.to(?3)]
@@ -17,18 +16,20 @@ class Level
when ?3
[frame.to(?1), frame.to(?2)]
else
- puts "ERR"
[]
end
end
- def self.generate
+ def generate
frames = {}
- @@interfaces.each do |iface|
+ @interfaces.each do |iface|
next if rand < 0.3
- frames[@@count.to_s] = Frame.new(iface, "Frame #{@@count}")
- @@count += 1
+ frames[@count.to_s] = Frame.new(iface, @count)
+ @count += 1
end
frames
end
+
+ def click
+ end
end