Did You Know?
Got a tip? Let us know

HostGator Diwali Mega Offer 50% Flat Discount on all Hosting Plans - Grab it Now

nSnake: A Clone of Old Classic Snake Game – Play in Linux Terminal

Download Your Free eBooks NOW - 10 Free Linux eBooks for Administrators
CW

nSnake is a replica of the most popular old classic snake game that was developed using ncurses C library by Alexandre Dantas. The game can be played at command-line with textual interface in almost all GNU/Linux distributions.

The game is highly customizable and includes gameplay modes, keybindings, and even the GUI-like appearance of the application. There is only one difficulty, that you will have to compile it from source, unless you’re using Arch Linux system.

Features
  1. Clean GUI-like interface with nifty animations.
  2. Two games modes, with speed controls.
  3. Customizable gameplay, appearance and keybindings.

Install nSnake Old Classic Snake Game in Linux

A nSnake is available for almost all modern Linux distributions. In Ubuntu and other similar distributions it can be easily installed using apt-get command via PPA’s, but you will get version 1.5.

But, if you’re looking for a most recent version (i.e. 2.0.0), then you will need to compile it from source. So, here in this article we’re going to see how to compile the game in Ubuntu and Red Hat based systems.

Go to the official nSanke site and download the latest source tarball (i.e version 2.0.0) using below link.

  1. http://alexdantas.net/projects/nsnake/

Alternatively, we can also do a wget to download most recent source tarball.

# wget http://kaz.dl.sourceforge.net/project/nsnake/GNU-Linux/nsnake-2.0.0.tar.gz

Before compiling, make sure we’ve the ‘ncurses dev‘ installed on our system. To get it, simple use the following command.

$ sudo apt-get install libncurses5-dev		[On Ubuntu based systems]
$ sudo yum install ncurses ncurses-devel	[On Red Hat based systems]

Next, extract downloaded package and compile it as shown below.

$ tar -xvf nsnake-2.0.0.tar.gz
$ cd nsnake-2.0.0
$ make
$ sudo make install

By default, ‘make install‘ command installs the packages under following directories.

/usr/games/                       Executable file
~/.local/share/nsnake/            Settings and Score files

But you can also define a custom directory for the installation. For example, the following ‘make install‘ will install packages under ‘/home/tecmint‘ directory.

# make install DESTDIR=/home/tecmint

How do I Play nSnake game

The instructions are the same of any snake game. You manage a hungry snake and the mission is to eat as many fruits (means $) you can. Each eaten fruit boosts it’s size by two units. When snake collides with itself or walls the game ends.

There are currently, two modes: with borders and without borders. The mission is to earn points by eating as many fruits as you can to create biggest score.

You can start the game using the following command in the terminal.

# nsnake

Once, the game starts in the terminal, you will see a screen similar to below.

Install nSnake Game

Run nSnake

Play nSnake Game

Play nSnake Game

Random Walls nSnake

Random Walls nSnake

nSnake GameOver

Game Over

While starting game, you can On/Off borders as well as you can choose the speed of the game level. Snake can be controlled using arrow keys.

Game Controls

The game can be controlled and customizable using the following keybindings.

Arrow Keys          Moves the snake
q                   Quits the game at any time
p                   Pauses/Unpauses the game
h                   Show help during game
m		    Return to Main Menu

Uninstall Game

If you’ve installed the game via apt-get, you can simple use the apt-get command to remove it completely from the system.

$ sudo apt-get remove nsnake

If incase, you’ve compiled from source, you need to run the following command from the source installation directory to remove the files from the system.

# make uninstall

If you’ve specified a custom directory for installation, then define a path of installation directory along with `make` to uninstall properly.

# make uninstall DESTDIR=path-to-directory/

What’s your opinion about nSnake? Have you ever played it before? What other similar terminal games you play? Do share your views via our comment section.

Ravi Saive

Owner at TecMint.com
Simple Word a Computer Geek and Linux Guru who loves to share tricks and tips on Internet. Most Of My Servers runs on Open Source Platform called Linux.

Linux Services & Free WordPress Setup

Our post is simply ‘DIY’ aka ‘Do It Yourself, still you may find difficulties and want us to help you out. We offer wide range of Linux and Web Hosting Solutions at fair minimum rates. Please submit your orders by Clicking Here.

