Rev 16 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
10 | tom | 1 | #include <vector> |
2 | |||
3 | using namespace std; |
||
4 | |||
5 | #include "point.hpp" |
||
9 | freddie | 6 | #include "snake.hpp" |
7 | |||
10 | tom | 8 | Snake::Snake() |
9 | freddie | 9 | { |
11 | freddie | 10 | R = 255; |
11 | G = 255; |
||
12 | B = 0; |
||
13 | tom | 13 | direction = Up; |
16 | freddie | 14 | dead = false; // FALSE ? |
10 | tom | 15 | } |
16 | |||
17 | void Snake::nextPoint(Point newPoint) |
||
18 | { |
||
11 | freddie | 19 | points.insert(points.begin(), newPoint); |
20 | points.pop_back(); |
||
10 | tom | 21 | } |
14 | freddie | 22 | |
23 | void Snake::move() |
||
24 | { |
||
25 | switch (direction) |
||
26 | { |
||
15 | tom | 27 | case Up: |
14 | freddie | 28 | nextPoint(Point(points[0].X, points[0].Y - 1)); |
15 | tom | 29 | break; |
30 | |||
31 | case Down: |
||
14 | freddie | 32 | nextPoint(Point(points[0].X, points[0].Y + 1)); |
15 | tom | 33 | break; |
34 | |||
35 | case Left: |
||
14 | freddie | 36 | nextPoint(Point(points[0].X - 1, points[0].Y)); |
15 | tom | 37 | break; |
38 | |||
39 | case Right: |
||
14 | freddie | 40 | nextPoint(Point(points[0].X + 1, points[0].Y)); |
15 | tom | 41 | break; |
14 | freddie | 42 | } |
43 | } |
||
16 | freddie | 44 | |
17 | tom | 45 | void Snake::append(int num) |
16 | freddie | 46 | { |
17 | tom | 47 | int index = points.size() - 1; |
48 | |||
49 | if (index >= 0) |
||
50 | { |
||
51 | Point p = points[index]; |
||
52 | points.push_back(p); |
||
53 | } |
||
16 | freddie | 54 | } |