--------------010706050109070401000700
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Test results (-m 5000)(Generated using my edited paper_rock_scissors.rb):

 #		   Name      Score
 1        AJBMetaPlayer    53116.0
 2           JIXPlayerD    50965.0
 3      DRPatternPlayer    49527.0
 4           JIXPlayerM    48782.5
 5     AJBHistoryPlayer    45518.0
 6       CNBiasInverter    35336.0
 7      AJBRandomPlayer    35101.5
 8            CNIrrflug    33951.5
 9           JIXPlayerT    31794.5
10           JIXPlayerC    26901.0
11        CNBiasFlipper    23821.5
12        CNBiasBreaker    23498.5
13          CNStepAhead    23043.0
14   AJBFrequencyPlayer    22988.5
15         CNMeanPlayer    20655.5

JIXPlayer D,T and C:
D: Dynamic Length Markov Chains
T: Word lengths of a text ;)
C: p r r s p s,p r r s ...



--------------010706050109070401000700
Content-Type: text/plain; x-mac-type="2A2A2A2A"; x-mac-creator="48647261";
 nameix_player_c.rb"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filenameix_player_c.rb"

class JIXPlayerC < Player
    def initialize( opponent )
        @que{paper rock rock scissors paper scissors}.map{|z|z.to_sym}
        @i    end
    def choose
        @i+        @i%ue.size 
        @que[@i]
    end
end
--------------010706050109070401000700
Content-Type: text/plain; x-mac-type="2A2A2A2A"; x-mac-creator="48647261";
 nameix_player_d.rb"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filenameix_player_d.rb"

class JIXPlayerD < Player
    WIN  :paper :scissors, :rock :paper , :scissors :rock}
    def initialize( opponent )
        @mk
