Mercurial > hg > Database > jungle-sharp
view src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/DefaultNodePath.cs @ 0:dec15de2c6ff
first commit
author | Kazuma |
---|---|
date | Tue, 21 Jun 2016 17:11:12 +0900 |
parents | |
children | 02b2ab7bffe6 |
line wrap: on
line source
using UnityEngine; using System.Collections.Generic; using System.Collections; public class DefaultNodePath : NodePath { private List<int> path = new List<int>(); int[] _array; int Count; IEnumerator IEnumerable.GetEnumerator() { // call the generic version of the method return this.GetEnumerator(); } public IEnumerator<int> GetEnumerator() { for (int i = 0; i < Count; i++) yield return _array[i]; } public void Start() { NodePath p = new DefaultNodePath(); p = p.add(1).add(2).add(3).add(4); Debug.Log (p.ToString ()); } public DefaultNodePath() { path = new List<int> ().addLast (-1); } private DefaultNodePath(List<int> path) { this.path = path; } // public IEnumerator<int> iterator() { // return path.iterator(); // } public NodePath add(int pos) { List<int> newPath = path.addLast(pos); return new DefaultNodePath(newPath); } public Pair<int, NodePath> pop() { int head = path.headList(); List<int> tail = path.deleteHead(); return new Pair<int, NodePath>(head, new DefaultNodePath(tail)); } public Pair<int, NodePath> last() { int last = path.headList(); List<int> list = path.deleteHead(); return new Pair<int, NodePath>(last, new DefaultNodePath(list)); } public string toString() { return path.toString(); } public int size() { return path.length(); } public NodePath tail() { List<int> tail = path.deleteLast (); return new DefaultNodePath (tail); } public List<DefaultNodePath> inits() { List<DefaultNodePath> paths = new List<DefaultNodePath> (); List<int> coursePath = new List<int> (); foreach (int tmpPath in path) { List<int> tmp = coursePath.addLast (tmpPath); paths = paths.addLast (new DefaultNodePath (tmp)); coursePath = tmp; } return paths; } }