0% found this document useful (0 votes)
16 views7 pages

C++ Snake Game (Simple!) - Instructables

Snake game notes

Uploaded by

rahul274274
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views7 pages

C++ Snake Game (Simple!) - Instructables

Snake game notes

Uploaded by

rahul274274
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

C++ Snake Game (Simple!

)
By Circuitalist in CircuitsSoftware

Introduction: C++ Snake Game (Simple!)

the snake game is a very popular one, here is a very simple one written in C++ using Visual Studio

the code is only 150 line and can be modified in several ways

Enjoy!

////////////////////////////////////////////////////

You want to support my videos?

You can browse and buy materials from my Amazon Store with the same price. This way I get a small
commission:

C++ How to Program (10th Edition)

Beginning C++ Through Game Programming

Starting out with Visual C# (4th Edition)

////////////////////////////////////////////////////
Step 1: Watch on Youtube...
Step 2: Coding...

#include < iostream >

#include < conio.h >

using namespace std;

bool gameover;

const int width = 20;

const int height = 17;

int x, y, fruitX, fruitY, score;

int tailX[100], tailY[100]; //snake coordinates

int nTail;

enum eDirecton {STOP = 0, LEFT,RIGHT, UP, DOWN}; // Controls

eDirecton dir;

void Setup() {
gameover = false;

dir = STOP;

x = width / 2;

y = height / 2;

fruitX = rand() % width; //display fruit in a random place

fruitY = rand() % height; score = 0;

void Draw() {
system("cls");

for(int i = 0; i < width+2; i++)

cout << "#";


cout << endl ;

for (int i = 0; i < height ; i++) {

for (int j = 0; j < width; j++) {

if (j == 0)

cout << "#"; //walls

if (i == y && j == x)

cout << "*"; // snake tale

else if (i == fruitY && j == fruitX )

cout << "%"; // change it to change the fruit

else {

bool print = false;

for (int k = 0; k< nTail ; k++) {

if (tailX [k] == j && tailY [k] == i) {

cout << "*"; print = true;

if (!print) cout << " ";

if (j == width -1)

cout << "#";

cout << endl;

for (int i = 0; i< width+2; i++)

cout << "#";

cout << endl;

cout << "Score:" << score << endl ;

}
void Input ()
{

if (_kbhit ()) {

switch (_getch ()) {

case 'a':

dir = LEFT;

break;

case 'd':

dir = RIGHT;

break;

case 'w':

dir = UP;

break;

case 's':

dir = DOWN ;

break;

case 'x':

gameover = true;

break;

void algorithm()
{

int prevX = tailX [0];

int prevY = tailY [0];

int prev2X, prev2Y;

tailX[0] = x;

tailY[0] = y;
for(int i = 1;i < nTail ; i++) {

prev2X = tailX[i];

prev2Y = tailY[i];

tailX[i] = prevX;

tailY[i] = prevY;

prevX = prev2X;

prevY = prev2Y ;

switch (dir) {

case LEFT:

x--;

break;

case RIGHT:

x++;

break;

case UP:

y--;

break;

case DOWN:

y++;

break;

default:

break;

if (x >= width) x =0;else if (x <0) x = width -1;

if (y >= height) y = 0; else if (y < 0) y = height - 1;

for (int i =0; i< nTail ;i++)


if (tailX[i] == x && tailY[i] == y)
gameover = true;

if (x == fruitX && y == fruitY) {

score +=10;

fruitX = rand() % width;

fruitY = rand() % height;

nTail ++;

int main()
{

Setup();

while (!gameover) {

Draw ();

Input ();

algorithm ();

return 0;

You might also like