mirror of https://github.com/captn3m0/modernart
22 lines
1013 B
MiniZinc
22 lines
1013 B
MiniZinc
% 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
|
|
); |