OCaml-Mille-Bornes
所属分类:硬件设计
开发工具:OCaml
文件大小:0KB
下载次数:0
上传日期:2023-11-19 10:15:00
上 传 者:
sh-1993
说明: 一个基于OCaml的经典Mille-Bornes棋盘游戏的实现,采用函数编程方法设计,具有综合...
(An OCaml-based implementation of the classic Mille Bornes board game, designed with a functional programming approach, featuring comprehensive unit testing using Alcotest and QCheck.)
文件列表:
.ocamlformat (17, 2023-12-09)
bin/ (0, 2023-12-09)
bin/dune (80, 2023-12-09)
bin/main.ml (201, 2023-12-09)
doc/ (0, 2023-12-09)
doc/mille_bornes_rules.pdf (1157153, 2023-12-09)
dune-project (838, 2023-12-09)
lib/ (0, 2023-12-09)
lib/arena.ml (22729, 2023-12-09)
lib/arena.mli (2824, 2023-12-09)
lib/board_engine.ml (8804, 2023-12-09)
lib/board_engine.mli (4692, 2023-12-09)
lib/cards_engine.ml (5205, 2023-12-09)
lib/cards_engine.mli (3757, 2023-12-09)
lib/dune (69, 2023-12-09)
lib/random_bot.ml (1488, 2023-12-09)
lib/random_bot.mli (1231, 2023-12-09)
lib/teams_engine.ml (16928, 2023-12-09)
lib/teams_engine.mli (9511, 2023-12-09)
mille_bornes.opam (921, 2023-12-09)
test/ (0, 2023-12-09)
test/default_strat.ml (249, 2023-12-09)
test/default_strat.mli (53, 2023-12-09)
test/dune (162, 2023-12-09)
test/test_board_engine.ml (27243, 2023-12-09)
test/test_cards_engine.ml (15309, 2023-12-09)
test/test_random_bot.ml (1367, 2023-12-09)
test/test_teams_engine.ml (41009, 2023-12-09)
test/utils_board_engine.ml (10455, 2023-12-09)
test/utils_bot.ml (3892, 2023-12-09)
test/utils_cards_engine.ml (3571, 2023-12-09)
test/utils_teams_engine.ml (4152, 2023-12-09)
# Mille bornes
[![OCaml CI](https://github.com/mathusanMe/OCaml-Mille-Bornes/actions/workflows/github-ci.yml/badge.svg)](https://github.com/mathusanMe/OCaml-Mille-Bornes/actions/workflows/github-ci.yml)
## Members
| Name | Gaufre username |
| :------------------ | :-------------: |
| Thomas ARROUS | @arrous |
| Gabin DUDILLIEU | @gdudilli |
| Mathusan SELVAKUMAR | @selvakum |
## Development environment setup
Install [Opam](https://opam.ocaml.org/doc/Install.html), the OCaml
package manager, on your system.
For convenience, we setup a [local](https://opam.ocaml.org/blog/opam-local-switches/) Opam distribution, using the following commands:
```
$ opam init
$ opam switch create . --deps-only --with-doc --with-test
$ eval $(opam env)
```
Configure your favorite text editor, see the [Real World OCaml setup](http://dev.realworldocaml.org/install.html#editor-setup).
You will want to have a working, integrated type-checker in your
editor, as well as type-directed completion. Your favorite text editor
being Emacs, this leads to:
```
$ opam install user-setup tuareg ocamlformat merlin
$ opam user-setup install
```
Make sure that your text editor applies
[OCamlformat](https://ocaml.org/p/ocamlformat/0.22.4/doc/editor_setup.html#editor-setup)
each time a file is modified, this helps settle styling war and avoids
line-noisy patches down the line.
In Emacs, this amounts to adding the following lines to your `.emacs`
configuration file:
```elisp
(require 'ocamlformat)
(add-hook 'tuareg-mode-hook (lambda ()
(define-key tuareg-mode-map (kbd "C-M-") #'ocamlformat)
(add-hook 'before-save-hook #'ocamlformat-before-save)))
```
If need be, you can invoke Dune to re-format the whole codebase:
```
$ dune fmt
```
## Building mille_bornes
To build the project, type:
```
$ dune build
```
For continuous build, use
```
$ dune build --watch
```
instead.
## Running mille_bornes
To run the project, type:
```
$ dune exec mille_bornes
```
## Running the tests
To execute all the tests, type:
```
$ dune runtest
```
This can be combined with continuous build & test, using
```
$ dune runtest --watch
```
## Documentation
The internal project documentation can be compiled to HTML through
```
$ dune build @doc-private
```
The resulting document is available with
```
$ open _build/default/_doc/_html/mille_bornes@*/Mille_bornes/index.html
```
近期下载者:
相关文件:
收藏者: