- 27th Feb 2019
- 02:40 am
- Aditya Lakhera
Creating a Snake Game in C++ is a fun project that involves graphics and game logic.
Please find below a C++ Program for snake game. If you need help with any C++ games/ programs please reach out to us.
#include < iostream > #include < conio.h > #include < windows.h > using namespace std; boolgameOver; constint width = 20; constint height = 20; int x, y, fruitX, fruitY, score; inttailX[100], tailY[100]; intnTail; enumeDirecton { STOP = 0, LEFT, RIGHT, UP, DOWN }; eDirectondir; void Setup() { gameOver = false; dir = STOP; x = width / 2; y = height / 2; fruitX = rand() % width; fruitY = rand() % height; score = 0; } void Draw() { system("cls"); //system("clear"); 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 << "#"; if (i == y && j == x) cout << "O"; else if (i == fruitY && j == fruitX) cout << "F"; else { bool print = false; for (int k = 0; k < nTail; k++) { if (tailX[k] == j && tailY[k] == i) { cout << "o"; 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 Logic() { intprevX = tailX[0]; intprevY = 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 || y > height || y < 0) // gameOver = true; 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(); Logic(); Sleep(10); //sleep(10); } return 0; }
This is a basic version of the Snake game in C++. You can further improve and extend it by adding more features, such as levels, speed adjustments, sound effects, and graphical user interfaces. Have fun coding!
About the Author - Seddy
With a fervent dedication to decoding complex datasets and crafting innovative solutions, I am a seasoned programmer proficient in Statistical Data Analysis, Statistics, Statistical Modeling, and programming. My expertise lies at the intersection of technical acumen and analytical prowess, allowing me to engineer dynamic solutions that empower organizations to make data-driven decisions.