Mercurial > hg > Database > jungle-sharp
view src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/DefaultNodePath.cs @ 7:02b2ab7bffe6
fix
author | Kazuma |
---|---|
date | Tue, 27 Sep 2016 18:36:05 +0900 |
parents | dec15de2c6ff |
children | d132d442dc34 |
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>(); IEnumerator IEnumerable.GetEnumerator() { // call the generic version of the method return this.GetEnumerator(); } public IEnumerator<int> GetEnumerator() { return path.iterator (); } public DefaultNodePath() { path = new List<int> ().addLast (-1); } private DefaultNodePath(List<int> path) { this.path = path; } /// <summary> /// Listに追加します。 /// path = path.add(0)を2回する /// path = path.add(0).add(0)する /// これは同じ /// </summary> /// <param name="pos">Position.</param> 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 override 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; } }