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;
}