亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

應用程序人工智能的實現(xiàn)方法及裝置的制作方法

文檔序號:6584778閱讀:196來源:國知局
專利名稱:應用程序人工智能的實現(xiàn)方法及裝置的制作方法
技術領域
本發(fā)明涉及計算機技術領域,尤其涉及應用程序人工智能的實現(xiàn)方法及裝置。
背景技術
隨著技術的進步,應用程序需要控制產品能夠完成一系列人工智能行為。例如 網絡游戲中非玩家控制的角色需要多種人工智能進行支持,以模擬出更多復雜的智能狀態(tài) 機。為了不斷提高用戶對產品的體驗,人工智能行為需要不斷升級。仍以網絡游戲為 例,現(xiàn)有網絡游戲中人工智能的實現(xiàn)常采用傳統(tǒng)的編程技術,為了使玩家保持對網絡游戲 的興趣,非玩家控制的角色要時常升級人工智能行為,為此,就必須對原有程序進行重新編 譯,對編譯后的程序進行調試,再對調試后的程序進行測試,均無問題后,最后更新服務器 或者客戶端程序。也就是說,現(xiàn)有應用程序人工智能的實現(xiàn)要經過重新編譯、調試以及測試的過程, 因此實現(xiàn)過程復雜,實現(xiàn)成本較高。

發(fā)明內容
有鑒于此,本發(fā)明實施例提供了應用程序人工智能的實現(xiàn)方法及裝置,實現(xiàn)簡單, 節(jié)約成本。一種應用程序人工智能的實現(xiàn)方法,所述方法包括向應用程序注冊至少一個事件觸發(fā)器,并設置分別對應于所述至少一個事件觸發(fā) 器的原狀態(tài),所述原狀態(tài)是一組完成人工智能行為的最小狀態(tài)集合,所述事件觸發(fā)器是一 組觸發(fā)條件及與所述觸發(fā)條件對應的觸發(fā)事件的集合,或一組觸發(fā)事件的集合;所述應用程序觸發(fā)注冊的一個事件觸發(fā)器;當被觸發(fā)的事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入對應于所述被 觸發(fā)的事件觸發(fā)器的原狀態(tài)??蛇x地,在所述人工智能行為進入對應于所述被觸發(fā)的事件觸發(fā)器的原狀態(tài)之 后,所述方法還包括刪除已注冊的所述至少一個事件觸發(fā)器。可選地,在所述向應用程序注冊至少一個事件觸發(fā)器的過程中,所述方法還包 括設置所述人工智能行為下一次移動的坐標。優(yōu)選地,所述原狀態(tài)包括站立狀態(tài)、巡邏狀態(tài)、攻擊狀態(tài)、跟隨狀態(tài)、尋路狀態(tài)或 者防御狀態(tài)。優(yōu)選地,所述事件觸發(fā)器包括目標觸發(fā)器、時間觸發(fā)器、攻擊觸發(fā)器、受傷觸發(fā)器 或者尋路觸發(fā)器。一種應用程序人工智能的實現(xiàn)裝置,所述裝置包括
注冊單元,用于向應用程序注冊至少一個事件觸發(fā)器,所述事件觸發(fā)器是一組觸 發(fā)條件及與所述觸發(fā)條件對應的觸發(fā)事件的集合,或一組觸發(fā)事件的集合;第一設置單元,用于設置分別對應于所述至少一個事件觸發(fā)器的原狀態(tài),所述原 狀態(tài)是一組完成人工智能行為的最小狀態(tài)集合;接受觸發(fā)單元,用于接受所述應用程序的觸發(fā),所述應用程序觸發(fā)了注冊單元注 冊的一個事件觸發(fā)器;執(zhí)行單元,用于執(zhí)行所述應用程序觸發(fā)的一個事件觸發(fā)器的觸發(fā)事件,以使人工 智能行為進入對應于被觸發(fā)的事件觸發(fā)器的原狀態(tài)??蛇x地,所述裝置還包括刪除單元,用于在所述執(zhí)行單元執(zhí)行操作之后,刪除已注冊的所述至少一個事件 觸發(fā)器。可選地,所述裝置還包括第二設置單元,用于在所述注冊單元執(zhí)行操作的過程中,設置所述人工智能行為 下一次移動的坐標。優(yōu)選地,所述第一設置單元包括第三設置子單元,用于設置站立狀態(tài);或者,第四設置子單元,用于設置巡邏狀態(tài);或者,第五設置子單元,用于設置攻擊狀態(tài);或者,第六設置子單元,用于設置跟隨狀態(tài);或者,第七設置子單元,用于設置尋路狀態(tài);或者,第八設置子單元,用于設置防御狀態(tài)。優(yōu)選地,所述注冊單元包括第一注冊子單元,用于向所述應用程序注冊目標觸發(fā)器;或者,第二注冊子單元,用于向所述應用程序注冊時間觸發(fā)器;或者,第三注冊子單元,用于向所述應用程序注冊攻擊觸發(fā)器;或者,第四注冊子單元,用于向所述應用程序注冊受傷觸發(fā)器;或者,第五注冊子單元,用于向所述應用程序注冊尋路觸發(fā)器??梢钥闯?,在本發(fā)明實施例中,通過向應用程序注冊至少一個事件觸發(fā)器,并設置 分別對應于至少一個事件觸發(fā)器的原狀態(tài),應用程序觸發(fā)注冊的一個事件觸發(fā)器以及當被 觸發(fā)的事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入對應于被觸發(fā)的事件觸發(fā)器的原狀態(tài)這些步驟,無需對應用程序進行重新編譯、調試以及測試,就可以實現(xiàn)應用程序的 人工智能,實現(xiàn)簡單,節(jié)約成本。


