annotate src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle-main/store/impl/DefaultNodePath.cs @ 10:abe0c247f5a5

Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
author Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
date Sun, 23 Oct 2016 07:40:50 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
1 using UnityEngine;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
2 using System.Collections.Generic;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
3 using System.Collections;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
4
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
5 public class DefaultNodePath : NodePath {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
6 private List<int> path = new List<int>();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
7
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
8 IEnumerator IEnumerable.GetEnumerator()
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
9 {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
10 // call the generic version of the method
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
11 return this.GetEnumerator();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
12 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
13
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
14 public IEnumerator<int> GetEnumerator()
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
15 {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
16 return path.iterator ();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
17 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
18
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
19 public DefaultNodePath() {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
20 path = new List<int> ().addLast (-1);
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
21 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
22
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
23 private DefaultNodePath(List<int> path) {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
24 this.path = path;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
25 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
26
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
27 /// <summary>
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
28 /// Listに追加します。
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
29 /// path = path.add(0)を2回する
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
30 /// path = path.add(0).add(0)する
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
31 /// これは同じ
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
32 /// </summary>
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
33 /// <param name="pos">Position.</param>
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
34
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
35 public NodePath add(int pos) {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
36 List<int> newPath = path.addLast(pos);
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
37 return new DefaultNodePath(newPath);
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
38 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
39
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
40 public Pair<int, NodePath> pop() {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
41 int head = path.headList();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
42 List<int> tail = path.deleteHead();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
43 return new Pair<int, NodePath>(head, new DefaultNodePath(tail));
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
44 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
45
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
46 public Pair<int, NodePath> last() {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
47 int last = path.headList();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
48 List<int> list = path.deleteHead();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
49 return new Pair<int, NodePath>(last, new DefaultNodePath(list));
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
50 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
51
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
52 public override string ToString() {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
53 string s = "List <";
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
54 int list_count = this.path.length();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
55 int count = 0;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
56 foreach(var i in this.path) {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
57 if (count != list_count -1){
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
58 s += i.ToString() + ",";
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
59 } else {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
60 s += i.ToString();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
61 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
62 count++;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
63 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
64 return s + ">";
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
65 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
66
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
67 public int size() {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
68 return path.length();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
69 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
70
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
71 public NodePath tail() {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
72 List<int> tail = path.deleteLast ();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
73 return new DefaultNodePath (tail);
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
74 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
75
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
76 public List<DefaultNodePath> inits() {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
77 List<DefaultNodePath> paths = new List<DefaultNodePath> ();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
78 List<int> coursePath = new List<int> ();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
79 foreach (int tmpPath in path) {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
80 List<int> tmp = coursePath.addLast (tmpPath);
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
81 paths = paths.addLast (new DefaultNodePath (tmp));
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
82 coursePath = tmp;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
83 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
84 return paths;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
85 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
86
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
87
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
88 }