Change var ints to more restricted domains
This commit is contained in:
parent
7a4bc6a1e9
commit
f4df68533b
|
@ -10,7 +10,7 @@
|
||||||
% Whether an artist won an award in a given round
|
% 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 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
|
% Total number of awards for each artist = 1
|
||||||
constraint forall(a in Artists) ( sum(col(awards_per_round_per_artist,a)) = 1 );
|
constraint forall(a in Artists) ( sum(col(awards_per_round_per_artist,a)) = 1 );
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
% This file deals with dealing of new cards every Round
|
% This file deals with dealing of new cards every Round
|
||||||
|
|
||||||
% Usable variable from here is CardsDealtPerRound[Rounds]
|
% 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[Round1] = 13;
|
||||||
constraint CardsDealtPerRound[Round2] =
|
constraint CardsDealtPerRound[Round2] =
|
||||||
|
|
|
@ -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);
|
constraint forall(r in Rounds) (sort(row(CardsForArtist, r))[4] != MaxVisibleCards);
|
||||||
|
|
||||||
% Temporary variable to see how many cards you've played TOTAL per round
|
% 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) (
|
constraint forall(r in Rounds, p in Players) (
|
||||||
% TODO: Change this to played cards from VISIBLE (hidden)
|
% 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])
|
TotalCardsPlayed[r,p] = sum(a in Artists) (visible_count_per_round_per_artist_per_player[r,p,a])
|
||||||
|
|
|
@ -30,10 +30,6 @@ array[Rounds, Artists] of var 0..10: CardsForArtist;
|
||||||
% Number of Turns played by the closing player this round
|
% Number of Turns played by the closing player this round
|
||||||
array[Rounds] of var 0..10: NominalTurnCount;
|
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
|
% Symmetry Breaking
|
||||||
constraint Score[Nemo] > Score[Jana];
|
constraint Score[Nemo] > Score[Jana];
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
% How much score was made by each artist in each round by just RANKING
|
% 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)
|
% Winning artists for each round (just-by-ranking)
|
||||||
array[Rounds,1..card(Artists)] of var Artists: sorted_artists_per_round;
|
array[Rounds,1..card(Artists)] of var Artists: sorted_artists_per_round;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
array[Rounds,Players] of var int: RoundScore;
|
array[Rounds,Players] of var int: RoundScore;
|
||||||
|
|
||||||
% Final score of a player
|
% Final score of a player
|
||||||
array[Players] of var int: Score;
|
array[Players] of var 0..500: Score;
|
||||||
|
|
||||||
% For Cumulative Scoring
|
% For Cumulative Scoring
|
||||||
% Score = ranking_score + award_score if an award was given this round
|
% 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
|
if r=Round1 then
|
||||||
0
|
0
|
||||||
else
|
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 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
|
% 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) (
|
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
|
ArtistScore[r,a] = if IsArtistRanked[r,a] then total_score_per_round_per_artist[r,a] else 0 endif
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue