diff options
Diffstat (limited to '01-hub2.rb')
-rw-r--r-- | 01-hub2.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/01-hub2.rb b/01-hub2.rb new file mode 100644 index 0000000..4ed0f6b --- /dev/null +++ b/01-hub2.rb @@ -0,0 +1,28 @@ +require './level' +require './frame' + +class L1_Hub2 < Level + interfaces %w(1 2) + description <<~EOD + You are a two-port hub. Your job is to forward frames from one interface to the other. + EOD + + def self.target(frame) + case frame.iface + when 1 + [frame.to(2)] + when 2 + [frame.to(1)] + end + end + + def self.generate + frames = {} + @@interfaces.each do |iface| + next if rand < 0.4 + frames[@@count.to_s] = Frame.new(iface, "Frame #{@@count}") + @@count += 1 + end + frames + end +end |