Artificial intelligence 什么是游戏AI的好启发?一款猫鼠奶酪游戏的设计
我正在为鼠标和猫设计人工智能。所以他们有HP,猫会追着老鼠吃,老鼠会吃奶酪。这种进食行为将帮助他们获得生命。如果他们不能吃东西,如果他们耗尽所有的生命,他们就会死亡 所以我翻遍了所有的书,我有了一个基本的算法Artificial intelligence 什么是游戏AI的好启发?一款猫鼠奶酪游戏的设计,artificial-intelligence,heuristics,Artificial Intelligence,Heuristics,我正在为鼠标和猫设计人工智能。所以他们有HP,猫会追着老鼠吃,老鼠会吃奶酪。这种进食行为将帮助他们获得生命。如果他们不能吃东西,如果他们耗尽所有的生命,他们就会死亡 所以我翻遍了所有的书,我有了一个基本的算法 def chooseAction(actions, goals): # Go through each action, and calculate the # discontentment. bestAction = actions[0] bestValue = calc
def chooseAction(actions, goals):
# Go through each action, and calculate the
# discontentment.
bestAction = actions[0]
bestValue = calculateDiscontentment(actions[0], goals)
for action in actions:
thisValue = calculateDiscontentment(action, goals)
if thisValue < bestValue:
bestValue = thisValue
bestAction = action
# return the best action
return bestAction
def calculateDiscontentment(action, goals):
# Keep a running total
discontentment = 0
# Loop through each goal
for goal in action:
# Calculate the new value after the action
newValue = goal.value + action.getGoalChange(goal)
# Get the discontentment of this value
discontentment += goal.getDiscontentment(value)
struct Goal:
value
def getDiscontentment(newValue):
return newValue * newValue
def选择操作(操作、目标):
#完成每个动作,并计算
#不满。
bestAction=操作[0]
最佳值=计算内容(操作[0],目标)
行动中的行动:
此值=计算内容(行动、目标)
如果此值<最佳值:
最佳值=此值
最佳行动
#返回最佳动作
返回最佳动作
定义计算内容(行动、目标):
#保持一个连续的总数
不满=0
#循环完成每个目标
关于行动目标:
#计算操作后的新值
newValue=goal.value+action.getGoalChange(目标)
#获取此值的不满
不满+=目标。获取不满(值)
结构目标:
价值
def GetDistancientment(新值):
返回newValue*newValue
这个算法很容易理解,也很容易实现
所以我必须为他们采取的每一个行动确定目标和目标价值
比如说一只老鼠,他可能想移动,吃东西
因此,我必须为这些价值观提出一个价值观(故意)
确定这些值的好方法是什么
我的方法就在这里
Ley说我的鼠标有3个单元格,只能在四个方向上左右移动
目标eat值可能由其最大能量和现在的能量决定,我得出一个公式
eatValue=最大能量-现在能量。这是有道理的,因为它现在的能量等于最大能量,我的老鼠有一个狡猾的0吃
得出这个简单公式的好方法是什么?
我的鼠标移动的好时机是什么?很有趣。你还想提及其他因素吗?猫和老鼠在某种程度上都是群居动物。它们有气味吗?愿景?或者它是一个完全由像素汤姆和像素杰瑞组成的模拟?哈哈,我没有深入到那么深。也许当老鼠的能量达到一定数量时,它们就会繁殖。它们有一定的观点,通常安全是最重要的,除非饥饿,而且应该有一点探索食物的欲望。除此之外,这给了你一个有3个目标(跑、吃、搜索)和4个行动(东北-西南)的结构,在我看来,这在很大程度上取决于世界的哪些方面,主要是决定你期望的行为的因素。这是一个太宽泛的问题-没有约束,“猫”和“鼠标”是未定义的。如果这个项目的目标是玩一玩,那么问题是什么呢。如果有一个有限制的真正目标,现在就仔细思考并澄清。