Example #1
0
        public void RankPlayers(List <PlayerHand> players)
        {
            StraightFlushHandler straightFlushHandler  = new StraightFlushHandler();
            ThreeofKindHandler   threeofKindHandler    = new ThreeofKindHandler();
            StraightFlushHandler straightFlushHandler1 = new StraightFlushHandler();
            FlushHandler         flushHandler          = new FlushHandler();
            PairHandler          pairHandler           = new PairHandler();

            straightFlushHandler.SetNextHandler(threeofKindHandler);
            threeofKindHandler.SetNextHandler(straightFlushHandler);
            straightFlushHandler.SetNextHandler(flushHandler);
            flushHandler.SetNextHandler(pairHandler);

            foreach (var player in players)
            {
                straightFlushHandler.Process(player);
            }
        }
Example #2
0
        protected BytePtr next; // Assumption: buffer <= next <= bufferLimit
        public BufferedSink(BytePtr buffer, BytePtr bufferLimit, Boolean flushAtWriteLine,
                            Encoder defaultEncoder, FlushHandler flushHandler, Boolean sync)
            : base(flushAtWriteLine, defaultEncoder)
        {
            if (buffer >= bufferLimit)
            {
                throw new ArgumentException(String.Format("buffer {0} must be < bufferLimit {1}", buffer, bufferLimit));
            }
            if (bufferLimit.DiffWithSmallerNumber(buffer) < MinimumBufferSize)
            {
                throw new ArgumentException(String.Format("buffer length {0} is too small (minimum is {1})",
                                                          bufferLimit.DiffWithSmallerNumber(buffer), MinimumBufferSize));
            }
            if (flushHandler == null)
            {
                throw new ArgumentNullException("flushHandler");
            }

            this.buffer       = buffer;
            this.bufferLimit  = bufferLimit;
            this.sync         = sync;
            this.FlushHandler = flushHandler;
            this.next         = buffer;
        }