blob: 67247c88525cea104b2fa250cf1b45e933749a04 (
plain)
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
|
with Queue;
package Game is
type T_Position is record
x: Natural;
y: Natural;
end record;
package P_Position_Queue is new Queue(T_Position);
use P_Position_Queue;
type T_Direction is (
DIRECTION_UP,
DIRECTION_DOWN,
DIRECTION_LEFT,
DIRECTION_RIGHT
);
type T_Game is record
height: Positive;
width: Positive;
snake: T_Queue;
direction: T_Direction;
food: T_Position;
end record;
procedure Init(game: out T_Game;
width: Positive;
height: Positive);
function Next(game: in out T_Game) return Boolean;
private
procedure Spawn_Food(game: in out T_Game);
function Next_Head(game: T_Game) return T_Position;
function In_Border(game: T_Game; pos: T_Position) return Boolean;
end Game;
|