Level editor for Hexcells.
<<<<<<< HEAD
Open a level or paste one from the clipboard and play it.
Full auto-solving capabilities are present.
Left-click/right-click an orange cell to mark it as blue/black. Right click to revert a cell to yellow.
Action | Button |
---|---|
create blue cell | left-click |
create black cell | right-click |
create column number | left-click on cell and drag outwards |
delete cell/colum number | right-click |
ignore collision | hold alt while placing cell (not recommended) |
Open a level or paste one from clipboard and play it.
Left-click/right-click an orange cell to mark it as blue/black. Right click to revert a cell to yellow.
If you use the Player to playtest right from Editor, it will save state between sessions.
Right click to revert a cell to yellow.
Full auto-solving capabilities are present.
Action | Button |
---|---|
Create blue cell | Left-click |
Create black cell | Right-click |
Create column number | Left-click on cell and drag outwards |
Delete cell/column number | Right-click |
Action | Button |
---|---|
Cycle through information display | Left-click on cell/column number |
Mark/unmark cell as revealed | Alt + left-click on cell |
Action | Button |
---|---|
Freehand selection | Shift + drag on empty space |
Select/deselect a cell | Shift + left-click on cell |
Deselect all | Shift + left-click on empty space |
Drag and drop selected | Left-click and drag |
Action | Button |
---|---|
Pan the view | Press and drag mouse wheel |
Zoom in/out | Mouse wheel up/down |
Action | Button |
---|---|
Toggle playtest mode | Tab |
Play from start | Ctrl + Tab |
868b26686564120805cc253ca55da70002e77369
Action | Button |
---|---|
cycle through information display | left-click on cell/column number |
mark/unmark cell as revealed | alt + left-click on cell |
Action | Button |
---|---|
freehand selection | shift + drag-left-click on empty space |
select/deselect a cell | shift + left-click on cell |
deselect all | shfit + left-click on empty space |
drag and drop selected | left-click and drag |
Action | Button |
---|---|
pan the view | press and drag mouse-wheel |
zoom in/out | mouse wheel up/down |
Action | Button |
---|---|
toggle playtest mode | Tab |
toggle playtest mode and start new game | Ctrl + Tab |
Download the latest release, extract the folder and you're ready to go!
Install git
, python-pyside
or python-pyqt4
, python-pulp
(pip install pulp
), optionally glpk
:
-
Debian, Ubuntu
sudo apt-get update sudo apt-get install git python-pyside glpk-utils python-pip sudo pip install pulp
-
Arch Linux
=======
sudo pacman -Sy git python-pyqt4 glpk python-pip
pip install --user pulp
868b26686564120805cc253ca55da70002e77369
Go to a folder where you would like SixCells to be and obtain the source code:
git clone --recursive https://github.com/BlaXpirit/sixcells
Now you can start editor.py
and player.py
by opening them in a file explorer or from command line.
SixCells should work under Mac if the needed libraries are available. Try to adapt the instructions for Linux.
<<<<<<< HEAD
To find levels to play and share your own, visit reddit.com/r/hexcellslevels.
868b26686564120805cc253ca55da70002e77369
SixCells is written using Python and Qt.
PuLP is used for solving.
It is guaranteed to work on Python 3.3 and later; Versions 2.7 and 3.* should also work.
SixCells supports Qt 4 and Qt 5, and can work with either PySide, PyQt4 or PyQt5.
License: GNU General Public License Version 3.0 (GPLv3)
<<<<<<< HEAD
=======
868b26686564120805cc253ca55da70002e77369
Encoding: UTF-8
A level is a sequence of 39 lines, separated with '\n' character:
- "Hexcells level v1"
- Level title
- Author
- Level custom text, part 1
- Level custom text, part 2
- 33 level lines follow:
- A line is a sequence of 33 2-character groups.
- '.' = nothing, 'o' = black, 'O' = black revealed, 'x' = blue, 'X' = blue revealed, '','|','/' = column number at 3 different angles (-60, 0, 60)
- '.' = blank, '+' = has number, 'c' = consecutive, 'n' = not consecutive
- A line is a sequence of 33 2-character groups.
Encoding: UTF-8
{
"version": 1,
# Version of the level format.
# To be incremented if backwards-incompatible changes are introduced.
"title": text,
# Name of the level. Optional.
"author": text,
# Name of the author. Optional.
"information": text,
# Custom text hints for the level. Optional.
"cells": [ # Hexagonal cells
{
"id": integer,
# Unique number that can be used to refer to this cell.
"kind": integer,
# 0: black, 1: blue, -1: yellow (never used).
"neighbors": [integers],
# List of IDs of cells that touch this cell
# ordered clockwise.
"members": [integers],
# List of IDs of cells that are related to this cell:
# same as neighbors for black, nearby in 2-radius for blue.
# This key is present only for cells that have a number in them.
"revealed": boolean,
# Should this cell be initially revealed?
# true: yes, (absent): no
"value": integer,
# The number written on the cell (absent if there is no number).
# This is redundant; it may be deduced from "members",
# but presence/absence of it still matters.
"together": boolean,
# Are the blue "members" all grouped together (touching)?
# true: yes, false: no, (absent): no information given.
# Can be present only if "value" is present.
"x": number,
"y": number
# Absolute coordinates of the center of this cell.
},
...
],
"columns": [ # Column numbers
{
"members": [integers],
# List of IDs of cells that are in this column
# ordered from nearest to farthest.
"value": integer,
# The number written on the column.
# This is redundant; it may be deduced from "members".
"together": boolean,
# Are the blue cells in this column all grouped together?
# true: yes, false: no, (absent): no information given.
"x": number,
"y": number,
# Absolute coordinates of the center
# of the imaginary hexagon that contains this number.
"angle": number
# Angle of rotation in degrees
# (only -60, 0, 60 are possible).
},
...
]
}