C ++ Yılan Oyunu (Basit!)

yılan oyunu çok popüler bir oyun, burada Visual Studio kullanarak C ++ ile yazılmış çok basit bir oyun

kod sadece 150 satır ve çeşitli şekillerde değiştirilebilir

Zevk almak!

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

Videolarımı desteklemek ister misin?

Amazon Mağazamdaki malzemelere aynı fiyata göz atabilir ve satın alabilirsiniz. Bu şekilde küçük bir komisyon alıyorum:

C ++ Nasıl Programlanır (10. Baskı)

Oyun Programlama Yoluyla C ++ 'a Başlama

Visual C # (4. Baskı) ile başlayarak

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

1. Adım: Youtube'da izleyin ...

Adım 2: Kodlama ...

#Dahil etmek

#Dahil etmek

ad alanı std kullanarak;

bool gameover;

sabit int genişliği = 20;

sabit int yükseklik = 17;

int x, y, fruitX, fruitY, skor;

int kuyrukX [100], kuyrukY [100]; // yılan koordinatları

int nTail;

enum eDirecton {STOP = 0, SOL, SAĞ, YUKARI, AŞAĞI}; // Kontroller

eDirecton yönergesi;

void Kurulumu () {
oyun = yanlış;

dir = DUR;

x = genişlik / 2;

y = yükseklik / 2;

fruitX = rand ()% genişlik; // meyveleri rastgele bir yerde göster

fruitY = rand ()% yükseklik; skor = 0;

}

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

for (int i = 0; i <genişlik + 2; i ++)

cout << "#";

cout << endl;

for (int i = 0; i <yükseklik; i ++) {

for (int j = 0; j <genişlik; j ++) {

eğer (j == 0)

cout << "#"; // duvarlar

eğer (i == y && j == x)

cout << "*"; // yılan masalı

else if (i == meyveli && j == meyveliX)

cout << "%"; // meyveyi değiştirmek için değiştir

Başka {

bool print = yanlış;

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

eğer (tailX [k] == j && tailY [k] == i) {

cout << "*"; print = true;

}

}

eğer (! print) cout << "";

}

eğer (j == genişlik -1)

cout << "#";

}

cout << endl;

}

for (int i = 0; i <genişlik + 2; i ++)

cout << "#";

cout << endl;

cout << "Puan:" << puan << endl;

}

void Girişi ()
{

if (_kbhit ()) {

switch (_getch ()) {

'a' durumu:

dir = SOL;

break;

case 'd':

dir = SAĞ;

break;

case 'w':

dir = YUKARI;

break;

vaka ':

dir = AŞAĞI;

break;

vaka 'x':

gameover = true;

break;

}

}

}

void algoritması ()
{

int prevX = kuyrukX [0];

int prevY = kuyrukY [0];

int prev2X, önceki2Y;

kuyrukX [0] = x;

kuyrukY [0] = y;

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

prev2X = kuyrukX [i];

prev2Y = kuyrukY [i];

tailX [i] = prevX;

tailY [i] = önceki;

prevX = prev2X;

prevY = önceki2Y;

}

anahtar (dir) {

durumda SOL:

X-'i;

break;

vaka SAĞ:

x ++;

break;

Vaka YUKARI:

Y-;

break;

durum AŞAĞI:

y ++;

break;

varsayılan:

break;

}

if (x> = genişlik) x = 0; aksi takdirde (x <0) x = genişlik -1;

eğer (y> = yükseklik) y = 0; aksi takdirde (y <0) y = yükseklik - 1;

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

eğer (tailX [i] == x && tailY [i] == y)
gameover = true;

eğer (x == fruitX && y == fruitY) {

skor + = 10;

fruitX = rand ()% genişlik;

fruitY = rand ()% yükseklik;

nTail ++;

}

}

int main ()
{

Kurmak();

while (! oyun) {

Çizmek ();

Girdi ();

algoritma ();

}

dönüş 0;

}

İlgi̇li̇ Makaleler