Snake spel... lära sig att göra en orm spel i c ++. (7 / 13 steg)
Steg 7: Programmering kod (c ++)
::: kopiera koden nedan:::
#include
#include
#include
genom att använda namespace std;
bool gameOver;
CONST int bredd = 50;
CONST int höjd = 20;
int x, y, fruitX, fruktig, poäng;
int tailX [100], tailY [100];
int nTail;
enum eDirecton {stoppa = 0, vänster, höger, upp, ner};
eDirecton dir;
void Setup()
{
gameOver = false;
dir = stopp;
x = bredd / 2;
y = höjd / 2; fruitX = rand() % bredd;
Fruktig = rand() % höjd;
poäng = 0;
}
void Draw()
{
system("CLS"); system("Clear");
för (int jag = 0; jag < bredd + 10; i ++)
Cout << "#";
Cout << oä;
för (int jag = 0; jag < höjd; i ++)
{
för (int j = 0; j < bredd; j ++)
{
om (j == 0)
Cout << "#basit";
om (jag == y & & j == x)
Cout << "O";
annars om (jag == fruktig & & j == fruitX)
Cout << "B";
annat
{
bool print = false;
för (int k = 0; k < nTail; k ++)
{
om (tailX [k] == j & & tailY [k] == jag)
{
Cout << "o";
skriva ut = sant;
}
}
om (! skriva ut)
Cout << "";
}
om (j == bredd - 1)
Cout << "#basit";
}
Cout << oä;
}
för (int jag = 0; jag < bredd + 10; i ++)
Cout << "#";
Cout << oä;
Cout << "poäng:" << poäng << oä;
Cout << "gjort av hafiz sayed abdul basit";
Cout << oä;
Cout << "använda w, a, s, d för att styra ormen";
}
void Input()
{
om (_kbhit())
{
Switch (_getch())
{
fallet "a":
dir = vänster;
bryta;
fall skulle ":
dir = höger;
bryta;
fallet "w":
dir = upp;
bryta;
fallet ":
dir =.
bryta;
fallet "x":
gameOver = sant;
bryta;
}
}
}
void Logic()
{
int prevX = tailX [0];
int prevY = tailY [0];
int prev2X, prev2Y;
tailX [0] = x;
tailY [0] = y;
för (int jag = 1; jag < nTail; i ++)
{
prev2X = tailX [i];
prev2Y = tailY [i];
tailX [i] = prevX;
tailY [i] = prevY;
prevX = prev2X;
prevY = prev2Y;
}
Switch (dir)
{
fall kvar:
x--;
bryta;
fall rätt:
x ++;
bryta;
fall upp:
y--;
bryta;
fall ner:
y ++;
bryta;
standard:
bryta;
}
om (x > bredd || x < 0 || y > höjd || y < 0)
gameOver = sant;
om (x > = bredd) x = 0; annars om (x < 0) x = bredd - 1.
om (y > = höjd) y = 0; annars om (y < 0) y = höjd - 1.
för (int jag = 0; jag < nTail; i ++)
om (tailX [i] == x & & tailY [i] == y)
gameOver = sant;
om (x == fruitX & & y == fruktig)
{
poäng + = 10.
fruitX = rand() % bredd;
Fruktig = rand() % höjd;
nTail ++;
}
}
int main)
{
Setup();
medan (! gameOver)
{
Draw();
Input();
Logic();
Sleep(60); Sleep(60); Rekommenderad hastighet är 40 till 80.
}
Return 0;
}