C ++ Snake Game (eenvoudig!)

het snake-spel is erg populair, hier is een heel eenvoudig spel geschreven in C ++ met Visual Studio

de code is slechts 150 regels en kan op verschillende manieren worden gewijzigd

Genieten!

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

Wil je mijn video's ondersteunen?

U kunt materialen voor dezelfde prijs doorbladeren en kopen in mijn Amazon-winkel. Op deze manier krijg ik een kleine commissie:

C ++ Hoe te programmeren (10e editie)

Beginnen met C ++ via spelprogrammering

Beginnen met Visual C # (4e editie)

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

Stap 1: Bekijk op Youtube ...

Stap 2: Codering ...

#include

#include

namespace std; gebruiken;

bool gameover;

const int width = 20;

const int height = 17;

int x, y, fruitX, fruitY, score;

int tailX [100], tailY [100]; // snake coördinaten

int nTail;

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

eDirecton dir;

ongeldig Setup () {
gameover = false;

dir = STOP;

x = breedte / 2;

y = hoogte / 2;

fruitX = rand ()% breedte; // toon fruit op een willekeurige plaats

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

}

ongeldig Draw () {
systeem ("cls");

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

cout << "#";

cout << endl;

voor (int i = 0; i <hoogte; i ++) {

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

als (j == 0)

cout << "#"; // muren

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

cout << "*"; // snake tale

anders als (i == fruitY && j == fruitX)

cout << "%"; // verander het om de vrucht te veranderen

anders {

bool print = false;

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

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

cout << "*"; print = waar;

}

}

if (! print) cout << "";

}

if (j == breedte -1)

cout << "#";

}

cout << endl;

}

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

cout << "#";

cout << endl;

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

}

ongeldige invoer ()
{

if (_kbhit ()) {

schakelaar (_getch ()) {

geval 'a':

dir = LINKS;

breken;

geval 'd':

dir = RECHTS;

breken;

case 'w':

dir = UP;

breken;

gevallen':

dir = DOWN;

breken;

geval 'x':

gameover = waar;

breken;

}

}

}

ongeldig algoritme ()
{

int prevX = tailX [0];

int prevY = tailY [0];

int prev2X, prev2Y;

tailX [0] = x;

tailY [0] = y;

voor (int i = 1; i <nTail; i ++) {

prev2X = tailX [i];

prev2Y = tailY [i];

tailX [i] = prevX;

tailY [i] = vorige;

prevX = prev2X;

prevY = prev2Y;

}

schakelaar (dir) {

geval LINKS:

X--;

breken;

geval RECHTS:

x ++;

breken;

geval UP:

y--;

breken;

case DOWN:

y ++;

breken;

standaard:

breken;

}

if (x> = breedte) x = 0; anders if (x <0) x = breedte -1;

als (y> = hoogte) y = 0; anders als (y <0) y = hoogte - 1;

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

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

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

score + = 10;

fruitX = rand ()% breedte;

fruitY = rand ()% hoogte;

nTail ++;

}

}

int main ()
{

Opstelling();

while (! gameover) {

Draw ();

Invoer ();

algoritme ();

}

retourneer 0;

}

Verwante Artikelen