Giter Club home page Giter Club logo

qcamp's Introduction

Qat the Cat: an educational game

Table of Contents

About the project

The aim of the project is to:

  • Create a demonstration of a game as a proof of concept,
  • Showcase the accessibility of the IBM Qiskit API,
  • Inspire interest and awareness in quantum computing,
  • Expose players to basic topics in quantum mechanics (namely, superposition and quantum gates).

Built with

How to play

Goal of the game

Your goal when playing is fairly simple: move Qat the Cat around a grid map, from its initial position to a given final position.

Movement

As we said, movement is the main mechanic of the game. In order to move Qat, you must manipulate the state of two qubits, |q_1, q_0⟩, in such a way that each possible basis state corresponds to one of the four cardinal directions:

  • |00⟩ corresponds to moving up,
  • |01⟩ corresponds to moving right,
  • |10⟩ corresponds to moving down,
  • |11⟩ corresponds to moving left.

In order to do this, you are given a list of quantum gates: X, H, CNOT and I. You must first choose what qubit(s) you want to act on, and then the gate(s) that you want to apply.

Once that the state of the two qubits is the one you desire, you must click on the Qat button in order to move in the corresponding direction.

Splitting Qat

In Quantum Mechanics, one system may be in a superposition of two states. For example, a qubit may be in the state |0⟩, |1⟩ or a superposition of both, denoted by a |0⟩ + b |1⟩.

When we are using two qubits, like we are for moving Qat, we may have a state that looks like 1/sqrt[2] (|00⟩ + |11⟩), meaning that Qat will split into two Qats with an equal probability amplitude.

Future of the project

We intend to revamp the User Interface, in order to make the game more intuitive and easier to play, by:

  • Including tutorials, links to Qiskit and guides,
  • Adding an option to display the quantum states and probability amplitudes,
  • Embedding circuit diagram in game window.

The next step will be to design and implement more levels, growing in difficulty and complexity.

Finally, some other ideas we might implement in the future are:

  • Adding a co-op mode,
  • Adding a new mechanic for designing more difficult stages, consisting on "portals" that teleport Qat from one cell of the map to another.

Screenshots

Please, keep in mind that this is a pre-alpha version made in 24 hours during a Hackathon, so expect a lot of improvements in the near future!

qcamp's People

Contributors

ssinghzar avatar nandibee avatar dimpho0 avatar quantumvic 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.