-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsnake.cpp
More file actions
88 lines (85 loc) · 1.35 KB
/
snake.cpp
File metadata and controls
88 lines (85 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
bool gameOver;
const int width = 20;
const int height = 10;
int x,y,fruitX, fruitY, score;
enum eDirection{STOP = 0,LEFT,RIGHT,UP,DOW};
eDirection dir;
void input()
{
if(_kbhit())
{
switch (_getch())
{
case 'a':
dir = LEFT;
break;
case 'd':
dir = RIGHT;
break;
case 'w':
dir = UP;
break;
case 's':
dir = DOWN;
break;
case 'x':
gameOver = true;
break;
}
}
}
void Logic()
{
int prevX = tailX[0];
int prevY = tailY[0];
int prev2X,prev2Y;
tailX[0]=x;
tailY[0]=y;
for(int i=1;i<nTail;i++)
{
prev2X = tailX[i];
prev2Y = tailY[i];
tailX[i]=prevX;
tailY[i]=prevY;
prevX = prev2X;
prevY = prev2Y;
}
switch (dir)
{
case LEFT:
x--;
break;
case RIGHT:
x++;
case UP:
y--;
break;
case DOWN;
y++;
break;
default:
break;
}
// if (x>width || x<0 || y>height || )
// gameOver = true;
if(x>=width) x=0;else if(x<0) x=width -1;
if(y>=height) y=0;else if(y<0) y = heigh -1;
for(int i=0;i<nTail;i++)
if(tailX[i] == x && tailY[i] == y)
gameOver = true;
if(x==fruitx && y == fruity)
{
score += 1;
fruitX = rand() % width;
fruitY = rand() % height;
nTail++;
}
}
int main()
{
return 0;
}