C ++ Snake Game (Semplice!)

il gioco del serpente è molto popolare, qui è molto semplice scritto in C ++ usando Visual Studio

il codice ha solo 150 righe e può essere modificato in diversi modi

Godere!

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

Vuoi supportare i miei video?

Puoi sfogliare e acquistare materiali dal mio Amazon Store allo stesso prezzo. In questo modo ottengo una piccola commissione:

C ++ Come programmare (decima edizione)

A partire dal C ++ attraverso la programmazione del gioco

A partire da Visual C # (4a edizione)

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

Passaggio 1: guarda su Youtube ...

Passaggio 2: codifica ...

#includere

#includere

usando lo spazio dei nomi std;

bool gameover;

const int larghezza = 20;

const int height = 17;

int x, y, fruitX, fruitY, score;

int tailX [100], tailY [100]; // coordinate del serpente

int nTail;

enum eDirecton {STOP = 0, SINISTRA, DESTRA, SU, GIÙ}; // Controlli

eDirecton dir;

void Setup () {
gameover = false;

dir = STOP;

x = larghezza / 2;

y = altezza / 2;

fruitX = rand ()% larghezza; // mostra la frutta in un posto casuale

fruitY = rand ()% altezza; punteggio = 0;

}

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

per (int i = 0; i <larghezza + 2; i ++)

cout << "#";

cout << endl;

per (int i = 0; i <altezza; i ++) {

per (int j = 0; j <larghezza; j ++) {

if (j == 0)

cout << "#"; // pareti

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

cout << "*"; // racconto di serpenti

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

cout << "%"; // cambialo per cambiare il frutto

altro {

bool print = false;

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

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

cout << "*"; print = true;

}

}

if (! print) cout << "";

}

if (j == larghezza -1)

cout << "#";

}

cout << endl;

}

per (int i = 0; i <larghezza + 2; i ++)

cout << "#";

cout << endl;

cout << "Punteggio:" << punteggio << endl;

}

void Input ()
{

if (_kbhit ()) {

switch (_getch ()) {

caso "a":

dir = SINISTRA;

rompere;

caso 'd':

dir = DESTRA;

rompere;

caso 'w':

dir = UP;

rompere;

case ':

dir = DOWN;

rompere;

caso 'x':

gameover = true;

rompere;

}

}

}

void algoritmo ()
{

int prevX = tailX [0];

int prevY = tailY [0];

int prev2X, prev2Y;

tailX [0] = x;

tailY [0] = y;

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

prev2X = tailX [i];

prev2Y = tailY [i];

tailX [i] = prevX;

tailY [i] = prevY;

prevX = prev2X;

prevY = prev2Y;

}

switch (dir) {

caso SINISTRA:

X--;

rompere;

caso DESTRA:

x ++;

rompere;

caso SU:

y--;

rompere;

case DOWN:

y ++;

rompere;

predefinito:

rompere;

}

if (x> = larghezza) x = 0; altrimenti if (x <0) x = larghezza -1;

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

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

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

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

punteggio + = 10;

fruitX = rand ()% larghezza;

fruitY = rand ()% altezza;

nTail ++;

}

}

int main ()
{

Impostare();

while (! gameover) {

Disegnare ();

Input ();

algoritmo ();

}

ritorna 0;

}

Articoli Correlati