sh.new
        @lastil]*10
    end
    
    def choose
        out  ]
        0.upto(@last.size-2) do |z|
        
            if !@last[z].nil?
                nodekey  last[z..-1].map do |i|
                    i[0].to_s+"-"+i[1].to_s
                    #i[1].to_s
                end.join(",")
            out << @mk[nodekey] if @mk[nodekey]

            end
        end

        return [:paper,:rock,:scissors][rand(3)] if out []
        
        out.sort_by{|z| - z.dfm}
        out[0].choose
    end
    
    def result( you, them, win_lose_or_draw )
        
        
        0.upto(@last.size-2) do |z|
            if !@last[z].nil?
                nodekey  last[z..-1].map do |i|
                    i[0].to_s+"-"+i[1].to_s
                    #i[1].to_s
                end.join(",")
            @mk[nodekey] KNode.new if !@mk[nodekey]
            @mk[nodekey]<< WIN[them]
            end
        end


        @last[0,1]
        @last<< [you,them]

    end
    private


    
    class MKNode
        def initialize(paperrockscissors
            @paper
per
            @rockck
            @scissors
issors end def choose if @paper+@rock+@scissors 0 [:paper,:rock,:scissors][rand(3)] else rnd and(@paper+@rock+@scissors) if rnd < @paper :paper elsif rnd < @paper+@rock :rock else :scissors end end end def dfm mid @paper+@rock+@scissors)/3.0 (mid-@paper).abs+(mid-@rock).abs+(mid-@scissors).abs+mid end def <<(x) case x when :paper @paper+ when :rock @rock+ when :scissors @scissors+ end end def inspect max paper+@rock+@scissors.to_f if max 0 "#<JIXPlayerDM::MKNode --- >" else "#<JIXPlayerDM::MKNode p{#{@paper/max}} r{#{@rock/max}} s{#{@scissors/max}} dfm{#{dfm}}>" end end end end --------------010706050109070401000700 Content-Type: text/plain; x-mac-type="2A2A2A2A"; x-mac-creator="48647261"; nameix_player_t.rb" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filenameix_player_t.rb" class JIXPlayerT < Player def initialize( opponent ) text <'EOT' Man is driven to create; I know I really love to create things. And while I'm not good at painting, drawing, or music, I can write software. Shortly after I was introduced to computers, I became interested in programming languages. I believed that an ideal programming language must be attainable, and I wanted to be the designer of it. Later, after gaining some experience, I realized that this kind of ideal, all-purpose language might be more difficult than I had thought. But I was still hoping to design a language that would work for most of the jobs I did everyday. That was my dream as a student. Years later I talked with colleagues about scripting languages, about their power and possibility. As an object-oriented fan for more than fifteen years, it seemed to me that OO programming was very suitable for scripting too. I did some research on the 'net for a while, but the candidates I found, Perl and Python, were not exactly what I was looking for. I wanted a language more powerful than Perl, and more object-oriented than Python. Then, I remembered my old dream, and decided to design my own language. At first I was just toying around with it at work. But gradually it grew to be a tool good enough to replace Perl. I named it Ruby---after the precious red stone---and released it to the public in 1995. Since then a lot of people have become interested in Ruby. Believe it or not, Ruby is actually more popular than Python in Japan right now. I hope that eventually it will be just as well received all over the world. I believe that the purpose of life is, at least in part, to be happy. Based on this belief, Ruby is designed to make programming not only easy, but also fun. It allows you to concentrate on the creative side of programming, with less stress. If you don't believe me, read this book and try Ruby. I'm sure you'll find out for yourself. I'm very thankful to the people who have joined the Ruby community; they have helped me a lot. I almost feel like Ruby is one of my children, but in fact, it is the result of the combined efforts of many people. Without their help, Ruby could never have become what it is. I am especially thankful to the authors of this book, Dave Thomas and Andy Hunt. Ruby has never been a well-documented language. Because I have always preferred writing programs over writing documents, the Ruby manuals tend to be less thorough than they should be. You had to read the source to know the exact behavior of the language. But now Dave and Andy have done the work for you. They became interested in a lesser-known language from the Far East. They researched it, read thousands of lines of source code, wrote uncountable test scripts and e-mails, clarified the ambiguous behavior of the language, found bugs (and even fixed some of them), and finally compiled this great book. Ruby is certainly well documented now! Their work on this book has not been trivial. While they were writing it, I was modifying the language itself. But we worked together on the updates, and this book is as accurate as possible. It is my hope that both Ruby and this book will serve to make your programming easy and enjoyable. Have fun! Yukihiro Matsumoto, a.k.a. ``Matz'' EOT @sizesョィッロ゛チュレュワンッャ「「ゥョィッワォッゥョョ・ウ タ ィタョゥ タォ タ・ョ ロコャコャコンロタロタンン ュュュュュュュュュュュュュューアーキーカーオーアーケーキーエーアーーーキーー テュヤコ ッサ ュュス「イチイチイチイチ「サ ュュス「エクカエキイカア「サ ゜゜ョ「 テュヤュナコ キ テュトコ サ ゜゜ョ「 」。ッッッ ミ タタ ン ョィ ゥ タタ シシ ョ゜ ィーョョョィタタョ ュ アゥゥョ ィィ ォ アゥョョョタタョゥョ タタロンャ タタロン ィ ゥ タ ホヘナャ 「ミ ィゥョ「 ィ ャ ャ ゜゜゜ ゥ 」 ュュ ヌ ゜ コアャコイ ィ アャ イ ゥ タア アョィイョ゜ゥ タイ イョィアョ゜ゥ タア タイ ィ ゥ ョ ア アョ イ イョ ア コ イ コ アャ イ コ タアャ アャ イ コ タイャ アャ イ 「ノ 」タイョョ「 コ イ コ タイャ アャ イ コ アャ イ コ タアャ アャ イ 「ノ 」タイョョ「 コ イ コ タアャ アャ イ コ タイャ アャ イ コ アャ イ 「ノ 」タイョョ「 「ノ 」タアョョ「 」タアョ ョ 」タイョワ「 ォ 「ワ」タアョコ 」タアワ「 ォ 「ワ」タイョコ 」タイワ「 タア タイ ォ 「ワトワ「 タア セ タイ ォ 「ワ」タアョ ラワ「 ォ 「ワ」タイョ ラワ「 ィ アャ イ ゥ タア ォ ョオ タイ ォ ョオ タアョィアャ イャ コゥ タイョィイャ アャ コゥ ィ ャ アャ イ ゥ タア タア ォ タアョィアャ イャ コゥ タイョィイャ アャ コゥ タイ ォ タアョィアャ イャ コゥ タイョィイャ アャ コゥ ゜゜ ーーー チメヌヨョ セ イ チメヌヨローン 「ュ「 チメヌヨロアン ッ゛ロアュケンワェ、ッ チメヌヨョ ゜゜ メヌヨョョ゜ チメヌヨョ ィソャ ゥ トョィゥ ッ゛ワョッ ッワョ、ッ ニョィャ ゥ ョィーゥ ミョ゜ ャ ョ ャ ョ ゜゜ ョ ロンォ ョア ロンォ ョイ ィ「・イ ・イー ・アー「 ・ ロ「」「ャ「ホ「ャ「モ「ンゥ ョ゜ョ゜ュロアンョ ィ「・イ ・イー ・アーョア「 ・ ロォローンャロアンンゥ ュュュュュュュュュュュュュューアーキーカーオーアーケーキーエーアーーーキーーュュ