Monster Card Game的设计与实现之框架篇

事实上,Monster Card Game并没有完全实现,或者说并没有完全实现需求分析要求所实现的功能。即使是那些实现的部分,看过一个本科生写的关于Java SE的专栏后,还是感觉自己的程序弱爆了,简直可以称得上是漏洞百出。革命尚未成功,程序仍有待完善啊^-^。但谁又能说这不是一个进步的过程呢?看那些蹒跚学步的小孩,谁又能想到日后的破坏力呢。所以,好的开始总是值得窃喜的,哈哈哈。。。

由于需求不是很明确,再加上时间比较急,所以还没有好好设计好就开始写程序,所以,免不了一次又一次的修改,推倒重来。。。

由于Servlet没怎么学,学过也是在大二的事了,所以,忘得几乎差不多了,由此所导致的在类的设计方面叠床架屋,我滴妈呀,那坨代码不是我写的。。。

总之,通信,多线程,类的继承,共享数据,多态。。。学到的还是不少的。具体的思路就是服务器端和客户端进行命令交互,而整个游戏的逻辑全部由服务器端进行实现,这样就免去了来回穿对象的麻烦事,那样还得对对象进行序列化和反序列化多麻烦,不知道局域网内进行游戏对战是不是就是用的这种逻辑。

服务器端大概有这么几个类:

MonsterCard类:定义卡牌的属性

Deck类:用来生产一堆卡牌,在这个游戏中共40张怪兽卡牌。

Player类:用来定义一个玩家,这个玩家具有40张怪兽卡牌和8000滴血,然后根据玩家的对战情况进行减少卡牌或扣除学的操作。

MyServerReader类:建立一个线程,根据对方玩家发来的的命令来对自己或对方玩家的怪兽卡牌进行操作

MyServerWriter类:建立一个线程,根据自己发出的的命令来对自己或对方玩家的怪兽卡牌进行操作

ServerTest类:负责和客户端进行通信,共享玩家的数据。

客户端只有一个类:

ClientTest类:负责和服务器进行通信,建立两个线程,分别发送和接收客户端发出的命令和接收服务器端发出的命令。

时间: 2024-09-30 10:03:11

Monster Card Game的设计与实现之框架篇的相关文章

Monster Card Game的设计与实现之服务器篇

服务器端大概有这么几个类: MonsterCard类:定义卡牌的属性 Deck类:用来生产一堆卡牌,在这个游戏中共40张怪兽卡牌. Player类:用来定义一个玩家,这个玩家具有40张怪兽卡牌和8000滴血,然后根据玩家的对战情况进行减少卡牌或扣除学的操作. MyServerReader类:建立一个线程,根据对方玩家发来的的命令来对自己或对方玩家的怪兽卡牌进行操作 MyServerWriter类:建立一个线程,根据自己发出的的命令来对自己或对方玩家的怪兽卡牌进行操作 ServerTest类:负责

Monster Card Game的设计与实现之客户端篇

客户端 ClientTest类:负责和服务器进行通信,建立两个线程,分别发送和接收客户端发出的命令和接收服务器端发出的命令. ClientTest3.java package game; import java.io.*; import java.net.*; public class ClientTest3{ public static void main(String[] args){ try{ //链接sever端 Socket s1 = new Socket("127.0.0.1&quo

《新浪微博自动评论软件·设计与实现之UI篇》

任务:编写用户界面 使用Python中的wxPython对界面进行编写工作 预计的按钮有:登录,评论,退出 预计的输入框有:cookie.评论内容.搜索关键字 预计的单选框有:是否使用关键字搜索 首先,看看我们需要的控件都有哪些,按钮(Button).单选按钮(RadioButton).静态文本(StaticText).可编辑文本(TextCtrl),到WxPythonInAction查看对应的文档,要注意到的是,wxPython和之前玩的MFC不一样,不是先设计界面,再编写代码,而是所有控件的

GUI设计9个原则(第二篇)

基本原则4: 设计要符合常见情况 基本原别5: 不要分散用户对他们目标的注意力 基本原则6: 促进学习 4)原则4:设计要符合常见情况 在任何任务领域中,用户都有各种目标,从常用目标到很少发生的目标.应用程序应当设计为能够识别这些目标. 4.1 使得易于实现常用的结果 如果用户的目标是可预测的且常用的,用户就不应为了实现这个目标而必须做很多工作.如果目标是不常见的,则可以要求做更多工作.更正式的说法是: 为了得到一个想要的结果,用户必须要指定的量不应与结果的复杂度成比例.它应当与期望结果偏离常用

设计牛人——设计入门答疑番外篇有感

看了老牛(牛MO王)的U1番外篇问答感慨非常多,事实上自己也算不上入门非常久的大师,只是有时间去整理整理自己在网页设计方面的经验分享给大家是一件非常好的事情,尤其是对一些想做设计或者想在设计方面转行的人,我想应该是非常有帮助的,由于常常遇到这样让人无奈的问题:我是新手,有什么好的建议?从什么方面入手?怎么開始?类似这种问题总让人认为非常难回答,要真说的话有非常多非常多要说的,真要学的话,网络资源如此发达,建议小伙伴们自己去网络寻找,如今有非常多好心人在互联网上发表分享文章,假设你真的有心,就自己

中后台产品的表格设计,看这一篇就够了(原型规范下载)

中后台产品的表格设计,看这一篇就够了(原型规范下载) 2018年4月16日luodonggan 中后台产品的表格设计,看这一篇就够了(原型规范下载) 经过了将近一年的后台产品经历,踩了很多坑,试了很多错,也学习到了很多东西,目前也形成了自己的一套规范.本文将其中的部分收获汇总成文,希望能够对大家有所帮助. 后台产品有一个很重要.常见的元素,就是表格.表格承担着详情入口.数据展示的功能,看似简单,其实里面的细节特别多.在以效率为最重要的需求的后台产品中,如何设计一个能够高效率地进行查看和编辑的表格

设计一个分布式RPC框架

0 前言 提前先祝大家春节快乐!好了,先简单聊聊. 我从事的是大数据开发相关的工作,主要负责的是大数据计算这块的内容.最近Hive集群跑任务总是会出现Thrift连接HS2相关问题,研究了解了下内部原理,突然来了兴趣,就想着自己也实现一个RPC框架,这样可以让自己在设计与实现RPC框架过程中,也能从中了解和解决一些问题,进而让自己能够更好的发展(哈哈,会不会说我有些剑走偏锋?不去解决问题,居然研究RPC.别急,这类问题已经解决了,后续我也会发文章详述的). 1 RPC流水线工程? 原理图上我已经

[JavaScript] JavaScript 面向对象设计 (3) : 多态与界面篇

在前一篇中我们介绍了基础的 JavaScript 继承实践法,透过 Object.prototype 我们可以自由决定对象要继承自哪个对象,也可以扩充对象目前现有的属性和方法 (和 C# 的 Extension Method 有异曲同工之妙),在本篇中,我们要来介绍面向对象的另一个特性:多态 (Polymorphism). 在前一篇中我们介绍了基础的 JavaScript 继承实践法,透过 Object.prototype 我们可以自由决定对象要继承自哪个对象,也可以扩充对象目前现有的属性和方法

ThreadLocal的设计与使用(原理篇)

在jdk1.2推出时开始支持java.lang.ThreadLocal.在J2SE5.0中的声明为: public class ThreadLocal<T> extends Object ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量).也许把它命名为ThreadLocalVar更加合适.线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量