Python module that simulates a Square-1 twisty puzzle
Project description
virtual-sq1
pip install virtual-sq1
Python module that simulates a Square-1 twisty puzzle
Usage
Import and create Square1 object
Solved by default.
from virtual_sq1 import Square1
my_square_1 = Square1()
View Square1's current state
virtual_sq1 uses (almost) the same position notation as Jaap's Square-1 optimiser.
Don't know how to read it? Click here!
my_square_1 = Square1()
print(my_square_1)
# A1B2C3D4-5E6F7G8H
Apply an algorithm to Square1
my_square_1 = Square1()
my_square_1.apply_alg("/ (3,0) / (-3,-3) / (0,3) /")
print(my_square_1)
# A1C3B2D4-5E7G6F8H
Apply a case to Square1
Changes the Square1's state so that the input algorithm brings it to its current state.
my_square_1 = Square1()
my_square_1.apply_alg("/ (3,0) / (1,0) / (0,-3) / (-1,0) / (-3,0) / (1,0) / (0,3) / (-1,0)", True)
print(my_square_1)
# A2B3C1D4-5E6F7G8H
The distinction between a "case" and an "algorithm" was made by Tyson Decker's puzzle-gen
Apply a specific state to Square1
my_square_1 = Square1()
my_square_1.apply_state("ABCDEF GH12345678 /")
print(my_square_1)
# ABCDEF/GH12345678
Apply a individual moves to Square1
Not sure why you'd do this when you could just use apply_alg but... it's an option.
my_square_1 = Square1()
my_square_1.slash() # a slice/slash move
my_square_1.top.turn(-3) # turn the top layer -3
my_square_1.bottom.turn(3) # turn the bottom layer 3
my_square_1.slash() # a slice/slash move
my_square_1.top.turn(3) # turn the top layer 3
my_square_1.bottom.turn(-3) # turn the bottom layer -3
my_square_1.slash() # a slice/slash move
print(my_square_1)
# C3B2A1D4/5E8H7G6F
Credits
This module was highly inspired by the following:
- Tyson Decker's puzzle-gen: https://tdecker91.github.io/puzzlegen-demo/
- Jaap's Square-1 optimiser: https://www.jaapsch.net/puzzles/square1.htm#progs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file virtual_sq1-1.1.0.tar.gz.
File metadata
- Download URL: virtual_sq1-1.1.0.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef4bebb42d74aafa56749e050a304474580cb50c02677a5f5455db00ffaae87d
|
|
| MD5 |
a785a900f03cc19438802ac6090bf709
|
|
| BLAKE2b-256 |
9b56b1774223938d90111269c88373d344767f24ed7ebe8fc58f4b861535fad1
|
File details
Details for the file virtual_sq1-1.1.0-py3-none-any.whl.
File metadata
- Download URL: virtual_sq1-1.1.0-py3-none-any.whl
- Upload date:
- Size: 18.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a8bb5464535e885977dab96bb4e5271c91ae411bbd1138b66493e68d9692db7
|
|
| MD5 |
43fe13326c1da5d574d7721ac5aa65b8
|
|
| BLAKE2b-256 |
bd5a2ed50925cc79e59a7ae9c49080651360c092e3c8c9adc9bf6a2c5177f59c
|