Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Clickbeetle

Pages: 1 ... 75 76 77 78 79 80 81 [82] 83 84 85 86 87 88 89 ... 174
1621
DSL TC Showcases / Re: SM's DSL off-topic-case
« on: October 07, 2010, 11:30:12 PM »
I think it means:

Code: [Select]
Move
       # flame on depending on enemy's range
            enemy, flamerange = self.GetNearestEnemy()
           
            if enemy is not None and flamerange < self.flame_range:
                self.Input("Flame", 0, 130)
            elif self.GetInputStatus("Flame", 0) != 0:
                self.Input("Flame", 0, 0)
           
            targets = [x for x in self.sensors.itervalues() if x.contacts > 0 \
                and not plus.isDefeated(x.robot)]
^this from
    def Tick(self)
to
    def Activate(self, active)

Someone that is more experienced, correct me if I'm wrong.


It's even simpler than that.  All you do is put


self.Input("Flame", 0, 100)


(No need for a cheaty 130 input in this case)


right under def Activate.  You can even just throw it in Omni, like so:


Code: [Select]

    def Activate(self, active):
        # Activate flame control at the start of the match, leaving it alone in def Tick
        self.Input("Flame", 0, 100)
        if active:
            if AI.SuperAI.debugging:
                self.debug = Gooey.Plain("watch", 0, 75, 100, 75)
                tbox = self.debug.addText("line0", 0, 0, 100, 15)
                tbox.setText("Throttle")
                tbox = self.debug.addText("line1", 0, 15, 100, 15)
                tbox.setText("Turning")
                tbox = self.debug.addText("line2", 0, 30, 100, 15)
                tbox.setText("")
                tbox = self.debug.addText("line3", 0, 45, 100, 15)
                tbox.setText("")
           
            self.RegisterSmartZone(self.zone, 1)
           
        return AI.SuperAI.Activate(self, active)


The .py I made will be in NAR AI for all those with a python phobia, though it is really easy to do and can go in any .py.


Edit: Oh wait I'm taking S_M's showcase off topic again... must make comment on latest bot.


Why is that UHW a failbot?  Bad wedge?  Because it certainly looks dangerous enough to me with all those flamers and heavy plows.

1622
Stock Showcases / Re: VERTIGO'S STOCK SHOWCASE!
« on: October 07, 2010, 11:17:13 PM »
Dare I ask what's up with the lawn mower blades on axles?


And an easy (although costly) way to improve wedges is to add ballast in the front of the wedge.  You could get weight by removing those lawn mower blades, or at least replacing the axles with baseplate anchors.

1623
Stock Showcases / Re: freezeburn5 showcase
« on: October 07, 2010, 11:08:42 PM »
the brackets look like wasted weight to me


The placement could be better (a little further out and back), but actually I can see those being very useful and I'm surprised this is the first juggler I've seen with side trappers.

1624
Modifications / Re: An RPM-monitoring AI
« on: October 07, 2010, 10:26:28 PM »
To get a higher resolution time delta:

http://docs.python.org/library/time.html#time.clock

"The resolution is typically better than one microsecond."


But if the issue is the 30FPS frame rate of the game (as I suspect), then a more accurate clock won't help...


But I will try this.  Maybe I'm wrong and it will work.

1625
Tournament Archives / Re: Rust In More Pieces - Signups
« on: October 07, 2010, 10:09:23 PM »
@Badnik96: Sorry, you just missed out to Click XD


Eh?  I sent my entry after Badnik made that post; I was hoping you might increase the bracket size to 8 if you got enough entries... unless Badnik forgot to send you a PM.


And a vengeance battle with Timber II would be good; now what bot to fight...


Revenge against Smooth Criminal would be great, but I'm not sure I could beat it without updating the bot.


Edit: oh yeah, marty's bot was called A very big block.  I thought you meant like a generic blocky test bot.  I'd be fine with that... did you send Craaig a PM?

