modernart/modernart.mzn

37 lines
1.2 KiB
MiniZinc
Raw Normal View History

2020-06-10 19:17:54 +00:00
include "gameplay.mzn";
2020-06-10 13:03:07 +00:00
enum Players;
enum Artists;
enum Rounds;
Players = {Nemo, Jana, Adam};
2020-06-13 11:59:08 +00:00
% The order here is opposite of what you'd usually use while playing the game
% because this results in LiteMetal getting a higher numeric value and that makes
% sorting much easier
2020-06-13 11:59:08 +00:00
2020-06-10 13:03:07 +00:00
Artists = {Krypto,KarlGitter,ChristinP,Yoko,LiteMetal};
Rounds = {Round1, Round2, Round3, Round4};
2020-06-10 13:03:07 +00:00
% Number of cards per round per player per artist
array[Rounds,Players,Artists] of var int: visible_count_per_round_per_artist_per_player;
2020-06-10 18:44:01 +00:00
% First player every Round
array[Rounds] of var Players: first_player;
% Closing player every Round
array[Rounds] of var Players: last_player;
% Total points that an artist has in a given round
array[Rounds,Artists] of var int: total_score_per_round_per_artist;
2020-06-10 13:03:07 +00:00
% Total number of a cards of an artist that were PLAYED this round
array[Rounds, Artists] of var int: CardsForArtist;
% Number of Turns played by the closing player this round
array[Rounds] of var int: NominalTurnCount;
2020-06-10 13:03:07 +00:00
2020-06-11 10:26:20 +00:00
% constraint award_bonus_per_round_per_artist[Round1,Krypto] = true;
% constraint award_bonus_per_round_per_artist[Round1,Yoko] = true;
% constraint award_bonus_per_round_per_artist[Round1,ChristinP] = true;
solve maximize Score[Nemo];