Giter VIP home page Giter VIP logo

cuber's Introduction

Cuber, a Python implementation of the Rubik's cube

screenshot

Cuber is a compact representation of the 3x3x3 Rubik's cube. The primary aim is to be able to generate scrambles with a certain amount of "bad" edges for practicing the EO-line solving for the ZZ method. However it is probably possible to use it for other purposes as well.

Also, I'm a C++ programmer, so the code might not be very pythonic :)

Usage

Python 2.7, might work with Py3k, I'm not sure (might need to change the print statements here and there)

You need colorama for the colored output for displaying the cube.

pip install colorama

should work.

Development happens on the dev branch, the master branch is (supposedly) stable.

Features

  • Generating scrambles
  • Displaying the cube state on the console
  • Executing scrambles
  • Generating scrambles with a known number of bad edges

Implementation

The stickers are stored in a one-dimensional list. The structure of the cube is represented with the faces (the face determines the starting index for the stickers) and the faces have "attached lines" on them which are used to track which stickers have to be moved around when turning a face. The attached lines are simple 3-tuples of indices. When a face is turned, the stickers associated with these indices are rotated around in the right direction. The stickers on the face are transformed into a 2D matrix, rotated, and then written back to the original array.

cuber's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.