1626
DSL TC Showcases / Re: Pwnator's DSL Showcase
« on: October 07, 2010, 01:30:42 AM »
since I'm using a sloped crescent, I have no idea where the coordinates are so I can BFE them closer to the rear. >.<


Map them out in Excel?


Good luck with that, the latest Dark Pounder would be really tough (almost impossible) to replicate without custom components.

1627
DSL TC Showcases / Re: SKBT's showcase
« on: October 07, 2010, 01:27:32 AM »
Coolest That Darn Dustpan-type bot ever.  Should've gotten more votes than it did.  Very clever way of doing counterweights; I wouldn't have thought of that.

1628
DSL TC Showcases / Re: Pwnator's DSL Showcase
« on: October 07, 2010, 01:16:18 AM »
Nice replica of one of my favorite IRL bots, and really nice wedge...


Now try to make the most recent version.  :trollface


http://www.buildersdb.com/botdetails.asp?botid=1017

1629
DSL TC Showcases / Re: SM's DSL off-topic-case
« on: October 07, 2010, 12:21:42 AM »
I would wire the flamers to the wheels so they would't run out.

no it will run out... for some reason the glitch of holding down the button doesn't apply to AI.. I usually AI mine to spin so its always firing but it does run out..


Just put the Input for the flamethrower in def Activate instead of def Tick in the .py.  Perfectly reproduces the infinite flame human glitch.

1630
DSL TC Showcases / Re: SM's DSL Showcase
« on: October 07, 2010, 12:12:02 AM »
DP: New Bot
[pic]
The Clam
Plastic 3
24 L.DS Teeth (Underweaponed)
Rest you can see.


That thing looks awesome.  Is there any way you can get away with Magmotor drive to save weight?

1631
DSL TC Showcases / Re: Clickbeetle's bots
« on: October 06, 2010, 11:40:28 PM »
Wouldn't a hex plate and razors be better ?


Eh, perhaps... it would be stronger but it wouldn't do as much instantaneous damage.


Anyway, time to post a whole slew of bots.  This is my long-overdue team for NAR AI.





