0
|
1 using UnityEngine;
|
|
2 using System.Collections.Generic;
|
|
3 using System.Collections;
|
|
4
|
|
5 public class DefaultNodePath : NodePath {
|
|
6 private List<int> path = new List<int>();
|
|
7
|
|
8 int[] _array;
|
|
9 int Count;
|
|
10
|
|
11 IEnumerator IEnumerable.GetEnumerator()
|
|
12 {
|
|
13 // call the generic version of the method
|
|
14 return this.GetEnumerator();
|
|
15 }
|
|
16
|
|
17 public IEnumerator<int> GetEnumerator()
|
|
18 {
|
|
19 for (int i = 0; i < Count; i++)
|
|
20 yield return _array[i];
|
|
21 }
|
|
22
|
|
23
|
|
24
|
|
25 public void Start() {
|
|
26 NodePath p = new DefaultNodePath();
|
|
27 p = p.add(1).add(2).add(3).add(4);
|
|
28 Debug.Log (p.ToString ());
|
|
29 }
|
|
30
|
|
31 public DefaultNodePath() {
|
|
32 path = new List<int> ().addLast (-1);
|
|
33 }
|
|
34
|
|
35 private DefaultNodePath(List<int> path) {
|
|
36 this.path = path;
|
|
37 }
|
|
38
|
|
39
|
|
40 // public IEnumerator<int> iterator() {
|
|
41 // return path.iterator();
|
|
42 // }
|
|
43
|
|
44 public NodePath add(int pos) {
|
|
45 List<int> newPath = path.addLast(pos);
|
|
46 return new DefaultNodePath(newPath);
|
|
47 }
|
|
48
|
|
49 public Pair<int, NodePath> pop() {
|
|
50 int head = path.headList();
|
|
51 List<int> tail = path.deleteHead();
|
|
52 return new Pair<int, NodePath>(head, new DefaultNodePath(tail));
|
|
53 }
|
|
54
|
|
55 public Pair<int, NodePath> last() {
|
|
56 int last = path.headList();
|
|
57 List<int> list = path.deleteHead();
|
|
58 return new Pair<int, NodePath>(last, new DefaultNodePath(list));
|
|
59 }
|
|
60
|
|
61 public string toString() {
|
|
62 return path.toString();
|
|
63 }
|
|
64
|
|
65 public int size() {
|
|
66 return path.length();
|
|
67 }
|
|
68
|
|
69 public NodePath tail() {
|
|
70 List<int> tail = path.deleteLast ();
|
|
71 return new DefaultNodePath (tail);
|
|
72 }
|
|
73
|
|
74 public List<DefaultNodePath> inits() {
|
|
75 List<DefaultNodePath> paths = new List<DefaultNodePath> ();
|
|
76 List<int> coursePath = new List<int> ();
|
|
77 foreach (int tmpPath in path) {
|
|
78 List<int> tmp = coursePath.addLast (tmpPath);
|
|
79 paths = paths.addLast (new DefaultNodePath (tmp));
|
|
80 coursePath = tmp;
|
|
81 }
|
|
82 return paths;
|
|
83 }
|
|
84
|
|
85
|
|
86 }
|