This document contains a C++ implementation of a simple console-based Snake game. The game features a grid where the player controls a snake that grows in length by eating fruits, while avoiding collisions with the walls and itself. Key functions include setup, drawing the game state, handling user input, and updating the game logic.
Download as TXT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
4 views
message 2
This document contains a C++ implementation of a simple console-based Snake game. The game features a grid where the player controls a snake that grows in length by eating fruits, while avoiding collisions with the walls and itself. Key functions include setup, drawing the game state, handling user input, and updating the game logic.
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; default: break; } } } void Logic() { 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 || 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)
{ srand(time(0)); // Random seed value for rand based on time score += 10; fruitX = rand() % width; fruitY = rand() % height; nTail++; } } int main() { //Will make cout much faster std::ios_base::sync_with_stdio(false); std::cin.tie(NULL);