Sha256: 01c7c9fbf22d6d84eb29b36afdd32557440547390875c0b8c120a3ac386bb221
Contents?: true
Size: 1.13 KB
Versions: 5
Compression:
Stored size: 1.13 KB
Contents
# follows and shoots require 'robot' class Seeker include Robot attr_accessor def initialize *args, &block @rt = @radar_scan = 10 @min_radar_scan = 10.0 @max_radar_scan = 30.0 @radar_turned = false @min_distance = 0 @direction = 1 super end def tick events @direction = @min_distance - 175 accelerate(@direction) wturn = 180 - ((radar_heading-heading)%360) + @rt*0.5 wturn = [-10,[10,wturn].min].max turn wturn scan events turn_radar @rt - wturn fire @direction > 0 ? 0.5 : 3.0 end def scan events if events['robot_scanned'].empty? increase_radar_scan else decrease_radar_scan @min_distance = events['robot_scanned'].min.first end @rt = if @radar_turned -@radar_scan else @radar_scan end if @radar_scan.abs < @max_radar_scan - 0.1 @radar_turned = !@radar_turned @rt end def increase_radar_scan @radar_scan *= 1.5 @radar_scan = [@radar_scan, @max_radar_scan].min end def decrease_radar_scan @radar_scan *= 0.5 @radar_scan = [@radar_scan, @min_radar_scan].max end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
UG_RRobots-2.0 | robots/Seeker.rb |
UG_RRobots-1.3 | robots/Seeker.rb |
UG_RRobots-1.2 | robots/Seeker.rb |
UG_RRobots-2.2 | robots/Seeker.rb |
UG_RRobots-2.1 | robots/Seeker.rb |