anchor.diff:    Event = #event{type=?tarabish_EventType_TAKE_TRICK, seat=BestSeat},
     table:broadcast(State#state.table, Event),
   
  -  Event2 = #event{type=?tarabish_EventType_ASK_CARD, seat=BestSeat},
  -  table:broadcast(State#state.table, Event2),
  -
  -  % TODO: handle trick 9 - score, etc
  -  NewOrder = create_order(BestSeat),
  -  {reply, ok, wait_card, State#state{order=NewOrder, inplay=[]}};
  +  {Cards, _Seats} = lists:unzip(InPlay),
  +  BestSeatScore = (BestSeat rem 2) + 1,
  +  CardScore = deck:score_cards(Cards, State#state.trump),
  +  OldScore = element(BestSeatScore, State#state.hscore),
  +  NewScores = setelement(BestSeatScore, State#state.hscore, CardScore + OldScore),
  +
  +  process_trick(BestSeat, State#state{hscore=NewScores});
   
   process_card(Seat, Card, Rest, State) ->
         Event1 = #event{type=?tarabish_EventType_ASK_CARD, seat=hd(Rest)},
  
positive.code:   AskCardEvent = #event{type=?tarabish_EventType_ASK_CARD, seat=hd(PlayOrder)},
    table:broadcast(State#state.table, AskCardEvent),
  
    {reply, ok, wait_card, State1#state{order=PlayOrder,
                                        trick=1,
                                        inplay=[],
                                        ledin=?tarabish_NONE,
                                        trump=Suit}};
  
  wait_trump(_Event, _From, State) ->
    {reply, {error, invalid}, wait_trump, State}.
  
  % First card of the trick
  process_card(Seat, Card, Rest, #state{ledin=?tarabish_NONE} = State) ->
  
negative.code:   DealerEvent = #event{type=?tarabish_EventType_DEALER, seat=Dealer},
    table:broadcast(Table, DealerEvent),
  
    State = new_hand(Dealer, #state{table=Table, score={0,0}}),
    State1 = deal3(State),
    State2 = deal3(State1),
  
  