Skip to main content

Dorfperfekt

Tile placement suggestions for the game Dorfromantik. With an emphasis on perfect tile placement, this software tool enables the player to play indefinitely (and achieve a massive score while doing so).

demo dorfperfekt demo dorfromantik map demo dorfromantik score

How It Works

The player inputs a six-character text string representing the next tile to be placed. Each valid placement is then evaluated by the solver according to the following (in order of precedence):

  1. How many tiles would be ruined by this placement? Less is better.
  2. Of the tiles encountered so far, how many would alternatively fit perfectly at this position? Less is better.
  3. Assuming this placement is made, consider each adjacent open position. Of the tiles encountered so far, how many would fit perfectly at that adjacent position? Take the minimum of all adjacent open positions. More is better.

The latter two computations will take a significant amount of time as the game progresses and more unique tiles are encountered. A threshold is set by the user so that the solver can be instructed to ignore rarer tiles.

Using the Application

Dorfperfekt displays an overall map of the board. Dark gray tiles are non-ruined placements and light gray tiles are ruined placements. After entering a tile definition string and pressing the solve button, the progress bar will increment and pressing the refresh button will overlay a heatmap of the possible moves onto the board. Green is better, red is worse, and white is neutral (or not yet evaluated).

Positions on the map can be clicked on. By clicking on a proposed position for your next placement, a view of the local terrain is generated. The tile to be placed is given a proposed best rotation but the user may use the rotate button to select an alternate rotation.

Existing tiles may also be clicked on such that they may be deleted or set as the origin to recenter the map of the board.

Tile Definitions

A tile is defined by a six-character text string where each character represents the edge terrains in clockwise order. If all edges of the tile are the same a single character may be used instead. Tile characters are deliberately selected to all be accessible from the left hand.

  • Grass, "g"
  • Forest, "f"
  • Ranch, "r" (ie. wheat/lavender fields)
  • Dwelling, "d" (ie. houses)
  • Water, "w" (ie. rivers)
  • Station, "s"
  • Train, "t"
  • Coast, "c" (ie. lakes)

Installation

From the command line, install with pip install dorfperfekt. The application can then be run from the command line with dorfperfekt.

Development

Setting up the software development environment is easy.

poetry install
poetry run pre-commit install

Release files for dorfperfekt 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dorfperfekt 0.2.3
File Size Uploaded
dorfperfekt-0.2.3.tar.gz 10.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dorfperfekt 0.2.3
File Interpreter ABI Platform
dorfperfekt-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 21.4 kB

Release files / dorfperfekt-0.2.3.tar.gz

Download URL dorfperfekt-0.2.3.tar.gz
Size 10.0 kB
Tags Source
SHA-256 checksum
How to use checksums
78a3603458fe4630398090a3df2e4671e5257cf3f341f62f0c742afeebd19f63
BLAKE2b-256 checksum
How to use checksums
02425fc0209dd7cbdfa17e33d80e2c80ad88ab3cd47cfcdb1364b8c6027054d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.1 CPython/3.11.0 Windows/10

Release files / dorfperfekt-0.2.3-py3-none-any.whl

Download URL dorfperfekt-0.2.3-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b4cff0e635ac211bf47cd2358c1ca2d3a4232276af4ca84c9612989cfe0c883
BLAKE2b-256 checksum
How to use checksums
1cd345ec9ffebf32d0013a70b06ab1da91f17ad8d64f513f432c3dd7b29540f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.1 CPython/3.11.0 Windows/10

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page