亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問下老師關于狀態機的代碼

請問下老師關于狀態機的代碼

C#
gongxiaobo 2016-03-07 19:29:18
public void translation(string name) { State target = this.states_[name] as State;//target state if (target == null)//if no target return! { return; } //if current, reset if(target == this.currState_[this.currState_.Count-1]) { target.over(); target.start(); return; }//如果是當前狀態機,從置當前狀態機 State publicState = null; ArrayList stateList = new ArrayList(); State tempState = target; string fatherName = tempState.fatherName; //do loop? while(tempState != null) { //reiterator current list for(var i = this.currState_.Count -1; i >= 0; i--) { State state = this.currState_[i] as State; //if has public? if(state == tempState) { publicState = state; break; } } //end if(publicState != null) { break;} //else push state_list stateList.Insert(0, tempState); //state_list.unshift(temp_state); if(fatherName != "") { tempState = this.states_[fatherName] as State; fatherName = tempState.fatherName; } else { tempState = null; } } //if no public return if (publicState == null){ return; } ArrayList newCurrState = new ArrayList(); bool under = true; //-- 析構狀態 for(int i2 = this.currState_.Count -1; i2>=0; --i2) { State state2 = this.currState_[i2] as State; if(state2 == publicState) { under = false; } if(under){ state2.over(); } else{ newCurrState.Insert(0, state2); } } //-- 構建狀態 for(int i3 = 0; i3 < stateList.Count; ++i3){ State state3 = stateList[i3] as State; state3.start(); newCurrState.Add(state3); } this.currState_ = newCurrState; }我看不懂這段代碼。能提示下嗎?
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 1453 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號