Results 1 to 5 of 5

Thread: Rumble Bot

  1. #1
    Member
    burnburn is offline

    Posts
    92

    Rumble Bot

    I have been attempting to make a rumble bot with very little success. Basically, i tried to make a scar script that would look at a bmp of each hand, then look for a BMP of 2 same-colored balls with empty space below them(that would ensure they are on the bottom row), and then click the balls with a right or left click. If there are not 2 same colored balls, it looks for one, then if there are none of them, clicks randomly. However, even with the bmp's tolerance really high, it gets confused by the rumble background. Is a client side modification that removes the background possible? (and is that wise, since that might be detectable?)
    How does the dreaming of sprinkles bot recognize colors and launch the pieces at them? That's basically how an ideal rumble sprinkles bot would work as well.

  2. #2
    Member
    savagesun is offline

    Posts
    72
    You don't really have to compare images to find the position of the balls on the board. You could just figure out the pattern of the board, and then create a loop of some sort that searches through the board and checks a single color where a ball could be. You shouldn't have to remove a background in order to read in the board. If you do then you wrote it wrong.

    Edit: You'll still need an image of the board itself though.

  3. #3
    Member
    burnburn is offline

    Posts
    92
    But having it shoot at a single color will make it create 2-block groups, or try to shoot at a block that's covered by other blocks. A loop that starts the search at the bottom and moves up, stopping when it finds a 2 ball target is a good idea and one that i think i can use- but to my (admittedly limited) knowledge I'd still have to use a findbmp function rather than a find color so that it focuses on the bottom row.

    ". You could just figure out the pattern of the board, and then create a loop of some sort that searches through the board and checks a single color where a ball could be."
    What do you mean by that?
    I looked into how to do this with java, but my knowledge of java is pretty slim and i have not been able to figure out how to do the image comparisons.
    Last edited by burnburn; 12-02-2013 at 04:15 PM.

  4. #4
    Member
    savagesun is offline

    Posts
    72
    I really don't know shit about SCAR so bear with me if this is out of the scope of the scripting abilities.

    One of us is not understanding your problem. It sounds like you can't figure out how to properly read in the board (your bot doesn't understand corners?). Things like searching for connected balls comes after properly reading. You (could) read in the board as a 2D array of integers having a single number represent a colored ball ID. Gather an RGB value for each ball at a certain point on the ball image (if it's 20x20 try grabbing a pixel color at (5, 5) or something). When reading in you need to know the way the board fills itself out so you are comparing pixel colors in the right area. It's a little hard to explain but the rumble board is not completely uniform so when iterating you'd need to include a sort of padding value every other row since every other row the balls start appearing something like 10 pixels in. Anyways, when you manage to figure out the right values to read in if your bot happens to find a color that is not included in the ball colors you collected assume it's an empty space.

    If you are actually reading in the board fine and you have an array that includes empty spaces & colored balls and you can't figure out which ones are at the end then you need to do some iterations over the array. Every iteration for each ball check the values in the array that are immediately around it, if you determine that there is no open space around it then you can assume (for the most part) that it is an edge ball. Of course you have a chance of finding a ball this is not possible to hit but still touches open space so you'll want to compensate for that at some point.

    If you can't figure out how to find balls that are touching each other, it's the same as above. You just iterate through the board, for each ball you iterate over check the surrounding spaces and if they happen to be the same color then return that ball value or something.

  5. #5
    Member
    burnburn is offline

    Posts
    92
    Quote Originally Posted by savagesun View Post
    I really don't know shit about SCAR so bear with me if this is out of the scope of the scripting abilities.

    One of us is not understanding your problem. It sounds like you can't figure out how to properly read in the board (your bot doesn't understand corners?). Things like searching for connected balls comes after properly reading. You (could) read in the board as a 2D array of integers having a single number represent a colored ball ID. Gather an RGB value for each ball at a certain point on the ball image (if it's 20x20 try grabbing a pixel color at (5, 5) or something). When reading in you need to know the way the board fills itself out so you are comparing pixel colors in the right area. It's a little hard to explain but the rumble board is not completely uniform so when iterating you'd need to include a sort of padding value every other row since every other row the balls start appearing something like 10 pixels in. Anyways, when you manage to figure out the right values to read in if your bot happens to find a color that is not included in the ball colors you collected assume it's an empty space.

    If you are actually reading in the board fine and you have an array that includes empty spaces & colored balls and you can't figure out which ones are at the end then you need to do some iterations over the array. Every iteration for each ball check the values in the array that are immediately around it, if you determine that there is no open space around it then you can assume (for the most part) that it is an edge ball. Of course you have a chance of finding a ball this is not possible to hit but still touches open space so you'll want to compensate for that at some point.

    If you can't figure out how to find balls that are touching each other, it's the same as above. You just iterate through the board, for each ball you iterate over check the surrounding spaces and if they happen to be the same color then return that ball value or something.
    Thanks for the advice, I'll try to go this route and see if i can create something usable.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •