On Mon, 24 Jan 2005 01:46:58 +0900, James Edward Gray II wrote: > On Jan 23, 2005, at 5:40 AM, Benedikt Huber wrote: > >> Otherwise, a strategy simply selecting a random choice will always >> have a >> 50% chance of winning > > Looks like we are seeing some strategies that do better than 50% > against a random player. ;) This is impossible for players which do not cheat. You can't give any predictions on the next move of a random player. Therefore you have a 1/3 prop. to choose a winning,losing or drawing move. Here is another 'cheater' (which does not redefine a method): SYMBOLS = [ :rock, :paper, :scissors ] KILLER = { :rock => :paper, :paper => :scissors, :scissors => :rock } class BHCheatPlayer < Player def initialize( opponent ) super @opp = Object.const_get(opponent).new(self) end def choose KILLER[@opp.choose] end def result(you,them,result) @opp.result(them,you,result) end end