WumpusWorld游戏程序设计与UML建模Word下载.docx
《WumpusWorld游戏程序设计与UML建模Word下载.docx》由会员分享,可在线阅读,更多相关《WumpusWorld游戏程序设计与UML建模Word下载.docx(7页珍藏版)》请在冰豆网上搜索。
Step进行感知、推理以及动作。
参考清华大学UML教程后认为系统时钟定时器应当作为智能体(Agent)系统的参与者,智能体自身包含进行感知、推理以及动作三个用例,动作包括最基本的朝某个方向移动一步,射击,抓取三种。
见图1-1。
□一一一一一一
Shoot
GrabGold
ForwardOneStep
<
include>
>
<
Think
Evaluate
Look一一一一
□一一一Agent一一一
图1-1智能体系统用例图
除了智能体以外,WumpuEnvironment也是Wumpusworld游戏不可或缺的一部分,它规定了智能体生存和活动的规则,构成了整个游戏的外部框架。
需说明的是实现怪兽随机移动的函数已经实现,但是基于现在的AI算法没有考虑移动的情况。
WumpusWorld一一
InitWumpusWorld
RandomSetPit
RandomSetGold
□一一Agent
UpdateWorld
GetCoordinateFromSerialNum
RandomSetWumpus
CreateTheMapOfSquare
WumpusRandomMove
GetMoveDirection
二:
类图
游戏设计的时候设计了Percept 、Square
、Environment、Agent四个最基本的类,其中Percept、Square作为智能体和环境最基本的底层构成,智能体的大脑里存储了一份空白的Environment地图,在探索过程中不断向这个空白地图里进行推理判断,而智能体推理的来源即是系统环境的Environment。
三:
状态图
智能体是否活着,是否是活动状态作为最基本的四个状态,下面的状态图清楚展示了各种状态之间的切换是在什么情况下发生的。
在实际程序编写的时候,状态图帮助我理清思路。
□一一一一
□一一一
□一一一一一一
□一一一一一
□一一一一一一一一
□一Wumpus一一[一一一]/Shoot
□一一一一一一
□一Wumpus一一[一一一一]
四:
活动图:
游戏开始以后,时钟定时器开始工作,周期1000ms,智能体每到一个新的方格即开始感知,判断是都具有
Breeze、Stench、Glitter等属性,根据感知到的情况评估当前方格相邻的未知位置,赋予相应的值,另一方面还需要根据历史经验评判以前评估过的方格效用值是否需要更新。
智能体会根据安全链表,评估值链表,陷阱链表,怪兽链表来综合考虑下一步的动作,动作之后即时更新新的世界信息以及智能体自身的信息。
活动图对于帮助我在编程过程中理清思路非常重要。
一一一一 一一一一一
□一一一一一
□一一一一一一一一
[一一一一Screaming]
□一一一一一一
[一一一一]
[一一]
□一一一一
一
[一一Screaming]
[一一一一]
□一一一一一一一一
[一一一]
□一一一一
□一一一
一一一一
五:
顺序图
顺序图尚没有完成,或许是自己对于顺序图的理解有问题,根据
Wumpusworld游戏来做顺序图感觉非常别扭,总觉得很多问题没有考虑到,但是自己还是将初步完成的顺序图提交,希望老师指正。
□□□
□一一
□一一一一一一:
□一一一一一一一一一一一一一...
□一一一一...
Look(square,time)
□一一一一一...
Evaluate(square,time)
□一一一一一一一一一...
Think(square一time)
[一一一一一一一]Grab一square,ti...
□一一一...
[一一一一]Shoot一square一ti...
Updateworld()
[一一一一]ForwardOneSt...
□一一一一一一
□一一一一:
一一一一Agent一
□一一一一一一一:
WumpusEnvironment
六:
总结
通过UML建模的课堂学习,在赵老师和同学们的帮助下逐渐完成了关于Wumpusworld游戏的建模,分析了Wumpusworld游戏用例图,类图,状态图,活动图以及它们之间的关系。
在编程过程中发现通过课程讨论建模这个过程后,整体思路上面非常清晰,说明UML对于整个过程是非常有必要,在实现过程中自己也基本完全按照最初设计的思想,甚至逻辑思路就完全按照活动图中的顺序来思考的。
Wumpusworld的整体框架搭起来以后,更多的考虑是在智能体Think中,更加完备更加智能地完成任务。
通过这门课程的学习初步掌握了UML建模的方法,对于一个项目的分析有了一个整体直观的概念,课堂上与老师互动的教学让人印象深刻,并且通过讨论使自己对问题认识深刻。
非常感谢赵老师课堂与课下的热情帮助。