They are all wedge-killers and they all have iron spikes, with the exception of Irony.  (It's named Irony because it's ironic that it doesn't have any iron spikes.  Circular logic FTW.)  Most of them are also good against shell spinners too, so in theory they should be extremely dangerous since they're good against the two most common designs.  In practice, though, they're just moderately dangerous.


Why an iron spike team?  I wanted to make a bot called Ferrous Wheel and I wanted to make a bot called Irony that didn't have iron spikes, and the rest of the team sort of grew out of that.


Iron Curtain 2:

3 ants, 1mm Ti.  An undercutter that's equally good against true popups (has trouble against forward-firing popups and Infection 4 though) and shell spinners, as long as they don't Havok too much.  If shell spinners don't Havok it can just take off all the bottom razors and cut off all the shell panels, leaving the top razors untouched.  It can also self-right.


Ferrous Wheel:

3 ants, 1mm armor of some kind.  The goal here was to make a wedge-killing VS with as much weight as possible in the weapon.  It has 14 iron spikes, which is enough to give it a fighting chance even against shell spinners, provided they don't hit the supports.  The weapon is literally low enough to hit skirts on metal hinges from above.


Mother Lode:

1 PC545 and four (?) ants, 3mm plastic, NPC fast drive.  I really like this bot.  The wedge is actually kind of good (can sometimes get under HnM 4), but if the opponent gets under it, Mother Lode has another line of offense.  It fires the wedge up when a bot gets under it, which causes the bot to pitch forward, bringing the drum in contact with the front of the opponent.  If it's a popup, this usually means a few razors will get broken.  Combined with a double layer of bottom armor, Mother Lode can usually either de-weapon popups and then slowly whittle away their front, or flank them and start gut-ripping (it is quite good at flanking).  It's not bad against shell spinners either, and obviously can self-right.


Die-Cast:

3 ants, 1mm plastic, Copal drive.  Most AW HS's have overhead weapons, which makes an undercutter particularly effective.  It can also hit the sides of rammers and threaten the chassis or wheels.  Yes, the flipper segment is slightly unrealistic, but the intent is to have a post going through the axle, like on Megabyte or something.  I just can't put anything on the bottom of the DSL bar because it is either too tall or too short, so the flipper segment has to do.


Thermite:

2 ants, 1 large air tank, 1mm Al, astroflight drive.  This bot went through more revisions than a bill in Congress, and it seemed everything I tried wasn't durable enough.  The flamethrower took up too much weight and I couldn't get enough weapons.  Eventually I threw on a Ti sheet out of frustration... and it actually worked.  It's scary how effective this bot is.  No BW can get through that 12000-HP armor, so Thermite just sits under opponents and burns them from below until they either can't move or time runs out (in which case Thermite wins by points).


I don't know how I de-shelled Princess in that picture, but I had to get a screenie because I have a feeling it will never happen again.  :mrgreen:


Making Thermite even more dangerous is the new .py I made.  I found out how to make the AI hold down the flamethrower control like a human, so the flame never dies out.  You just need to put the Input command in def Activate rather than def Tick.  In a 3-minute match Thermite can get up to 50,000 points.


Irony:

3 ants, 1mm armor of some kind.  Basically a LW Ferrous Wheel.  It can't beat shell spinners, but it is just as good against wedges.  And if the chassis looks familiar, yes it is the same one as Iron Curtain 2.

1632
Tournament Archives / Re: BBEANS6 Awards
« on: October 06, 2010, 09:41:44 PM »
Errrm... no  :embarr   I've been catching up on some other stuff I started during BBEANS6.  But I'll get to the AI pack, I promise.


And there probably won't be an easter egg on the scale of the stock AI pack this time, so that will save some time.  (I'll probably still find a way to sneak in a small easter egg though.)

1633
Tournament Archives / Re: BBEANS6 Awards
« on: October 06, 2010, 09:32:40 PM »
There were some bots with the Stacked Supervolt in BBEANS5, but none of the other ones have been used.


I think I may need to do a bit of rebalancing, not just with the sword... the trick is to not make them too powerful.


The Armored Magmotor is fine as it is though.  I would have used it in BBEANS6, but it didn't really fit into Bisector's design.


And I believe everyone who won one has selected a prize now.  Don't forget to download the prize pack, and in case you forget there's a list of all the prize winners on the main BBEANS page.

1634
Modifications / Re: An RPM-monitoring AI
« on: October 04, 2010, 01:16:03 AM »
-Rev reducer (in case of loss of weapon/stability)


Great idea!  I already have a stall checker, but I didn't think of this.


Oh wait... that would actually be possible to do without the RPM calculator.  Just use an analog and tell it to input at half power when it loses weapons or something.  Still a good idea though.

1635
:O Sonny and Viper are really the same person with a split personality!  Neither one is aware of the other!


*c IPs*


Oh, well, there goes that theory.


Sonny must have downloaded it somehow, and then for some reason deleted it from Robot Designs without scrapping it in the bot lab.  Either that or put it directly in Teams.  And then promptly forgot about it.

1636
Modifications / Re: An RPM-monitoring AI
« on: October 04, 2010, 12:04:35 AM »
So, I've tried to improve the RPM calculator.  And it still seems to have a resolution of only 1/30 second.  I've tried this:


Code: [Select]

        #Measure RPM
        if (self.GetMotorAngle(self.motorID) > math.pi/3 or self.GetMotorAngle(self.motorID) < 0) and self.measuring == 0:
            self.revolution = 0
            self.measuring = 1
           
        if self.measuring == 1:
            self.revolution += self.tickInterval
           
        if 0 < self.GetMotorAngle(self.motorID) < math.pi/3 and self.measuring == 1:
            self.RPM = 50/self.revolution
            if self.display != 0:
                self.RPMhist.append(self.RPM)
                if self.RPM > self.max_RPM:
                    self.max_RPM = self.RPM
            self.measuring = 0


