Skip to content

Savlik/zoo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zoo

Solver for Zooloretto: The Dice Game

Overview

Solver for combinatorial board game with randomness in it. This game has around 10^17 game states. Using symmetry and time-space tradeoffs i managed to precompute 1,3GB of data, that helps to determine winning chances in any point of the game within seconds.

The game is available to play online on the site yucata.de.

How to run it

If you want to run it on your own server you must first precompute file DB.dat. This may take up to 6 months! If you are interested in getting this file now, you can contact me.

Compile

  • Open zoo.cpp and edit options to suit your hardware.
  • Be sure to use -lpthread flag and -std=c++11 for compilation. Run
g++ zoo.cpp -o zoo.o -lpthread -std=c++11 .

Precompute

  • run ./zoo.o init to create new DB.dat file.
  • run ./zoo.o pre to start precomputing.

This will create file computed.add, where it will store precomputed values. Before next pre run of the program, make sure to merge all this changes into DB file. To do this run ./zoo.o merge computed.add.

With little bit of change of the code you can achieve to run this program on multiple machines and then merge all the changes into one DB.

Use

When the precomputing is done (or you get finished DB.dat) you can run ./zoo.o help <gamesate> <roundstate>, where <gamestate> and <roundstate> are strings in specified format described below. This returs JSON code of all possible movements and their chance to win the game.

##Todo rest

About

Solver for Zooloretto: The Dice Game

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published