From 5d2aa084de750a97104ff7f855051c05728be37a Mon Sep 17 00:00:00 2001 From: Nemo Date: Sat, 13 Jun 2020 17:29:08 +0530 Subject: [PATCH] Adds current best score on the README --- README.md | 19 +++++++++++++++---- enumtest.mzn | 21 ++++++++++++--------- modernart.mzn | 2 ++ 3 files changed, 29 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index a8b86ee..3a8132c 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,16 @@ This is a [MiniZinc](https://www.minizinc.org/) based attempt to solve the [Modern Art: Masters Gallery](https://boardgamegeek.com/boardgame/40381/masters-gallery) game. +The current partial implementation (see below for missing rules) results in a highest possible score of 242. (`*` = Award given to artist). + +|Player 1|Player 2|Player 3|A|B|C|D|E| +|--------|--------|--------|-|-|-|-|-| +|AA* |AA |AA |5|0|0|1|2| +|AAAEE* |BBCC*E |D*EEEE |7|0|0|4|7| +|AAAAAEEEE|ABBBDDDDE|BBCCCCCA|10|0|0|5|9| +|AAAAAAEEE|BBBBCCCDD|B*CCDDDEE|13|0|0|6|11| +|*242* = 10+35+86+111|*65* = 10+4+39+12|*87* = 10+32+5+40| + ## Plan - Implement all of the game ruleset in MiniZinc. @@ -97,10 +107,11 @@ We subdivide the score into the following sections: ### Missing Constraints -- [ ] Since the model misses out on the turn-dynamics, and treats symbols as global counters (instead of being attached to specific cards), there are some additional constraints that will be required. Without these, I'm expecting to see the same card being used for multiple symbols. Some sort of Symbol counter per round that keeps track of total number of cards you've claimed for symbols would be a better approach. -- [ ] Second card face down. -- [ ] Simultaneous play -- [ ] "Additional Card Play". Every round, all players can opt to play one extra card per artist they've already played. Note that this rule is very ambigously worded in the rules. I'm planning to implement the "blessed" variant. See https://boardgamegeek.com/thread/473713/playing-additional-cards-during-scoring for more details. +- [ ] Symbol - Draw One Card +- [ ] Symbol - Second card face down +- [ ] Symbol - Simultaneous play +- [ ] Since the model misses out on the turn-dynamics, and treats symbols as global counters (instead of being attached to specific cards), there are some additional constraints that will be required. Without these, I'm expecting to see the same card being used for multiple symbols. Some sort of **Symbol counter** per round that keeps track of total number of cards you've claimed for symbols would be a better approach. +- [ ] **Additional Card Play**. Every round, all players can opt to play one extra card per artist they've already played. Note that this rule is very ambigously worded in the rules. I'm planning to implement the "blessed" variant. See https://boardgamegeek.com/thread/473713/playing-additional-cards-during-scoring for more details. ## TODO diff --git a/enumtest.mzn b/enumtest.mzn index a85047a..396a13b 100644 --- a/enumtest.mzn +++ b/enumtest.mzn @@ -1,14 +1,17 @@ -include "globals.mzn"; +% include "globals.mzn"; % Since the documentation is unclear, wrote this test to figure % out whether enums wrap around or not. +% enum Letters; + enum Letters; -Letters= {A,B,C}; -var Letters: x; -var Letters: y; -var Letters: z; +Letters = {A,B,C}; -constraint x = enum_next(Letters, y); -constraint y = B; -% This is unsatisfiable, because nothing comes after x=C -constraint z = enum_next(Letters, x); \ No newline at end of file +var Letters: a; +var Letters: b; +constraint a=A; +constraint b=B; + +var set of Letters: d; + +constraint d = set_diff(Letters,a..b); \ No newline at end of file diff --git a/modernart.mzn b/modernart.mzn index ae47b6a..c551396 100644 --- a/modernart.mzn +++ b/modernart.mzn @@ -4,9 +4,11 @@ enum Artists; enum Rounds; Players = {Nemo, Jana, Adam}; + % 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 + Artists = {Krypto,KarlGitter,ChristinP,Yoko,LiteMetal}; Rounds = {Round1, Round2, Round3, Round4};