All Projects → pravj → Puzzl

pravj / Puzzl

🎲 An intelligent version of the sliding-puzzle game for your terminal built in golang

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Puzzl

Teleball
Build your own Arduino based retro handheld game console
Stars: ✭ 21 (-34.37%)
Mutual labels:  game
Pycos
Concurrent, Asynchronous, Distributed, Communicating Tasks with Python
Stars: ✭ 30 (-6.25%)
Mutual labels:  concurrent-programming
Pacgo
A Pac Man clone written in Go (with emojis!)
Stars: ✭ 961 (+2903.13%)
Mutual labels:  game
Pixi.js
The HTML5 Creation Engine: Create beautiful digital content with the fastest, most flexible 2D WebGL renderer.
Stars: ✭ 34,982 (+109218.75%)
Mutual labels:  game
Pi romulus
Retropie ROM downloader - for on your Retropie
Stars: ✭ 28 (-12.5%)
Mutual labels:  game
Openkore
A free/open source client and automation tool for Ragnarok Online
Stars: ✭ 956 (+2887.5%)
Mutual labels:  game
Skyrim Perk Utility
Add / Reset your Skyrim perks using generated scripts with an easy to use graphical interface! 📝 🎮
Stars: ✭ 21 (-34.37%)
Mutual labels:  game
Marmoset
Marmoset is a single-player implementation of the card game SET.
Stars: ✭ 32 (+0%)
Mutual labels:  game
Mock Kakin
崩坏3rd蛋池抽取模拟器,支持多种配置定义模式,并且较好的还原了游戏内的概率。
Stars: ✭ 29 (-9.37%)
Mutual labels:  game
Hs Flatris
An implementation of Flatris using Haskell and Miso
Stars: ✭ 31 (-3.12%)
Mutual labels:  game
Vhackxtbot Python
Python API for vHackXT Game
Stars: ✭ 27 (-15.62%)
Mutual labels:  game
Rails
Rails 18xx Java Application Main Repository
Stars: ✭ 28 (-12.5%)
Mutual labels:  game
Falling Words Typing Game
This is the source code for a Falling Words Typing Game created in Unity during a Twitch Livestream.
Stars: ✭ 31 (-3.12%)
Mutual labels:  game
Wallbreaker
Arkanoid/Breakout clone written in C++ and SFML
Stars: ✭ 21 (-34.37%)
Mutual labels:  game
Ao Server
Server for Argentum Online
Stars: ✭ 32 (+0%)
Mutual labels:  game
Klotski
Klotski Game & Solver (華容道遊戲)
Stars: ✭ 21 (-34.37%)
Mutual labels:  game
Savegamepro
A Complete and Powerful Save Game Solution for Unity (Game Engine)
Stars: ✭ 30 (-6.25%)
Mutual labels:  game
Vainglory
(*DEPRECATED*: The API no longer exists, so this will no longer work) A Javascript API Client wrapper for Vainglory
Stars: ✭ 32 (+0%)
Mutual labels:  game
Gameoverlay
🎮 GameOverlay using CEF with support for common rendering backends
Stars: ✭ 32 (+0%)
Mutual labels:  game
Nativescript Flappy Bird
NativeScript implementation of Flappy Bird (basic). Demonstrates how to build games in NativeScript.
Stars: ✭ 31 (-3.12%)
Mutual labels:  game

puzzl

An intelligent version of the sliding-puzzle game for your terminal built in golang

GoDoc

puzzl is an intelligent implementation of the classical sliding-puzzle game.

It's built on top of Golang's concurrency primitives. It uses goroutines and channels for inter process communications to provide real time notification experience in unix terminals.

puzzl comes with an in-built solver which can solve any puzzle configuration faster than Iron Man. ⚡️

puzzl

I have also written a paper* describing technical details about the game, have a look, in case you want to.

Implementing an intelligent version of the classical sliding-puzzle game for unix terminals using Golang's concurrency primitives

http://arxiv.org/abs/1503.08345

Installation

go get github.com/pravj/puzzl
  • Make sure that the workspace's bin directory is added to your PATH
export PATH=$PATH:$GOPATH/bin

Controls

  • Start the game with the command puzzl.
  • Use Arrow Keys to move the blank tile wherever you want.
  • Press 'h' or 'H' to get any hint for next move.
  • Press ESC key to quit the game.

Features

  • puzzl comes with an in-built solver that powers the automation for the game.
  • puzzl gives you some hope by showing the optimal possible moves to solve any board configuration.
  • puzzl helps you survive the game by giving hints for next move.
  • puzzl tracks all the user moves and accordingly generates score for the game.
  • puzzl shows notifications according to the real time game status.
  • puzzl notifies that whether your last move was right or wrong.

In-built Solver

  • puzzl uses A-star algorithm to solve the game board.
  • puzzl's solver is enough fuel-efficient that it can solve the hardest 3x3 puzzle in 31 moves. Exactly what the ideal solvability condition asks for.

Hints Policy

  • You will get a maximum of 3 hints per game session. No more cheatings. 🚔

Scoring Policy

  • puzzl has its own scoring system. It measures the real time game score using two parameters, one is total played game moves (T-score) and another is accumulated correct score (A-score) from all the moves.
  • Whenever a user moves in a correct direction as the solver would have moved, the A-score increases by 1 and decreases by 1 when the user moves in a wrong direction.
  • The score of game at any point of time is calculated by this function. [ score = A-score / T-score ]
  • This way the maximum score of 1 would be possible in only one situation when the user traverse the game's state space in the right direction all the time.

Notification Mechanism

  • puzzl uses a combination of goroutines and channels to deliver real time notifications in the game.
  • Here you can see all the available notifications.

Dependencies


Built with Muzi and Coffee by Pravendra Singh

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].