-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathAIHandler.cs
More file actions
50 lines (39 loc) · 991 Bytes
/
AIHandler.cs
File metadata and controls
50 lines (39 loc) · 991 Bytes
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
using UnityEngine;
using System.Collections;
namespace Snake
{
public class AIHandler : AbstractInputHandler
{
[Inject]
public IPellet Pellet { get; set; }
[Inject]
public IPathfinder Pathfinder { get; set; }
private Cell snakeHead;
public override IEnumerator Update ()
{
while (!Game.IsOver)
{
snakeHead = Snake.Head;
var directions = Pathfinder.GetDirections (snakeHead, Pellet.Cell);
var isPathAvailable = false;
foreach (var dir in directions)
{
isPathAvailable = true;
Handle (dir);
while (snakeHead == Snake.Head)
{
yield return new WaitForSeconds (Game.TimeSkipPerFrame);
}
snakeHead = Snake.Head;
}
if (!isPathAvailable)
{
while (snakeHead == Snake.Head)
{
yield return new WaitForSeconds (Game.TimeSkipPerFrame);
}
}
}
}
}
}