This is a MiniZinc based attempt to solve the Modern Art: Masters Gallery game.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
modernart/awards.mzn

31 lines
959 B

/**
AWARDS
This file deals with the awards, which gives 2 points
cumulative score benefit to the artist starting from the round
the award was played in
There are 5 awards - one per artist
*/
% Whether an artist won an award in a given round
array[Rounds,Artists] of var bool: awards_per_round_per_artist;
array[Rounds,Artists] of var int: award_bonus_per_round_per_artist;
% Total number of awards for each artist = 1
constraint forall(a in Artists) ( sum(col(awards_per_round_per_artist,a)) = 1 );
% awards can only be given if an artist's card was played that turn
constraint forall(r in Rounds, a in Artists) (
awards_per_round_per_artist[r,a] -> CardsForArtist[r,a] > 0
);
% Set award_bonus_per_round_per_artist = array[5] with bonus that can be added to ranking scores
constraint forall(r in Rounds, a in Artists) (
award_bonus_per_round_per_artist[r,a] =
if awards_per_round_per_artist[r,a] then
2
else
0
endif
);