C ++ Permainan Ular (Mudah!)

permainan ular adalah yang sangat popular, di sini adalah satu yang sangat mudah ditulis dalam C ++ menggunakan Visual Studio

kod itu hanya 150 baris dan boleh diubah suai dalam beberapa cara

Nikmati!

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

Anda mahu menyokong video saya?

Anda boleh menyemak imbas dan membeli bahan dari Amazon Store saya dengan harga yang sama. Dengan cara ini saya mendapat komisen kecil:

C ++ Bagaimana Program (Edisi ke-10)

Bermula C ++ Melalui Pemrograman Permainan

Bermula dengan Visual C # (Edisi ke-4)

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

Langkah 1: Tonton di Youtube ...

Langkah 2: Pengekodan ...

#include

#include

menggunakan std nama ruang;

bool gameover;

const int width = 20;

const int height = 17;

int x, y, fruitX, fruitY, skor;

int tailX [100], tailY [100]; // koordinat ular

int nTail;

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

eDirecton dir;

Batalkan Persediaan () {
gameover = false;

dir = STOP;

x = lebar / 2;

y = ketinggian / 2;

buahX = rand ()% lebar; // memaparkan buah di tempat yang rawak

buahY = rand ()% ketinggian; skor = 0;

}

tidak sah Draw () {
sistem ("cls");

untuk (int i = 0; i <lebar + 2; i ++)

cout << "#";

cout << endl;

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

untuk (int j = 0; j <lebar; j ++) {

jika (j == 0)

cout << "#"; // dinding

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

cout << "*"; // kisah ular

lain jika (i == fruitY && j == fruitX)

cout << "%"; // ubahnya untuk menukar buah

lain {

bool print = false;

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

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

cout << "*"; cetak = benar;

}

}

jika (! cetak) cout << "";

}

jika (j == lebar -1)

cout << "#";

}

cout << endl;

}

untuk (int i = 0; i <lebar + 2; i ++)

cout << "#";

cout << endl;

cout << "Markah:" << mark << endl;

}

Batalkan Input ()
{

jika (_kbhit ()) {

suis (_getch ()) {

kes 'a':

dir = LEFT;

pecah;

kes 'd':

dir = RIGHT;

pecah;

kes 'w':

dir = UP;

pecah;

kes ':

dir = DOWN;

pecah;

kes 'x':

gameover = true;

pecah;

}

}

}

algoritma kekosongan ()
{

int prevX = tailX [0];

int prevY = tailY [0];

int prev2X, prev2Y;

tailX [0] = x;

tailY [0] = y;

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

prev2X = tailX [i];

prev2Y = tailY [i];

tailX [i] = prevX;

tailY [i] = prevY;

prevX = prev2X;

prevY = prev2Y;

}

suis (dir) {

kes Kiri:

x--;

pecah;

kes KANAN:

x ++;

pecah;

kes UP:

y--;

pecah;

kes DOWN:

y ++;

pecah;

lalai:

pecah;

}

jika (x> = lebar) x = 0; else jika (x <0) x = lebar -1;

jika (y> = ketinggian) y = 0; lain jika (y <0) y = ketinggian - 1;

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

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

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

skor + = 10;

buahX = rand ()% lebar;

buahY = rand ()% ketinggian;

nTail ++;

}

}

int main ()
{

Persediaan ();

sementara (! gameover) {

Lukis ();

Input ();

algoritma ();

}

kembali 0;

}

Artikel Berkaitan