Difference between revisions of "User:Awesomeness"

From Robowiki
Jump to navigation Jump to search
(Problem)
(User page update)
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{|class="userboxes" style="margin-left: 1em;; margin-bottom: 0.5em; width: 248px; border:#99B3FF solid 1px; background-color: #FFFFFF; color:#000000;float:right"
 +
|<div style="text-align: center; font-size: 120%; font-weight: bold;">Userboxes</div>
 +
 +
<div style="float:left; border:1px solid #999; margin:1px;">
 +
{| cellspacing="0" style="width:238px; background:#EEE;"
 +
| style="width:45px; height:45px; background:#DDD; text-align:center; font-size:12pt; color:black; padding:1pt; line-height:1.25em;" | '''?'''
 +
| style="font-size:8pt; padding:4pt; line-height:1.25em; color:black;" | The next userbox is false.
 +
|}</div>
 +
 +
<div style="float:left; border:1px solid #999; margin:1px;">
 +
{| cellspacing="0" style="width:238px; background:#EEE;"
 +
| style="width:45px; height:45px; background:#DDD; text-align:center; font-size:12pt; color:black; padding:1pt; line-height:1.25em;" | '''?'''
 +
| style="font-size:8pt; padding:4pt; line-height:1.25em; color:black;" | The previous userbox is true.
 +
|}</div>
 +
 +
<div style="float:left; border:1px solid #999; margin:1px;">
 +
{| cellspacing="0" style="width:238px; background:#FCC;"
 +
| style="width:45px; height:45px; background:#FDD; text-align:center; font-size:14pt; color:black; padding:1pt; line-height:1.25em;" | '''LOL'''
 +
| style="font-size:8pt; padding:4pt; line-height:1.25em; color:black;" | This user loves to watch robots explode as they try to comprehend the previous two userboxes.
 +
|}</div>
 +
 +
<div style="float:left; border:1px solid #999; margin:1px;">
 +
{| cellspacing="0" style="width:238px; background:#FFA;"
 +
| style="width:45px; height:45px; background:#FFC; text-align:center; font-size:14pt; color:black; padding:1pt; line-height:1.25em;" | '''=)'''
 +
| style="font-size:8pt; padding:4pt; line-height:1.25em; color:black;" | This user dislikes smileys like this: :-) and prefers: =)
 +
|}</div>
 +
|}
 +
 
== About Me ==
 
== About Me ==
  
Hello!  I found this while looking around on the internet!  It's so cool!  Even though I'm only 13, I'm a pretty good at Java and really good at Python.
+
Hello!  I found this while looking around on the internet!  It's so cool!  Even though I'm only 14, I'm a pretty good at Java and really good at Python.
  
 
== My Projects ==
 
== My Projects ==
  
Currently I am working on a robot called DodgeBot. It's named that because it was originally intended to dodge bullets. I'm going to rename it when I think it's finished.  He has a superb movement system that dodges many, many bullets.  It gets 75% against [[N]], which I'm very proud of =)  It is totally a one on one robot, and it's movement is stimulated by it's target shooting, which works because enemies usually shoot a lot XD
+
NEWS: I have decided to make a tutorial on [[Virtual Bullets]]. I'll finish it soon, but I have a busy weekend.
  
 +
NEWS:  Before I came back, I created a NanoBot called Elite.  It's melee oriented.  After I came back, I made him into [[PwnBot]], a 1-on-1 oriented version.  They are similar.  I'll post PwnBot in the repository soon; I'm almost done.
  
DodgeBot has superb movement. I like it a lot.  It's simple tooHowever, the code in my opinion is a little on the long side (I'm not good at making code shorter) and it's gun isn't that good.  It never loses a lock once it's found a target! Note that although DodgeBot does okay in melee, it is strictly a one-on-one robot.  I have discovered that many of my one-on-one bots do VERY well in melee too...
+
NEWS: I'm backAfter lots of busy schoolcrap I've finally found the time again!
  
NEWS:  I've finished!  Check it out at the [[Fission]] page.
+
I've finished!  Check it out at the [[Fission]] page.  EDIT:Now that I look back, it's not that great, lol.
  
 
Anyway, I'm also working on my first NanoBot, and man, it's hard!  You have to seriously cut back on code.  It takes many sacrifices.  However, my new bot, Elite, is doing fine.  In a hundred rounds it gets 70% against [[N]], and a startling 64% against [[PulsarNano]], 22nd in the overall world rankings.  Elite seems to be very competitive.  I also made it on my own;  didn't take any code or ideas from anyone else.  I was just bored in study hall XD  He also gets 51% on NanoSatan.
 
Anyway, I'm also working on my first NanoBot, and man, it's hard!  You have to seriously cut back on code.  It takes many sacrifices.  However, my new bot, Elite, is doing fine.  In a hundred rounds it gets 70% against [[N]], and a startling 64% against [[PulsarNano]], 22nd in the overall world rankings.  Elite seems to be very competitive.  I also made it on my own;  didn't take any code or ideas from anyone else.  I was just bored in study hall XD  He also gets 51% on NanoSatan.
 +
 +
 +
