% This file maintains common symbol constraints % Since we are modelling each symbol individually (and not "on-a-card"), this results in % symbol counts being calculated in isolation. % Sanity constraints on each symbol file individually ensure % that atleast one card of the symbol was played by the correct played % they do not ensure that across symbols % and hence, the same card may end up getting counted twice for different symbols. % this file prevents such issues % and may ultimately end up replacing separate symbol counters constraint forall(r in Rounds, a in Artists) ( % Total number of cards played by all players % MINUS total number of Draw One Cards played by all players sum (p in Players) ( visible_count_per_round_per_artist_per_player[r,p,a] - DrawOneCard[r,p,a] ) % MINUS total number of awards given this round - (if AwardPlayedInRound[a] = r /\ AwardGiven[a] then 1 else 0 endif) % Is the number of Symbol Cards played this turn % and it can't be negative >= 0 );