Giter Club home page Giter Club logo

rubiksawesome's Introduction

Rubiksawesome

Works on my machine ISEN approved Made in C Gluten free License CRAPL

drawing

Contributors:

  • Rémi B.
  • Rodolphe H.
  • Alexandre T.

Our whole life is solving puzzles.

[Erno Rubik]

Intro

Rubiksawesome is a Rubik's Cube 3x3x3 simulator with a 3D display and a solver engine. It is developped as a school project @ISEN-Lille.

Here is a capture of the current state: Current state capture

The objectives evaluated are available (in French) in the file linked below : topic.pdf.

Key features

  • 3D model
    • Rotations animations
    • Lighting
    • Texturing
    • Skybox
    • Mouse and keyboard inputs
    • Beautiful win screen
    • Marvelous Creative Commons sound effects
    • Display of the command history
    • Enabling/Disabling of command overlay
  • Command-line arguments for game modes
    • Random scrambling (default)
    • Precise scramble
    • Non-scrambled cube
  • Solving algorithms
    • Jessica Fridrich

How to play

Move the view by clicking and dragging with your mouse. The scroll wheel can be used to zoom/unzoom.

The keyboard shortcuts are:

Key Function
I Enable/Disable instructions
Left Shift Rotate counterclockwise
Left Ctrl Rotate 2 slices at once (lowercase moves)
F Rotate front
B Rotate back
U Rotate up
D Rotate down
L Rotate left
R Rotate right
X Rotate the cube around X axis
Y Rotate the cube around Y axis
Z Rotate the cube around Z axis
F2 Start a new game
⇧⇧⇩⇩⇦ ⇨⇦ ⇨B A Ask for help
Esc Exit

Requirements

Rubiksawesome needs:

SDL version: 2.0.8
OpenGL version: 3.0

and can be compiled using gcc on a GNU/Linux system. Windows is not supported, nor it ever will be.

For documentation generation, doxygen is required.

Recommended setup

  • CPU : core i7
  • RAM : 16 GB or more (program leaks AF)
  • GPU : Nvidia TITAN V (ultimate quality may need a quantic GPU)

How to use

# Clone repository
$ git clone ...

# Step into project folder
$ cd rubiksawesome

# Use make to build the project
$ make

# Enjoy !
$ ./rubiksawesome

Options

$ ./rubiksawesome -h

outputs :

Usage is :
	./rubiksawesome [-option [scramble str]]
Options are
	-S [scramble str] : scramble the cube to a randomly generated scramble (default behavior)
		or to a scramble sequence passed as a double quote delimited string
	-C : start the came with a completed Rubik's Cube yours to scramble

Documentation

MODEL.md : Description of data model.

CONTROLLER.md : Core logic description

VIEW.md : 3D display, GUI and main user interface presentation

PROJECT.md : Project planning and organization.

rubiksawesome's People

Contributors

remicmacs avatar

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.