From f4df68533b198231a6b2445cd3a677386fda5e0f Mon Sep 17 00:00:00 2001 From: Nemo Date: Sun, 14 Jun 2020 01:48:15 +0530 Subject: [PATCH] Change var ints to more restricted domains --- awards.mzn | 2 +- dealing.mzn | 2 +- gameplay.mzn | 2 +- modernart.mzn | 4 ---- ranking.mzn | 2 +- scoring.mzn | 7 ++++--- 6 files changed, 8 insertions(+), 11 deletions(-) diff --git a/awards.mzn b/awards.mzn index c608274..f70183d 100644 --- a/awards.mzn +++ b/awards.mzn @@ -10,7 +10,7 @@ % 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; +array[Rounds,Artists] of var {0,2}: 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 ); diff --git a/dealing.mzn b/dealing.mzn index cfb18c0..2bddbef 100644 --- a/dealing.mzn +++ b/dealing.mzn @@ -1,7 +1,7 @@ % This file deals with dealing of new cards every Round % Usable variable from here is CardsDealtPerRound[Rounds] -array[Rounds] of var int: CardsDealtPerRound; +array[Rounds] of var 0..13: CardsDealtPerRound; constraint CardsDealtPerRound[Round1] = 13; constraint CardsDealtPerRound[Round2] = diff --git a/gameplay.mzn b/gameplay.mzn index 495288f..93c047c 100644 --- a/gameplay.mzn +++ b/gameplay.mzn @@ -34,7 +34,7 @@ constraint forall(r in Rounds) (max(row(CardsForArtist,r)) = MaxVisibleCards); constraint forall(r in Rounds) (sort(row(CardsForArtist, r))[4] != MaxVisibleCards); % Temporary variable to see how many cards you've played TOTAL per round -array[Rounds,Players] of var int: TotalCardsPlayed; +array[Rounds,Players] of var 1..20: TotalCardsPlayed; constraint forall(r in Rounds, p in Players) ( % TODO: Change this to played cards from VISIBLE (hidden) TotalCardsPlayed[r,p] = sum(a in Artists) (visible_count_per_round_per_artist_per_player[r,p,a]) diff --git a/modernart.mzn b/modernart.mzn index 0250bb3..5bacd03 100644 --- a/modernart.mzn +++ b/modernart.mzn @@ -30,10 +30,6 @@ array[Rounds, Artists] of var 0..10: CardsForArtist; % Number of Turns played by the closing player this round array[Rounds] of var 0..10: NominalTurnCount; -% 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; - % Symmetry Breaking constraint Score[Nemo] > Score[Jana]; diff --git a/ranking.mzn b/ranking.mzn index a9b3d6f..34a7dc3 100644 --- a/ranking.mzn +++ b/ranking.mzn @@ -1,5 +1,5 @@ % How much score was made by each artist in each round by just RANKING -array[Rounds,Artists] of var int: ranking_score_per_artist_per_round; +array[Rounds,Artists] of var 0..3: ranking_score_per_artist_per_round; % Winning artists for each round (just-by-ranking) array[Rounds,1..card(Artists)] of var Artists: sorted_artists_per_round; diff --git a/scoring.mzn b/scoring.mzn index 0c0635f..54f507a 100644 --- a/scoring.mzn +++ b/scoring.mzn @@ -2,7 +2,7 @@ array[Rounds,Players] of var int: RoundScore; % Final score of a player -array[Players] of var int: Score; +array[Players] of var 0..500: Score; % For Cumulative Scoring % Score = ranking_score + award_score if an award was given this round @@ -12,12 +12,13 @@ constraint forall(r in Rounds, a in Artists) ( if r=Round1 then 0 else - total_score_per_round_per_artist[enum_prev(Rounds, r),a] endif + total_score_per_round_per_artist[enum_prev(Rounds, r),a] + endif ); % This is same as total_score but force set to zero if the artist is not ranked % This is what each player gets for each card they play -array[Rounds,Artists] of var int: ArtistScore; +array[Rounds,Artists] of var 0..15: ArtistScore; constraint forall(r in Rounds, a in Artists) ( ArtistScore[r,a] = if IsArtistRanked[r,a] then total_score_per_round_per_artist[r,a] else 0 endif );