事实上,Monster Card Game并没有完全实现,或者说并没有完全实现需求分析要求所实现的功能。即使是那些实现的部分,看过一个本科生写的关于Java SE的专栏后,还是感觉自己的程序弱爆了,简直可以称得上是漏洞百出。革命尚未成功,程序仍有待完善啊^-^。但谁又能说这不是一个进步的过程呢?看那些蹒跚学步的小孩,谁又能想到日后的破坏力呢。所以,好的开始总是值得窃喜的,哈哈哈。。。
由于需求不是很明确,再加上时间比较急,所以还没有好好设计好就开始写程序,所以,免不了一次又一次的修改,推倒重来。。。
由于Servlet没怎么学,学过也是在大二的事了,所以,忘得几乎差不多了,由此所导致的在类的设计方面叠床架屋,我滴妈呀,那坨代码不是我写的。。。
总之,通信,多线程,类的继承,共享数据,多态。。。学到的还是不少的。具体的思路就是服务器端和客户端进行命令交互,而整个游戏的逻辑全部由服务器端进行实现,这样就免去了来回穿对象的麻烦事,那样还得对对象进行序列化和反序列化多麻烦,不知道局域网内进行游戏对战是不是就是用的这种逻辑。
服务器端大概有这么几个类:
MonsterCard类:定义卡牌的属性
Deck类:用来生产一堆卡牌,在这个游戏中共40张怪兽卡牌。
Player类:用来定义一个玩家,这个玩家具有40张怪兽卡牌和8000滴血,然后根据玩家的对战情况进行减少卡牌或扣除学的操作。
MyServerReader类:建立一个线程,根据对方玩家发来的的命令来对自己或对方玩家的怪兽卡牌进行操作
MyServerWriter类:建立一个线程,根据自己发出的的命令来对自己或对方玩家的怪兽卡牌进行操作
ServerTest类:负责和客户端进行通信,共享玩家的数据。
客户端只有一个类:
ClientTest类:负责和服务器进行通信,建立两个线程,分别发送和接收客户端发出的命令和接收服务器端发出的命令。