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); } }
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; }