== Research ==
 +
 +
=== Current Research ===
 +
 +
'''Targeting Using Trees'''
 +
----
 +
I've had an interesting targeting idea using trees.  There would be one universal starting point, the stump, at the base of a "tree" of movement.  Say at the beginning of a battle the enemy bot acts like MyFirstBot, and move forward, stops, moves back, and stops.  Each branch on the tree would have what the robot did and how many times it's done that.  If the robot does this sequence again, it'd search through the tree and say, "Oh!  This looks like 'move forward, stop, move back, stop'!" and aim where it'd be in that sequence by the time the bullet would get there.  If it worked, add to the number of times that sequence has happened.  If it didn't, create a new branch that has what the bot really did.  Let's just say it works the second time.  The tree would look like:
 +
[[Image:Tree.png|463px|thumb|left|This!]]
 +
 +
 +
 +
Of course you can see there's no branches, it's just one long sequence.  Say next time, the enemy tries to trick the robot by moving slightly differently once, and then switching back to the original movement.  It would start out using the original movement; it moves forward, stops, but then, it turns and moves back, changing the variable T, turn rate, and stops!  It would mess up the first time doing the original movement pattern, but then once it switches back he'd be hit by bullets again immediately. Because the original movement had more #, it was used.  This doesn't mean the new movement pattern was ignored; another branch was created for it, it's just its # was smaller.  # could be more statistical, (maybe the hit percentage when this sequence is used) you could add more things to consider in the tree, such as distance, just like [[segmentation]]!  Unfortunately, unless # decreased over time, like data decay, and when it gets to 0 it disappears, the number of branches would increase exponentially.  Anyway, to me it seems like [[Pattern Matching]], but you take in multiple factors into your decision making and pattern recognizing, which may, or may not, make it more accurate.  I just came up with this.  The idea was inspired by three things:
 +
 +
 +
* I've been curious if it was possible to do Guess Factor Targeting with the results of a Pattern Matcher as some of the segmentation.
 +
 +
* I've been working with trees, searches, and optimization in my compression program.
 +
 +
* I simple combined these two ideas while daydreaming about random stuff.  My mind drifted to Robocode, then my compression program, and then I started thinking about them both, and...  BAM!  It hit me.  Literally.  I got the idea while tripping.  My jaw hit a wooden arm rest in my school auditorium and it hurt a lot.  But I came up with a new idea!  =D
 +
 +
 +
 +
''Progress''
 +
----
 +
 +
I have made a few lists that record enemy data for the past 50 ticks, and I have made a TreeNode class to build the tree with.  I have a bunch of numbers to record and I've built a searcher.  You give it some data to search for, and it searches the whole tree (Well, if you search using the root node) for a match.  If it finds more than one match, it uses the one that occurs most.  It's very primitive though.  It doesn't so far use its parent node, looking to see if movement history matches it.  It needs a bunch of optimizing.  Also, by the way [[Nat]], I found out that my tree idea is totally different than [[LambdaBot|LambDaBot's]] tree idea.  Mine searches through a tree of movement, looking for matches and using that to predict the enemy's  movement, while [[LambdaBot]] uses trees to look through possible movement options, and finding long strings of moves (one move is one tick) and rating them by a "successfullness" rating, like how much of an advantage his position, bearing, and velocity will have in that position, like chess.
 +
 +
 +
=== Finished Research ===
 +
 +
None so far.
  
  
 
== Newest News ==
 
== Newest News ==
  
 +