圖1為本發(fā)明實施例提供的一種應用程序人工智能的實現(xiàn)方法流程圖;圖2為本發(fā)明實施例提供的一種網絡游戲人工智能的實現(xiàn)方法流程圖;圖3為具體實例中護送任務的原狀態(tài)示意圖;圖4為本發(fā)明實施例提供的另一種網絡游戲人工智能的實現(xiàn)方法流程圖;圖5為自動清潔機器人人工智能行為的原狀態(tài)示意圖;圖6為本發(fā)明實施例提供的一種應用程序人工智能的實現(xiàn)裝置結構示意圖;圖7為本發(fā)明實施例提供的另一種網絡游戲人工智能的實現(xiàn)裝置結構示意圖。
具體實施例方式為了使本發(fā)明實施例的上述特征、優(yōu)點更加明顯易懂,下面結合具體實施方式
進 行詳細說明。首先介紹如下幾個概念原狀態(tài)是一組完成人工智能行為的最小狀態(tài)集合,例如站立狀態(tài)、巡邏狀態(tài)、 攻擊狀態(tài)、跟隨狀態(tài)、尋路狀態(tài)以及防御狀態(tài)。事件觸發(fā)器是一組觸發(fā)條件以及與觸發(fā)條件對應的觸發(fā)事件的集合,或者,是一 組觸發(fā)事件的集合,腳本通過接口可以向網絡游戲程序注冊觸發(fā)條件以及觸發(fā)事件,當滿 足腳本注冊的觸發(fā)條件時,網絡游戲程序調用事件觸發(fā)器中定義的觸發(fā)事件。本發(fā)明實施例提供的方法通過腳本與網絡游戲程序的交互實現(xiàn)了網絡游戲的人 工智能。請參考圖1,為本發(fā)明實施例提供的一種應用程序人工智能的實現(xiàn)方法流程圖,可 以包括以下步驟步驟101 :向應用程序注冊至少一個事件觸發(fā)器,并設置分別對應于所述至少一 個事件觸發(fā)器的原狀態(tài),所述原狀態(tài)是一組完成人工智能行為的最小狀態(tài)集合,所述事件 觸發(fā)器是一組觸發(fā)條件及與所述觸發(fā)條件對應的觸發(fā)事件的集合,或一組觸發(fā)事件的集 合;步驟102 所述應用程序觸發(fā)注冊的一個事件觸發(fā)器;步驟103 當被觸發(fā)的事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入對 應于所述被觸發(fā)的事件觸發(fā)器的原狀態(tài)??梢钥闯觯诒景l(fā)明實施例中,通過向應用程序注冊至少一個事件觸發(fā)器,并設置 分別對應于至少一個事件觸發(fā)器的原狀態(tài),應用程序觸發(fā)注冊的一個事件觸發(fā)器以及當被 觸發(fā)的事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入對應于被觸發(fā)的事件觸發(fā)器 的原狀態(tài)這些步驟,無需對應用程序進行重新編譯、調試以及測試,就可以實現(xiàn)應用程序的 人工智能,實現(xiàn)簡單,節(jié)約成本。本發(fā)明實施例提供的方法可以應用于網絡游戲程序,還可以應用于自動清潔機器 人。下面結合一個實施例先對網絡游戲程序進行說明,在該實施例中,假設網絡游戲程序中人工智能行為的原狀態(tài)包括第一原狀態(tài)、第二原狀態(tài)以及第三原狀態(tài)。請參考圖2,為本發(fā)明實施例提供的一種網絡游戲人工智能的實現(xiàn)方法流程圖,可 以包括以下步驟步驟201 腳本向應用程序注冊第一事件觸發(fā)器,并設置在第一事件觸發(fā)器的觸 發(fā)事件結束后,人工智能行為的原狀態(tài)為第一原狀態(tài);步驟202 應用程序觸發(fā)第一事件觸發(fā)器;步驟203 第一事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入第一原狀 態(tài);步驟204:腳本向應用程序注冊第二事件觸發(fā)器,并設置在第二事件觸發(fā)器的觸 發(fā)事件結束后,人工智能行為的原狀態(tài)為第二原狀態(tài);步驟205 應用程序觸發(fā)第二事件觸發(fā)器;步驟206 第二事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入第二原狀 態(tài);步驟207 腳本向應用程序注冊第三事件觸發(fā)器,并設置在第三事件觸發(fā)器的觸 發(fā)事件結束后,人工智能行為的原狀態(tài)為第三原狀態(tài);步驟208 應用程序觸發(fā)第三事件觸發(fā)器;步驟209 第三事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入第三原狀 態(tài)。通過步驟201至步驟209,人工智能行為完成了由第一原狀態(tài)向第三原狀態(tài)的遷移。下面以一個具體實例對本發(fā)明實施例進行詳細說明。在具體實例中,人工智能行 為是一次護送任務,在這次護送任務中,有一個具備人工智能的Npc :A,玩家需要將Npc =A 從地圖的一點PO護送到另一點P1。玩家獲取這次護送任務后,Npc =A將會對玩家說一句 話,然后開始沿著指定路線移動到Pl。途中玩家必須一直在Npc :A附近,Npc :A會隨機與 玩家聊天。如果途中有怪物攻擊Npc :A, Npc =A要向玩家求救,并主動反擊怪物,直至消滅 怪物。請參考圖3,為具體實例中護送任務的原狀態(tài)示意圖。其中,301為站立狀態(tài),302 為尋路狀態(tài),303為防御狀態(tài)。Sl表示Npc =A開始進入站立狀態(tài),S2表示Npc =A從站立狀 態(tài)遷移至尋路狀態(tài),S3表示Npc =A仍然處于尋路狀態(tài),S4表示Npc =A從尋路狀態(tài)遷移至防 御狀態(tài),S5表示從防御狀態(tài)遷移至尋路狀態(tài),S6表示Npc =A仍然處于防御狀態(tài)。當Npc :A處于尋路狀態(tài)時,若Npc :A受到了攻擊,Npc :A遷移至防御狀態(tài),若Npc A未受到攻擊,Npc :A仍然處于尋路狀態(tài),繼續(xù)移動位置。當Npc :A處于防御狀態(tài)時,若不 再受到攻擊,Npc =A遷移至尋路狀態(tài),繼續(xù)移動位置,若仍然受到攻擊,Npc :A仍然處于防御 狀態(tài)。請參考圖4,為本發(fā)明實施例提供的另一種網絡游戲人工智能的實現(xiàn)方法流程圖, 可以包括以下步驟步驟401 腳本向網絡游戲程序注冊初始事件觸發(fā)器,并設置在初始觸發(fā)事件結 束后,護送任務的原狀態(tài)為站立狀態(tài);初始事件觸發(fā)器的初始觸發(fā)條件是延時1秒鐘,初始觸發(fā)事件是Npc =A向玩家說一句話。在具體實例中,Npc =A向玩家說的話是“我們出發(fā)吧。”。步驟402 網絡游戲程序觸發(fā)腳本注冊的初始事件觸發(fā)器;初始事件觸發(fā)器被觸發(fā)后,Npc :A將在1秒鐘后在計算機顯示屏上向玩家提示“我 們出發(fā)吧。”。步驟403 初始觸發(fā)事件執(zhí)行結束后,Npc =A進入站立狀態(tài);步驟404 腳本向網絡游戲程序注冊一個尋路觸發(fā)器以及一個被怪物攻擊的觸發(fā) 器;若網絡游戲程序觸發(fā)尋路觸發(fā)器,護送任務的原狀態(tài)為尋路狀態(tài),若網絡游戲程 序觸發(fā)被怪物攻擊的觸發(fā)器,護送任務的原狀態(tài)為防御狀態(tài)。步驟405 網絡游戲程序觸發(fā)尋路觸發(fā)器的觸發(fā)事件;步驟406 當步驟405中的觸發(fā)事件執(zhí)行結束后,Npc =A進入尋路狀態(tài);Npc :A在尋路狀態(tài)中,將按照腳本在注冊尋路觸發(fā)器時設置的坐標進行尋路。 Npc =A在尋路過程中完成位置切換,并與玩家隨機說一些話。步驟407 腳本刪除已注冊的尋路觸發(fā)器,重新注冊一個尋路觸發(fā)器,并設置在重 新注冊的尋路觸發(fā)器的觸發(fā)事件結束后,護送任務的原狀態(tài)仍然為尋路狀態(tài);步驟408 網絡游戲程序觸發(fā)重新注冊的尋路觸發(fā)器的觸發(fā)事件;步驟409 重新注冊的尋路觸發(fā)器的觸發(fā)事件執(zhí)行結束后,Npc =A仍然保持尋路狀 態(tài);此時,Npc =A將會按照腳本在重新注冊尋路觸發(fā)器時設置的坐標進行尋路。步驟410 腳本刪除已注冊的所有觸發(fā)器,向網絡游戲程序注冊一個時間觸發(fā)器 以及一個被怪物攻擊的觸發(fā)器;若網絡游戲程序觸發(fā)時間觸發(fā)器,時間觸發(fā)器的觸發(fā)事件是每5秒鐘檢查一次是 否受到攻擊,若是,進入步驟411,否則,返回步驟404。若網絡游戲程序觸發(fā)被怪物攻擊的觸發(fā)器,護送任務的原狀態(tài)為防御狀態(tài),進入 步驟411。步驟411 =Npc =A進入防御狀態(tài);步驟412 腳本刪除已注冊的觸發(fā)器,向網絡游戲程序注冊一個新的尋路觸發(fā)器 以及一個被怪物攻擊的觸發(fā)器;若網絡游戲程序觸發(fā)尋路觸發(fā)器,護送任務的原狀態(tài)為尋路狀態(tài),返回步驟405。 若網絡游戲程序觸發(fā)被怪物攻擊的觸發(fā)器,護送任務的原狀態(tài)為防御狀態(tài),返回步驟411。需要指出的是,在上述具體實例中,一旦Npc :A尋路后移動到了位置P1,上述過程 將會結束,腳本退出代碼空間,從而完成了整個人工智能的護送任務。下面給出一個上述具體實例的Lua腳本具體實例。function AIStart()
Clear AICondition(-1,-1 )-刪除已注冊的所有觸發(fā)器 SetGuardLevel( AiNpcIdx, 2)--設置當前 Npc 為無敵狀態(tài) SetTimeCondition(AI ACT TIME PERIOD, "eventBirthTalk", 1 ) 一設置 1 秒
延時觸發(fā)器
SetAIState( AI STATE NONE )-設置當前狀態(tài)為站立
end
function eventBirthTalk() Clear AICondition(-1,-1 ) PlayerIndex = checkGuardPlayer() if ( PlayerIndex > 0 ) then
NpcSay( AiNpcIdx, GetName().·"我們出發(fā)吧?!?-Npc 對玩家 說話activateplayer(Playerlndex)
local nWorldld, nX, nY = GetNpcWorldPos( AiNpcIdx ) local nNpcType = GetNpcTask( AiNpcIdx, 1 ) SetGuardLevel( AiNpcIdx, 0 )-取消 Npc 的無敵狀態(tài) SetNpcTask( AiNpcIdx, 2, 0 )
--設置尋路觸發(fā)器
SetRouteCondition( AI ACT ROUTE DES, "eventAckStatelnWorldld, NPC—ROUTE—POS[nNpcType][ 1 ].x*32,NPC ROUTE POS[nNpcType][l].y*32, 1)
--設置被其他Npc攻擊的觸發(fā)器
SetAttackCondition(AI_ACT_ATTACK_NPC,
"eventFreeMonsterAttack")
SetAIState( AI_STATE_ROUTE )-設置當前狀態(tài)為尋路狀態(tài)
else
SetAIState( AI_STATE—NONE)
end
end
function eventAckState 1 (step)
PlayerIndex = checkGuardPlayer() if ( PlayerIndex > O ) then
local nNpcType = GetNpcTask( AiNpcIdx, 1 )
if ( step < getn(NPC_ROUTE_POS [nNpcType]) ) then -判斷還沒有走到
最終點
ClearAICondition( AI_CONDITION_ROUTE, -1 )-刪除原有尋路條

local nRank = random( 1, 100 )
if ( nRank <= 50 ) then —隨機說一句話nRank = random( 1’ getn(NPC—FREE—SAY)) NpcSay( AiNpcIdx5 NPC FREE SAY[nRank])
end
activateplayer(Playerlndex)
local nWorldld, nX, nY = GetNpcWorldPos( AiNpcIdx) SetNpcTask( AiNpcIdx, 2, step )
--設置尋路觸發(fā)器
SetRouteCondition( AI_ACT_ROUTE_DES, " event AckState 1", nWorldld,NPC—ROUTE POS[nNpcType][step+l].x*32,
NPC_ROUTE_POS[nNpcType][step + l].y*32, step + 1 )
SetAIState( AI_STATE_ROUTE ) -設置當前狀態(tài)為尋路狀態(tài) else-判斷走到了最終點 ClearAICondition(-1, -1 )
--對玩家說感謝的話
NpcSay( AiNpcIdx,"過了 這座橋我就安全了 "..GetName().."謝謝你!
“)
awardPlayer( PlayerIndex)
--設置10秒鐘后消失的觸發(fā)器
SetTimeCondition( AI ACT TIME PERIOD, "eventResetNpc", 10 ) SetAIState( AI—STATE—NONE ) -設置當前狀態(tài)為站立狀態(tài)
end
else
SetAIState( AI STATE NONE )
end
_. 6 d O η⑴ efunction eventFreeMonsterAttack()
ClearAICondition(-1, -1 )-刪除所有觸發(fā)器 PlayerIndex = checkGuardPlayer() if (PlayerIndex > 0 ) then
NpcSay( AiNpcIdx, GetName().·"救命啊,我要反擊!“)-向玩家求救 activateplayer(Playerlndex)
--設置了時間觸發(fā)器,每5秒檢查是否任然受到攻擊 SetTimeCondition(AI_ACT_TIME_PERIOD,
"eventCheckFreeMonsterAttack", 5 )
-設置了一個被怪物攻擊的觸發(fā)器
SetAttackCondition(AI_ACT_ATTACK_NPC,
"eventFreeMonsterAttackRefresh")
_-SetTargetCondition( Al—TARGET—LOSE—PLAYER, "eventLostTarget") local nWorldld, nX, nY = GetNpcWorldPos( AiNpcIdx ) SetNpcOriPos( AiNpcIdx, nX, nY )
SetAIState( AI_STATE_DEFEND )-設置當前狀態(tài)為防御狀態(tài)
else
SetAIState( AI STATE NONE)
end
end
function eventCheckFreeMonsterAttack() ClearAICondition(-1, -1 ) PlayerIndex = checkGuardPlayer() if (PlayerIndex > 0 ) then
NpcSay(AiNpcIdx, ’1 終于安全了,”..GetName().."我得救了!“) activateplayer(Playerlndex)local nWorldld, nX, nY = GetNpcWorldPos( AiNpcIdx) local nNpcType = GetNpcTask( AiNpcIdx, 1 ) local step = GetNpcTask( AiNpcIdx, 2 )
SetRouteCondition( AI ACT ROUTE DES, "eventAckStatelnWorldld, NPC_ROUTE_POS [nNpcType] [step+l].x*32,
NPC_ROUTE_POS[nNpcType][step + l].y*32,step + 1 )
SetAttackCondition(Al—ACT_ATTACK_NPC,
"eventFreeMonsterAttack")
SetAIState( Al—STATE_ROUTE)
else
SetAIState( AI_STATE_NONE)
end
end
function eventFreeMonsterAttackRefresh() ClearAICondition(-1,-1 ) PlayerIndex = checkGuardPlayer() if ( PlayerIndex > 0 ) then
NpcSay( AiNpcIdx, GetName().."還在攻擊我! ’’)-Npc 向玩家求救
--設置5秒延時時間觸發(fā)器
SetTimeCondition(AIACTTIMEPERIOD,
"eventCheckFreeMonsterAttack", 5 )
-設置被攻擊觸發(fā)器
SetAttackCondition(Al—ACT—ATTACK—NPC,
"eventFreeMonsterAttackRefresh")
SetAIState( AI STATE DEFEND)
else
SetAIState( AI_STATE_NONE)
end
end 在上述Lua腳本具體實例中,原狀態(tài)可以包括AI__STATE__N0NE = 0--站立狀態(tài)
AI__STATE__FREE = 1--巡邏狀態(tài)
AI__STATE_,ATTACK =2—攻擊狀態(tài)
AI__STATE__FELL0ff =3—跟隨狀態(tài)
AI__STATE__R0UTE = ^t —尋路狀態(tài)
AI__STATE_,DEFEND =5—防御狀態(tài)其中,站立狀態(tài)、巡邏狀態(tài)、攻擊狀態(tài)、跟隨狀態(tài)以及尋路狀態(tài)設置的方式與上代 碼中的SetAIState (AI_STATE_DEFEND)相同,不再贅述。注冊的事件觸發(fā)器可以包括目標觸發(fā)器、時間觸發(fā)器、攻擊觸發(fā)器、受傷觸發(fā)器 或者尋路觸發(fā)器。其中,注冊的觸發(fā)條件分別為目標觸發(fā)條件、時間觸發(fā)條件、攻擊觸發(fā)條 件、受傷觸發(fā)條件以及尋路觸發(fā)條件。在Lua腳本語言的具體實例中,各觸發(fā)條件的實現(xiàn)如
__Param2 :PlayerID (0 any) —NoParam
__Param2 :PlayerID(0:any)Param3 :Distance
—Param2 :Year Param3 :Month :Minte Param7 :Second ——Param2 :Second

(1)目標觸發(fā)條件
AI-TARGET_FIND-PLAYER ==0
AI_TARGET_L0SE_PLAYER ==1
AI_TARGET_NEAR_PLAYER ==2
(2)時間觸發(fā)條件
AI_ACT_TIME_P0INT = 0
Param4 :Day Param5 :HourParam6
AI_ACT_TIME_PERI0D = 1
(3)攻擊觸發(fā)條件
AI_ACT_ATTACK_PLAYER =0
AI_ACT_ATTACK_NPC = 1
(4)受傷觸發(fā)條件
AI_ACT_DAMAGE_VALUE_PLAYER = 0
__Param2 :PlayerID(0:any) ——NoParam
value)Param3 :PlayerID(O:any)Al—ACT—DAMAGE—LOW—BLOOD—PLAYER = 1 —Param2 :LifeValue (must low this value) Param3 :PlayerID (O:any)(5)尋路觸發(fā)條件Al—ACT_R0UTE—DES = O —Param2 :WorldID Param3 :WorldPosX Param4 WorldPosY Param5 :FeedBackParam其中,目標觸發(fā)條件、攻擊觸發(fā)條件、受傷觸發(fā)條件以及尋路觸發(fā)條件的注冊與上 述代碼中 SetTimeCondition (AI_ACT_TIME_PERI0D,“ eventCheckFreeMonsterAttack", 5)相同,不再贅述。
需要指出的是,本發(fā)明實施例可以使用的腳本語言還可以是python或者java。應 用程序除了網絡游戲之外,還可以是自動清潔機器人的應用程序。此時,其人工智能行為的 原狀態(tài)可以包括充電狀態(tài)、移動清潔狀態(tài)以及卸載垃圾狀態(tài)。請參考圖5,為自動清潔機 器人人工智能行為的原狀態(tài)示意圖。其中,501為充電狀態(tài),502為移動清潔狀態(tài),503為卸 載狀態(tài)??梢钥闯?,在本發(fā)明實施例中,通過向網絡游戲程序注冊至少一個事件觸發(fā)器,并 設置分別對應于至少一個事件觸發(fā)器的原狀態(tài),網絡游戲程序觸發(fā)注冊的一個事件觸發(fā)器 以及當被觸發(fā)的事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入對應于被觸發(fā)的事 件觸發(fā)器的原狀態(tài)這些步驟,無需對網絡游戲程序進行重新編譯、調試以及測試,就可以實 現(xiàn)網絡游戲的人工智能,實現(xiàn)簡單,節(jié)約成本。此外,本發(fā)明實施例提供的方法可以在各種應用程序上實現(xiàn)復雜的人工智能行 為,實現(xiàn)靈活,同時兼顧了應用程序的運行效率,可擴展,易用性強,易于維護。請參考圖6,為本發(fā)明實施例提供的一種應用程序人工智能的實現(xiàn)裝置結構示意 圖,可以包括注冊單元601,用于向應用程序注冊至少一個事件觸發(fā)器,所述事件觸發(fā)器是一組 觸發(fā)條件及與所述觸發(fā)條件對應的觸發(fā)事件的集合,或一組觸發(fā)事件的集合;第一設置單元602,用于設置分別對應于所述至少一個事件觸發(fā)器的原狀態(tài),所述 原狀態(tài)是一組完成人工智能行為的最小狀態(tài)集合;接受觸發(fā)單元603,用于接受所述應用程序的觸發(fā),所述應用程序觸發(fā)了注冊單元 注冊的一個事件觸發(fā)器;執(zhí)行單元604,用于執(zhí)行所述應用程序觸發(fā)的一個事件觸發(fā)器的觸發(fā)事件,以使人 工智能行為進入對應于被觸發(fā)的事件觸發(fā)器的原狀態(tài)??梢钥闯觯诒景l(fā)明實施例中,通過注冊單元601、第一設置單元602、接受觸發(fā)單 元603以及執(zhí)行單元604執(zhí)行的操作,無需對應用程序進行重新編譯、調試以及測試,就可 以實現(xiàn)應用程序的人工智能,實現(xiàn)簡單,節(jié)約成本。請參考圖7,為本發(fā)明實施例提供的另一種網絡游戲人工智能的實現(xiàn)裝置結構示 意圖,在圖6的基礎上,還可以包括刪除單元701,用于在所述執(zhí)行單元604執(zhí)行操作之后,刪除已注冊的所述至少一 個事件觸發(fā)器。第二設置單元702,用于在所述注冊單元601執(zhí)行操作的過程中,設置所述人工智 能行為下一次移動的坐標。所述第一設置單元602可以包括第三設置子單元602-1,用于設置站立狀態(tài);或者,第四設置子單元602-2,用于設置巡邏狀態(tài);或者,第五設置子單元602-3,用于設置攻擊狀態(tài);或者,第六設置子單元602-4,用于設置跟隨狀態(tài);
或者,第七設置子單元602-5,用于設置尋路狀態(tài);或者,第八設置子單元602-6,用于設置防御狀態(tài)。所述注冊單元601可以包括第一注冊子單元601-1,用于向所述應用程序注冊目標觸發(fā)器;或者,第二注冊子單元601-2,用于向所述應用程序注冊時間觸發(fā)器;或者,第三注冊子單元601-3,用于向所述應用程序注冊攻擊觸發(fā)器;或者,第四注冊子單元601-4,用于向所述應用程序注冊受傷觸發(fā)器;或者,第五注冊子單元601-5,用于向所述應用程序注冊尋路觸發(fā)器??梢钥闯觯诒景l(fā)明實施例中,通過向應用程序注冊至少一個事件觸發(fā)器,并設置 分別對應于至少一個事件觸發(fā)器的原狀態(tài),應用程序觸發(fā)注冊的一個事件觸發(fā)器以及當被 觸發(fā)的事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入對應于被觸發(fā)的事件觸發(fā)器 的原狀態(tài)這些步驟,無需對應用程序進行重新編譯、調試以及測試,就可以實現(xiàn)應用程序的 人工智能,實現(xiàn)簡單,節(jié)約成本。此外,本發(fā)明實施例提供的方法可以在各種應用程序上實現(xiàn)復雜的人工智能行 為,實現(xiàn)靈活,同時兼顧了應用程序的運行效率,可擴展,易用性強,易于維護。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將 一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作 之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體 意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括 那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或
者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......,”限定的要素,
并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發(fā)明可借 助軟件加必需的硬件平臺的方式來實現(xiàn),當然也可以全部通過硬件來實施,但很多情況下 前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案對背景技術做出貢獻的全部 或者部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品可以存儲在存儲介質中,如 ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務 器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。以上對本發(fā)明進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方 式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對 于本領域的一般技術人員,依據本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變 之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
權利要求
1.一種應用程序人工智能的實現(xiàn)方法,其特征在于,所述方法包括向應用程序注冊至少一個事件觸發(fā)器,并設置分別對應于所述至少一個事件觸發(fā)器的 原狀態(tài),所述原狀態(tài)是一組完成人工智能行為的最小狀態(tài)集合,所述事件觸發(fā)器是一組觸 發(fā)條件及與所述觸發(fā)條件對應的觸發(fā)事件的集合,或一組觸發(fā)事件的集合;所述應用程序觸發(fā)注冊的一個事件觸發(fā)器;當被觸發(fā)的事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入對應于所述被觸發(fā) 的事件觸發(fā)器的原狀態(tài)。
2.根據權利要求1所述的方法,其特征在于,在所述人工智能行為進入對應于所述被 觸發(fā)的事件觸發(fā)器的原狀態(tài)之后,所述方法還包括刪除已注冊的所述至少一個事件觸發(fā)器。
3.根據權利要求1所述的方法,其特征在于,在所述向應用程序注冊至少一個事件觸 發(fā)器的過程中,所述方法還包括設置所述人工智能行為下一次移動的坐標。
4.根據權利要求1所述的方法,其特征在于,所述原狀態(tài)包括站立狀態(tài)、巡邏狀態(tài)、攻 擊狀態(tài)、跟隨狀態(tài)、尋路狀態(tài)或者防御狀態(tài)。
5.根據權利要求1所述的方法,其特征在于,所述事件觸發(fā)器包括目標觸發(fā)器、時間 觸發(fā)器、攻擊觸發(fā)器、受傷觸發(fā)器或者尋路觸發(fā)器。
6.一種應用程序人工智能的實現(xiàn)裝置,其特征在于,所述裝置包括注冊單元,用于向應用程序注冊至少一個事件觸發(fā)器,所述事件觸發(fā)器是一組觸發(fā)條 件及與所述觸發(fā)條件對應的觸發(fā)事件的集合,或一組觸發(fā)事件的集合;第一設置單元,用于設置分別對應于所述至少一個事件觸發(fā)器的原狀態(tài),所述原狀態(tài) 是一組完成人工智能行為的最小狀態(tài)集合;接受觸發(fā)單元,用于接受所述應用程序的觸發(fā),所述應用程序觸發(fā)了注冊單元注冊的 一個事件觸發(fā)器;執(zhí)行單元,用于執(zhí)行所述應用程序觸發(fā)的一個事件觸發(fā)器的觸發(fā)事件,以使人工智能 行為進入對應于被觸發(fā)的事件觸發(fā)器的原狀態(tài)。
7.根據權利要求6所述的裝置,其特征在于,所述裝置還包括刪除單元,用于在所述執(zhí)行單元執(zhí)行操作之后,刪除已注冊的所述至少一個事件觸發(fā)器。
8.根據權利要求6所述的裝置,其特征在于,所述裝置還包括第二設置單元,用于在所述注冊單元執(zhí)行操作的過程中,設置所述人工智能行為下一 次移動的坐標。
9.根據權利要求6所述的裝置,其特征在于,所述第一設置單元包括第三設置子單元,用于設置站立狀態(tài);或者,第四設置子單元,用于設置巡邏狀態(tài);或者,第五設置子單元,用于設置攻擊狀態(tài);或者,第六設置子單元,用于設置跟隨狀態(tài); 或者,第七設置子單元,用于設置尋路狀態(tài); 或者,第八設置子單元,用于設置防御狀態(tài)。
10.根據權利要求6所述的裝置,其特征在于,所述注冊單元包括 第一注冊子單元,用于向所述應用程序注冊目標觸發(fā)器; 或者,第二注冊子單元,用于向所述應用程序注冊時間觸發(fā)器; 或者,第三注冊子單元,用于向所述應用程序注冊攻擊觸發(fā)器; 或者,第四注冊子單元,用于向所述應用程序注冊受傷觸發(fā)器; 或者,第五注冊子單元,用于向所述應用程序注冊尋路觸發(fā)器。
全文摘要
本發(fā)明公開了應用程序人工智能的實現(xiàn)方法及裝置,所述方法包括向應用程序注冊至少一個事件觸發(fā)器,并設置分別對應于所述至少一個事件觸發(fā)器的原狀態(tài),所述原狀態(tài)是一組完成人工智能行為的最小狀態(tài)集合,所述事件觸發(fā)器是一組觸發(fā)條件及與所述觸發(fā)條件對應的觸發(fā)事件的集合,或一組觸發(fā)事件的集合;所述應用程序觸發(fā)注冊的一個事件觸發(fā)器;當被觸發(fā)的事件觸發(fā)器的觸發(fā)事件執(zhí)行結束后,人工智能行為進入對應于所述被觸發(fā)的事件觸發(fā)器的原狀態(tài)。本發(fā)明實現(xiàn)簡單,節(jié)約成本。
文檔編號G06F9/44GK102073487SQ20091023870
公開日2011年5月25日 申請日期2009年11月20日 優(yōu)先權日2009年11月20日
發(fā)明者馬亦寧 申請人:北京金山數字娛樂科技有限公司, 北京金山軟件有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1