public static void SimuHanoi(int n, char a, char b, char c) //栈模拟汉诺塔 { Stack <HanoiData> stack = new Stack <HanoiData>(); HanoiData temp = new HanoiData(n, a, b, c); stack.Push(temp); int num = 1; while (stack.Count != 0) { temp = stack.Pop(); if (temp.N == 1) { Move(temp.Start, temp.End); step++; } else { HanoiData temp1 = new HanoiData(temp.N - 1, temp.Start, temp.End, temp.Middle); HanoiData temp2 = new HanoiData(1, temp.Start, temp.Middle, temp.End); HanoiData temp3 = new HanoiData(temp.N - 1, temp.Middle, temp.Start, temp.End); stack.Push(temp3); stack.Push(temp2); stack.Push(temp1); num++; } } step = 1; }
public override void processJsonObject(JSONObject job, HanoiData hd) { for (int i = 0; i < job.keys.Count; i++) { JSONObject val = job.list[i]; switch (job.keys[i]) { case "ft": if (val.IsNumber) { frameTime = val.f; } break; case "fut": if (val.IsNumber) { frameUnityTime = val.f; } break; case "fid": if (val.IsNumber) { frameID = (int)val.n; } break; case "lc": if (val.IsNumber) { frameLuaTime = val.f; } break; case "fc": if (val.IsNumber) { frameFunTime = val.f; } break; default: // Debug.LogFormat("unknown field: {0}", obj.keys[i]); break; } } }
public virtual void processJsonObject(JSONObject job, HanoiData hd) { for (int i = 0; i < job.keys.Count; i++) { JSONObject val = job.list[i]; switch (job.keys[i]) { case "ln": if (val.IsNumber) { currentLine = (int)val.n; } break; case "cs": if (val.IsNumber) { timeConsuming = val.n; } break; case "lv": if (val.IsNumber) { stackLevel = (int)val.n; if (stackLevel > hd.m_maxStackLevel) { hd.m_maxStackLevel = stackLevel; } } break; case "info": if (val.IsString) { string type = val.str; if (type.Equals("C")) { callType = eHanoiCallType.C; } if (type.Equals("Lua")) { callType = eHanoiCallType.Lua; } } break; case "bt": if (val.IsNumber) { beginTime = val.n; } break; case "et": if (val.IsNumber) { endTime = val.n; } break; case "mod": if (val.IsString) { moduleName = val.str; } break; case "fn": if (val.IsString) { funcName = val.str; } break; case "sub": foreach (JSONObject childJson in val.list) { HanoiNode child = new HanoiNode(this); if (hd.readObject(childJson, child)) { Children.Add(child); } } break; default: // Debug.LogFormat("unknown field: {0}", obj.keys[i]); break; } } }
public ThreadCombineJson(HanoiData hanoiData) { m_data = hanoiData; mThread = new Thread(new ThreadStart(HandleMsgAsyn)); mThread.Start(); }