I'm back!  The TargetTree project is '''way''' too difficult for me.  I'm going to postpone it for a while because I'm still learning the ropes.  I'll continue work some day.  Now that I think about it, the tree gun I've been making is a lot like a pattern matcher, but instead of just using only one section of movements to predict exactly where the robot would go if he did the exact same thing, it uses all of the movements.  It follows the tree down until it finds a match, and, so far, it would select the branch that has occurred most.  I might add things like rolling averages.  I suppose it might be a combination of pattern matching and statistics.  But this is way, way out of my league.  I won't be able to finish this for at least a year.
 +
 +
== Older News ==
 +
 +
I haven't been around for a while.  I've been finishing my file compression program and making games.  I might be back in a while, but I'm not done yet.
 +
 +
I have started on my targeting idea and made progress!
 +
 +
That bot, which was [[PwnBot]], never worked out.  I found there was nothing I could do with the bullet simulation.  Still, I learned a lot and I may use the VirtualBullet class I made in the future.
  
Recently I have been working on my first really complicated bot.  I'm using trigonometry and having to invent my own formulas.  It's really hard because I'm only in seventh grade!  However, my bullet simulators and predictors are doing fine.  I have only one problem so far, and it's not even trigonometry!  I'll mention it on the talk page.
+
Recently I have been working on my first really complicated bot.  I'm using trigonometry and having to invent my own formulas.  It's really hard because I'm only in seventh grade!  However, my bullet simulators and predictors are doing fine.

Latest revision as of 04:51, 23 January 2010

Userboxes
? The next userbox is false.
? The previous userbox is true.
LOL This user loves to watch robots explode as they try to comprehend the previous two userboxes.
=) This user dislikes smileys like this: :-) and prefers: =)

About Me

Hello! I found this while looking around on the internet! It's so cool! Even though I'm only 14, I'm a pretty good at Java and really good at Python.

My Projects

NEWS: I have decided to make a tutorial on Virtual Bullets. I'll finish it soon, but I have a busy weekend.

NEWS: Before I came back, I created a NanoBot called Elite. It's melee oriented. After I came back, I made him into PwnBot, a 1-on-1 oriented version. They are similar. I'll post PwnBot in the repository soon; I'm almost done.

NEWS: I'm back! After lots of busy schoolcrap I've finally found the time again!

I've finished! Check it out at the Fission page. EDIT:Now that I look back, it's not that great, lol.

Anyway, I'm also working on my first NanoBot, and man, it's hard! You have to seriously cut back on code. It takes many sacrifices. However, my new bot, Elite, is doing fine. In a hundred rounds it gets 70% against N, and a startling 64% against PulsarNano, 22nd in the overall world rankings. Elite seems to be very competitive. I also made it on my own; didn't take any code or ideas from anyone else. I was just bored in study hall XD He also gets 51% on NanoSatan.


Research

Current Research

Targeting Using Trees


I've had an interesting targeting idea using trees. There would be one universal starting point, the stump, at the base of a "tree" of movement. Say at the beginning of a battle the enemy bot acts like MyFirstBot, and move forward, stops, moves back, and stops. Each branch on the tree would have what the robot did and how many times it's done that. If the robot does this sequence again, it'd search through the tree and say, "Oh! This looks like 'move forward, stop, move back, stop'!" and aim where it'd be in that sequence by the time the bullet would get there. If it worked, add to the number of times that sequence has happened. If it didn't, create a new branch that has what the bot really did. Let's just say it works the second time. The tree would look like:

This!


Of course you can see there's no branches, it's just one long sequence. Say next time, the enemy tries to trick the robot by moving slightly differently once, and then switching back to the original movement. It would start out using the original movement; it moves forward, stops, but then, it turns and moves back, changing the variable T, turn rate, and stops! It would mess up the first time doing the original movement pattern, but then once it switches back he'd be hit by bullets again immediately. Because the original movement had more #, it was used. This doesn't mean the new movement pattern was ignored; another branch was created for it, it's just its # was smaller. # could be more statistical, (maybe the hit percentage when this sequence is used) you could add more things to consider in the tree, such as distance, just like segmentation! Unfortunately, unless # decreased over time, like data decay, and when it gets to 0 it disappears, the number of branches would increase exponentially. Anyway, to me it seems like Pattern Matching, but you take in multiple factors into your decision making and pattern recognizing, which may, or may not, make it more accurate. I just came up with this. The idea was inspired by three things:


  • I've been curious if it was possible to do Guess Factor Targeting with the results of a Pattern Matcher as some of the segmentation.
  • I've been working with trees, searches, and optimization in my compression program.
  • I simple combined these two ideas while daydreaming about random stuff. My mind drifted to Robocode, then my compression program, and then I started thinking about them both, and... BAM! It hit me. Literally. I got the idea while tripping. My jaw hit a wooden arm rest in my school auditorium and it hurt a lot. But I came up with a new idea! =D


Progress


I have made a few lists that record enemy data for the past 50 ticks, and I have made a TreeNode class to build the tree with. I have a bunch of numbers to record and I've built a searcher. You give it some data to search for, and it searches the whole tree (Well, if you search using the root node) for a match. If it finds more than one match, it uses the one that occurs most. It's very primitive though. It doesn't so far use its parent node, looking to see if movement history matches it. It needs a bunch of optimizing. Also, by the way Nat, I found out that my tree idea is totally different than LambDaBot's tree idea. Mine searches through a tree of movement, looking for matches and using that to predict the enemy's movement, while LambdaBot uses trees to look through possible movement options, and finding long strings of moves (one move is one tick) and rating them by a "successfullness" rating, like how much of an advantage his position, bearing, and velocity will have in that position, like chess.


Finished Research

None so far.


Newest News

I'm back! The TargetTree project is way too difficult for me. I'm going to postpone it for a while because I'm still learning the ropes. I'll continue work some day. Now that I think about it, the tree gun I've been making is a lot like a pattern matcher, but instead of just using only one section of movements to predict exactly where the robot would go if he did the exact same thing, it uses all of the movements. It follows the tree down until it finds a match, and, so far, it would select the branch that has occurred most. I might add things like rolling averages. I suppose it might be a combination of pattern matching and statistics. But this is way, way out of my league. I won't be able to finish this for at least a year.

Older News

I haven't been around for a while. I've been finishing my file compression program and making games. I might be back in a while, but I'm not done yet.

I have started on my targeting idea and made progress!

That bot, which was PwnBot, never worked out. I found there was nothing I could do with the bullet simulation. Still, I learned a lot and I may use the VirtualBullet class I made in the future.

Recently I have been working on my first really complicated bot. I'm using trigonometry and having to invent my own formulas. It's really hard because I'm only in seventh grade! However, my bullet simulators and predictors are doing fine.