/* In the initial state, both rovers are at the lander. */
at(r1,lander,[]). at(r2,lander,[]).
canTraverse(r1,lander,bigRock22).
Copyright By PowCoder代写 加微信 powcoder
canTraverse(r1,lander,point15).
canTraverse(r1,point15,point9).
canTraverse(r1,point9,lander).
canTraverse(r2,lander,smallRock7).
canTraverse(r2,lander,point9).
canTraverse(r2,point9,bigRock22).
canTraverse(r2,smallRock7,bigRock22).
canTraverse(r2,bigRock22,lander).
equippedFor(r1,soilAnalysis).
equippedFor(r2,rockAnalysis).
availableAt(soilAnalysis,point9).
availableAt(soilAnalysis,point15).
availableAt(rockAnalysis,smallRock7).
availableAt(rockAnalysis,bigRock22).
/* Goal: only 2 rocks are sampled and analysis data sent to the lander. */
goal_state(S) :- hasLander(bigRock22,rockAnalysis,S),
hasLander(smallRock7,rockAnalysis,S).
/* Goal: both 2 rocks and 2 points are sampled and data are received by the lander.
goal_state(S) :- hasLander(bigRock22,rockAnalysis,S),
hasLander(smallRock7,rockAnalysis,S),
hasLander(point9,soilAnalysis,S),
hasLander(point15,soilAnalysis,S).
/* Remove comments above only if you would like to try a more difficult question.
In this challenging question (not required) soil at both points must be analysed
and data must be communicated to the lander in addition to data from rocks. */
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com