9 Responses

  1. Rmahfuj says:

    when run #make on centos 6_x64 bit getting following error:

    [root@t-server nsnake-2.0.0]# make
    # Compiling src/Misc/Utils.cpp…
    src/Misc/Utils.cpp: In function ‘void Utils::Random::seed()’:
    src/Misc/Utils.cpp:46: error: ‘nullptr’ was not declared in this scope
    src/Misc/Utils.cpp: In function ‘int Utils::Random::between(int, int)’:
    src/Misc/Utils.cpp:51: error: ‘uniform_int_distribution’ is not a member of ‘std’
    src/Misc/Utils.cpp:51: error: expected primary-expression before ‘int’
    src/Misc/Utils.cpp:51: error: expected ‘;’ before ‘int’
    src/Misc/Utils.cpp:52: error: no matching function for call to ‘distance(std::mt19937&)’
    src/Misc/Utils.cpp: At global scope:
    src/Misc/Utils.cpp:49: warning: unused parameter ‘min’
    src/Misc/Utils.cpp:49: warning: unused parameter ‘max’
    src/Misc/Utils.cpp: In function ‘float Utils::Random::fbetween(float, float)’:
    src/Misc/Utils.cpp:57: error: ‘uniform_real_distribution’ is not a member of ‘std’
    src/Misc/Utils.cpp:57: error: expected primary-expression before ‘float’
    src/Misc/Utils.cpp:57: error: expected ‘;’ before ‘float’
    src/Misc/Utils.cpp:58: error: no matching function for call to ‘distance(std::mt19937&)’
    src/Misc/Utils.cpp: At global scope:
    src/Misc/Utils.cpp:55: warning: unused parameter ‘min’
    src/Misc/Utils.cpp:55: warning: unused parameter ‘max’
    src/Misc/Utils.cpp: In function ‘bool Utils::Random::boolean()’:
    src/Misc/Utils.cpp:63: error: ‘uniform_int_distribution’ is not a member of ‘std’
    src/Misc/Utils.cpp:63: error: expected primary-expression before ‘int’
    src/Misc/Utils.cpp:63: error: expected ‘;’ before ‘int’
    src/Misc/Utils.cpp:65: error: no matching function for call to ‘distance(std::mt19937&)’
    src/Misc/Utils.cpp: In function ‘void Utils::File::mkdir_p(std::string)’:
    src/Misc/Utils.cpp:105: error: ‘struct std::string’ has no member named ‘back’
    src/Misc/Utils.cpp: In function ‘std::vector<std::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > > Utils::File::ls(std::string)’:
    src/Misc/Utils.cpp:207: error: ‘struct std::string’ has no member named ‘back’
    src/Misc/Utils.cpp: In function ‘std::string Utils::File::getHome()’:
    src/Misc/Utils.cpp:233: error: ‘struct std::string’ has no member named ‘back’
    src/Misc/Utils.cpp: In function ‘std::string Utils::File::getUser()’:
    src/Misc/Utils.cpp:245: error: ‘struct std::string’ has no member named ‘pop_back’
    make: *** [src/Misc/Utils.o] Error 1

  2. Rmahfuj says:

    when run #make on centOS 5_32 bit getting following error:

    [root@wizn nsnake-2.0.0]# make
    # Compiling src/Misc/Utils.cpp…
    cc1plus: error: unrecognized command line option “-std=c++0x”
    make: *** [src/Misc/Utils.o] Error 1

    [root@wizn nsnake-2.0.0]# gcc -v
    Using built-in specs.
    Target: i386-redhat-linux
    Configured with: ../configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –enable-shared –enable-threads=posix –enable-checking=release –with-system-zlib –enable-__cxa_atexit –disable-libunwind-exceptions –enable-libgcj-multifile –enable-languages=c,c++,objc,obj-c++,java,fortran,ada –enable-java-awt=gtk –disable-dssi –disable-plugin –with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre –with-cpu=generic –host=i386-redhat-linux
    Thread model: posix
    gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)

  3. plazma says:

    i have error when i tryin to make command like :

    # Compiling src/Game/Score.cpp…
    # Compiling src/Game/Game.cpp…
    # Compiling src/Game/Board.cpp…
    # Compiling src/Game/FruitManager.cpp…
    # Compiling src/Game/Player.cpp…
    # Compiling src/Interface/LayoutMainMenu.cpp…
    # Compiling src/Interface/Ncurses.cpp…
    # Compiling src/Interface/Layout.cpp…
    # Compiling src/Interface/LayoutFirstTime.cpp…
    # Compiling src/Interface/Menu/MenuItemNumberbox.cpp…
    # Compiling src/Interface/Menu/MenuItemCheckbox.cpp…
    # Compiling src/Interface/Menu/MenuItem.cpp…
    # Compiling src/Interface/Menu/MenuItemTextbox.cpp…
    src/Interface/Menu/MenuItemTextbox.cpp: ‘virtual void MenuItemTextbox::handleInput()’ üye fonksiyonunda:
    src/Interface/Menu/MenuItemTextbox.cpp:53:21: hata: ‘std::string’ ‘pop_back’ isimli üyeye sahip değil
    make: *** [src/Interface/Menu/MenuItemTextbox.o] Hata 1

  4. Hugo Lía says:

    It doesn’t compile on Ubuntu 12.04.
    Make ends with “Error 1″:


    # Compiling src/Interface/Menu/MenuItemTextbox.cpp…
    src/Interface/Menu/MenuItemTextbox.cpp: In member function ‘virtual void MenuItemTextbox::handleInput()’:
    src/Interface/Menu/MenuItemTextbox.cpp:53:21: error: ‘std::string’ has no member named ‘pop_back’
    make: *** [src/Interface/Menu/MenuItemTextbox.o] Error 1
    $

  5. Abhilash Anandan says:

    Great article!

    A small correction in the article though.

    In the how to play nSnake section, it should be nsnake not snake.

  6. Alexandre Dantas says:

    Hi, I’m the creator of nSnake!

    Apparently this error is due to old versions of compilers.
    You have to update GCC to 4.8.X.

    I’m trying to work around it, because nSnake uses features
    from the latest version of C++ and some compilers don’t
    support it.

    • Ravi Saive says:

      Dear Alex,

      Thanks for updating our fellow users, will definetly compile it again using latest GCC as you suggested.

  7. william derington says:

    how do i install on fedora 20

Leave a Reply

This work is licensed under a (cc) BY-NC | TecMint uses cookies. By using our services, you comply to use of our cookies. More info: Privacy Policy.
© 2012-2014 All Rights Reserved.