2.8 KiB
Kitty Gridlock
This is a project for V. She loves Rush Hour puzzles. For her birthday (April 2021), I have a goal to make a Rush Hour player for her Android phone, using my Cakelisp and GameLib tools.
I am using Michael Fogleman's Rush Hour database (archive.org) in order to provide her tons of puzzles.
Database format
(The following text is copied from Michael Fogleman's Rush Hour database (archive.org), for easier reference)
The database is a simple text file with just a few columns. There is one row for every valid (solvable, minimal) cluster. The columns are: number of moves, board description, and cluster size (number of reachable states).
The board description is a 36-character string representing the state of the unsolved board. It is a 6x6 2D array in row-major order. The characters in the description follow these simple rules:
o empty cell
x wall (fixed obstacle)
A primary piece (red car)
B - Z all other pieces
I used lowercase
o
instead of periods.
for the empty cells in the database so that the entire board description can be selected with a double-click.
An example board:
60 IBBxooIooLDDJAALooJoKEEMFFKooMGGHHHM 2332
Target device
V has a OnePlus 6T Android phone with the following specifications (from here):
Thing | Value |
---|---|
Display Type | Optic AMOLED |
Display Size | 6.41 inches, 100.9 cm2 |
Display Resolution | 1080 x 2340 pixels, 19.5:9 ratio (~402 ppi density) |
CPU Chipset | Qualcomm SDM845 Snapdragon 845 (10 nm) |
CPU | Octa-core (4x2.8 GHz Kryo 385 Gold & 4x1.7 GHz Kryo 385 Silver) |
GPU | Adreno 630 |
RAM | 8GB |
Android Version | 10 |
The two main specs I need to care about are Android Version and Display Resolution. Additionally, AMOLED hints that pure black is going to look nice.