Assignment代写|sql代写|Haskell代写-FIT2102 Assignment 2
时间:2020-10-15
-.csv and will not have the header.
You can write a Haskell program to data-mine these reports and tailor some parts of your
player accordingly.
Monte Carlo Tree Search
Monte Carlo Tree Search (MCTS) is the fusion between (tree) search algorithms such as
minmax and using probabilities (Monte Carlo simulation) to determine the branching in the
search tree. It makes use of a simulation phase to explore deeper. In this context, you can
leverage the memory to save already explored branches, or weight, etc.
Hint: Building a MCTS player requires having access to a source of entropy for sideeffectfree random number generation; you can use your hand as it comes from a shuffled
deck.
Plagiarism
https://www.monash.edu/students/admin/policies/academic-integrity
(https://www.monash.edu/students/admin/policies/academic-integrity)
We will be checking your code against the rest of the class, and the internet, using a
plagiarism checker. Monash applies strict penalties to students who are found to have
committed plagiarism.
Any plagiarism will lead to a 0 mark for the assignment and will be investigated by the staff.
There is a zero-tolerance policy in place at Monash. So be careful and report any
collaboration with other students.
Tournament server
We will run a server for the course at https://fit2102.monash (https://fit2102.monash) with
the following pages:
The uploader (https://fit2102.monash/uploader/): after logging in, this page will allow
you to upload your code and compete in the tournament.
The handout (https://fit2102.monash/resources/assignment.html): this document.
The ladder (https://fit2102.monash/ladder.php): this page will display the scores of the
last tournament run.
One thing to note is that the server only accept submissions as whole files. If your code
uses a multi-file structure, you will need to concatenate them into your Player.hs before
uploading.
Once you upload your player, you will see two links on the page:
home.php: shows your current ranking, last upload, and previous games played.
status.php: shows the status of your current upload. Furthermore, you can inspect your
games by clicking on their number.
Before uploading your player, please check that the following runs:
stack exec staticgame
This will run a single game with two instances of your player. You can modify this code
(found in staticgame/Main.hs) to run different versions of your code.
You cannot import external libraries because the server cannot know about them. In a
nutshell, you cannot edit the stack.yaml or the package.yaml.
The code provided uses the Safe pragma4
to make sure the code you use is okay to run. It
is also compiled with the -Werror flag which means that all warnings will throw errors and
prevent your code from compiling. So make sure you run the test suite before you upload
your player.
Summary of tournament submission rules
Respect the rules: your player must always play valid actions or it will be eliminated.
Be timely: to give everyone a fair chance, your functions must all return in under one
second.
Be safe: your player must compile with all flags provided, including the import safe.
Single file: your code must be submitted on the server as a single file.
1. This means a deck with four suits (clubs, diamonds, spades and hearts) with the
following ranking: King, Queen, Jack, 10, 9, 8, 7, 6, 5, 4, 3, 2, Ace.↩
2. Examples taken from Wikipedia (https://en.wikipedia.org/wiki/Gin_rummy).↩
3. https://en.wikipedia.org/wiki/Minimax↩
4. More info at SafeHaskell (https://ghc.haskell.org/trac/ghc/wiki/SafeHaskell), but this
should not hinder your work.↩