Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Japan Robotics AI Games

Robot Hand Beats You At Rock, Paper, Scissors 100% of the Time 225

wasimkadak writes "This robot hand will play a game of rock, paper, scissors with you. Sounds like fun, right? Not so much, because this particular robot wins every. Single. Time. It only takes a single millisecond for the robot to recognize what shape your hand is in, and just a few more for it to make the shape that beats you, but it all happens so fast that it's more or less impossible to tell that the robot is waiting until you commit yourself before it makes its move, allowing it to win 100% of the time."

This discussion has been archived. No new comments can be posted.

Robot Hand Beats You At Rock, Paper, Scissors 100% of the Time

Comments Filter:
  • What would happen... (Score:5, Interesting)

    by NettiWelho ( 1147351 ) on Wednesday June 27, 2012 @03:54AM (#40464485)
    ... If you pitted 2 of these machines against eachother?
  • Re:Cheater. (Score:2, Interesting)

    by Anonymous Coward on Wednesday June 27, 2012 @04:37AM (#40464733)

    That all depends on how many rounds you do.

    1 round guarantees someone'll win 100% of the time 100% of the time.

  • by mcavic ( 2007672 ) on Wednesday June 27, 2012 @04:49AM (#40464781)
    How about if you pair two of these robots against each other? Deadlock?
  • by nneonneo ( 911150 ) <spam_hole.shaw@ca> on Wednesday June 27, 2012 @04:51AM (#40464791) Homepage

    I once participated in a Rock-Paper-Scissors tournament put on by Epson (see, for example, http://www.campuslogix.com/rps_challenge/rps_challenge.html [campuslogix.com]). They basically said "write a bot that will play RPS". Of course, the game-theoretic optimal strategy in such a contest is to just play randomly. You can beat the (Epson-supplied) rockbots and rotatebots easily, so with a bit of work you can do slightly above average.

    Seeking a greater advantage, though, I coded my bot to also include a set of predictors for the random number generators for several popular libcs (as I did not which OS or distro the tournament machine would use). During a round, I would guess the random seed (current system time +/- a few seconds), the sequence offset, RNG processing strategy, and the algorithm used, and simply run a parallel copy of the libc RNG used by my opponent.

    I was therefore able to beat most RNG-using opponents 9998/10000 times easily, a finding which rather surprised the judges :) I didn't win top prize (algorithm wasn't fast enough, and it turns out that was weighted more heavily than I expected), but I did get a high ranking and a cash prize.

    Goes to show: sometimes a bit of "cheating" works well.

  • by SuricouRaven ( 1897204 ) on Wednesday June 27, 2012 @05:26AM (#40464955)
    Deadlock: Neither would move until it can determine the intent of the other, which won't be detectable until that other has started to move. So they'd both just wait for the opponent to go first.

    A Doctor Who classic episode actually used this theme, with two androids playing RPS against each other. As both AIs were written using the same algorithms, they derived exactly the same strategy in an attempt to predict each other's moves... and every round was a draw, as they always threw the same. The game was played to show why they had sought the Doctor's help in ending an android/Dalek war: As both sides were using computers of near-identical design to determine their actions, every move either side made was preempted and countered by the other to the point that no successful attack could be executed and the war was locked in unbreakable stalemate.
  • Re:Cheater. (Score:2, Interesting)

    by MickLinux ( 579158 ) on Wednesday June 27, 2012 @06:28AM (#40465237) Journal
    Open a book, take the even page number, divide by 2, and then the modulus vs. however many options you want.
  • by Anonymous Coward on Wednesday June 27, 2012 @07:55AM (#40465627)

    I don't believe you. I think you're describing what you would have *liked* to have done, but you didn't actually do this.

    1) A random response is not "the game-theoretic optimal strategy" to a random opponent. It may be *an* optimal strategy by some limited definition, but no computer scientist would speak so loosely. And random number generation is certainly not the *fastest* strategy. You just wanted to use the term "game-theoretic optimal strategy".

    2) If the bot is playing truly randomly then you cannot "beat" it easily, let alone do slightly above average "with a bit of work". Otherwise you're just exploiting its non-randomness.

    3) You had access to the source code for "several popular" C libraries? (Most even wrote their code in C?)

    4) You would guess the random seed (by assuming a reasonably accurate system time), sequence offset, processing strategy AND algorithm used? Really? Give us some details. The input domain here is multidimensionally huge. Even assuming most people use insecure PRNG, you could still automagically identify "most" of those opponents' algorithms?

    Unless your competitors mostly did srand(time(0)) and then equally partitioned the rand() output domain into contiguous R, P and S intervals - which would mean that no-one took the competition seriously - your task would take an age.

Anyone can make an omelet with eggs. The trick is to make one with none.

Working...