Basically what apanx posted.  But it has the same problem as the old code.  It only goes up to about 1500 RPM, and the accuracy decreases the faster the motor goes.


So then I tried totally rewriting it.  Rather than measure the number of ticks it takes to make a revolution, I measured how far the motor turns in one tick.  In theory, this should be much more precise than the way I had it before, especially at high speeds.


Code: [Select]

        #Measure RPM
        #looping timer for RPM calculation
        self.measuring += 1
        if self.measuring > 1:
            self.measuring = 0
           
        if self.measuring == 1:
            self.angle2 = self.GetMotorAngle(self.motorID)
            #correct for pi/-pi transition area
            if self.angle1 > 0 and self.angle2 < 0 and self.spindir == 1:
                self.angle2 += math.pi*2
            if self.angle1 < 0 and self.angle2 > 0 and self.spindir == 0:
                self.angle1 += math.pi*2
            self.RPM = (abs(self.angle2 - self.angle1)/(math.pi*2))*(60/self.tickInterval)
            if self.display != 0:
                self.RPMhist.append(self.RPM)
                if self.RPM > self.max_RPM:
                    self.max_RPM = self.RPM
           
        if self.measuring == 0:
            self.angle1 = self.GetMotorAngle(self.motorID)


But now, if the tick interval is any shorter than 1/30 second, the calculator frequently returns 0.0 RPM, meaning that it thinks angle1 and angle2 are exactly the same.  (Interestingly, it sometimes returns 0.0 RPM and also double of normal RPM when the tick interval is longer than 1/30 second, though much less frequently).  The only explanation I can think of for this is that RA2 only moves at a frame rate of 30 FPS, so if you try to measure the motor angle more than once in the same frame, you get the same angle and thus an RPM of 0.


So it appears there is no way to overcome the 1/30 second limit, unless I'm missing something here.  Still, this new RPM calculator should be more accurate for speeds closer to 1500 RPM, if I can only get it to work consistently.  As I said, it periodically returns 0 or double RPM's, and the RPM also seems dependent on the tick interval (it returns slightly higher RPM's with shorter tick intervals on the same bot).

1637
Modifications / Re: Blueprint Grid to Baseplate Grid
« on: October 03, 2010, 11:31:34 PM »
This could be even better than my other custom blueprint grid.  All it needs are more subdivisions in the boxes.  Fortunately, these are easily added.

1638
Modifications / Re: NAR AI pack releases !
« on: October 03, 2010, 11:28:28 PM »
Hehehe, I actually made a team... I figure it's about time.  Just need to get them AI'd and submitted before the official release.


They're all wedge-killers and shell spinner-killers, sometimes even both at the same time.

1639
Tournament Archives / Re: IRL Splash, Brackets&Videos
« on: October 03, 2010, 11:07:53 PM »
Slender Man gets the Most Realistic award.  I love how that bot looks.  Complete with decals and everything.


Also, congrats to Craaig.  'Bout time you got a tournament win.  Though it's funny how outdated Queen Calypso is now; it has the same weapons as Blood Orange.  :gawe:

1640
Tournament Archives / Re: ELBITE Splash, Brackets & Vids
« on: October 03, 2010, 10:46:20 PM »
Edit: Using windows LIVE movie maker...


I hear that is nowhere near as good as the XP or Vista versions of WMM.  I'm not sure if you can get either of those versions to work on Windows 7 (which I'm assuming you have).  If not you may need to find something else.


Also, I'm going to start finishing the ELBITE arena now that BBEANS is over.  Never fear.  :mrgreen:

Pages: 1 ... 75 76 77 78 79 80 81 [82] 83 84 85 86 87 88 89 ... 174