Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Rubix Cube

rubix_cube.livemd

Rubix Cube

Mix.install([
  {:kino, github: "livebook-dev/kino", override: true},
  {:kino_lab, "~> 0.1.0-dev", github: "jonatanklosko/kino_lab"},
  {:vega_lite, "~> 0.1.3"},
  {:benchee, "~> 0.1"},
  {:ecto, "~> 3.7"},
  {:math, "~> 0.7.0"},
  {:faker, "~> 0.17.0"},
  {:utils, path: "#{__DIR__}/../utils"},
  {:httpoison, "~> 1.8"},
  {:poison, "~> 5.0"},
  {:tested_cell, git: "https://github.com/BrooklinJazz/tested_cell"}
])

Navigation

Return Home Report An Issue

Rubix Cube

Together with your group, you are going to create a Rubix Cube application.

Rubix cubes are a toy with six sides. Each side has nine colored squares on it. Players rotate columns and rows on the cube with the goal of having each side with a single matching color.

Together with your group you will figure out how to:

  • represent the rubix cube as data.
  • horizontally rotate a row of the cube to the right and left
  • vertically rotate a column of the cube up and down.
  • determine if a rubix cube is solved.
  • (bonus) Persist the state of a rubix cube to a database using ecto.
  • (bonus) Create a process for each rubix cube. Play with the rubix cube by sending messages to the process (this means multiple people can play with the same rubix cube if they have the pid of the process!)

If you need clarification of these instructions speak with your teacher. However, keep in mind the goal of this project is to engage your problem solving and decision skills. You should implement features how you and your group think is best. You are free to be creative and take liberties or add new features to this project.

Have one person in your group create a new mix project called rubix. Add this project to github and add your classmates as collaborators. All group members should clone the project and ensure they can run it.

You might consider using Visual Studio Code Live Share to collaborate. Alternatively you can screenshare, or collaborate by making pull requests to the same project.

Commit Your Progress

Run the following in your command line from the project folder to track and save your progress in a Git commit.

$ git add .
$ git commit -m "finish rubix cube exercise"