`
xiaoluobo6666
  • 浏览: 13775 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论

Java山寨三国杀小结

阅读更多

前言:

为什么要发表? 不发表就没有留存, 没有留存就没有记忆,没有记忆就没有历史,没有历史就没有存在,没有存在就没有意义!

                                                                                                     ---胡老师

还是得要经常写日志啊。。。。。为了我们存在的意义。。。。

 

*************************************我是正文的分界线************************

 

                                          通讯项目总结

                                                          ---残缺的三国杀

     寒假宅男的生活匆匆而过,或多或少是受到这种悠闲生活的影响,在通讯阶段的这个项目的完成度并不是很高。对于质量,咳咳,质的话咱还是尽了力想办法提高了的,量的话。。。还是得要更尽力啊。总之,废话少说,总结一下这个只能实现杀和闪过程的残缺三国杀。

 

 

一.项目简介:

     简易三国杀项目。目前仅实现杀和闪的游戏过程,且游戏过程中,客户端没有实现人性化的应答提示。仍需不断补充与改进。

 

等待游戏界面:

 
游戏进行界面:

 
 

 

二.新的技术点:

     1.背景界面

        在swing中的JFrame看上去是一个界面,其实,它是由许多层的LayeredPane组成,而我们平时在使用的只是ContentPane。在制作界面时,为了实现背景界面的显示,我们要做的就是将ContentPane设为不可见,然后在不同层的LayeredPane上添加我们想要的组件。然后,不同层次的界面自然就形成了层层叠叠的样子。

      具体到代码:

                                this.jf = new javax.swing.JFrame("52杀");
		jf.setSize(1000, 650);
		jf.setDefaultCloseOperation(3);
		jf.setLocationRelativeTo(null);
		jf.setVisible(true);			//将这个界面设置为可见
		jf.getContentPane().setVisible(false);	//得到这个界面的ContentPane,然后将其设置为不可见
		

 

jf.getLayeredPane().add(jl_back,new Integer(-100));	//得到在这个界面的LayeredPane,然后在第-100层上添加背景
jf.getLayeredPane().add(jsp_msg,new Integer(-50));	//同上,不过是在第-50层添加组件,因此在背景上面
jf.getLayeredPane().add(jb_yes,new Integer(-50));

 

技术上咱确实没用到什么的东西,是日子过得有点悠闲怠惰了吧。。。

 

 

三.思考与经验:

1.逻辑与事件

      1.1.从逻辑上实现游戏的过程
            在QQ中,服务器处理客户机发送来的信息时,其处理过程是顺序的、固定的。
            而在三国杀的游戏过程中,这种可能发生的情况是有限的情形并不十分常见。固然在游戏进行时,玩家的能做出的选择是有限的,但是,一个扩展性好的游戏应该能够具有给予无限可能的机会。具体到三国杀游戏本身,则表现为卡牌的可扩展性,游戏中技能使用的不确定性。恩,比如说,在游戏中某个武将使用杀时,是掉两点血量呢,还是要出两张闪才能闪开呢?在这个武将被确定前,这个使用杀的过程是永远不确定的。
            因此,将游戏抽象出合理的逻辑过程,是构建整个游戏的第一步。

     1.2.逻辑上事件的概念

            事件这个概念在编程中十分的普遍。Java中监听器的实现,C++中的消息循环的监听,某种意义上就是不断接收用户产生事件的过程。
            而在游戏中,如果将客户机发送来的一条条消息抽象成一个个事件类,然后就可以根据这个事件类的类型的不同而分别做出相应的处理。可以说,这个游戏的本质就是一个不断处理事件的过程,而玩家所要做的就是做出不同的事件选择。这样的话,固然玩家能做出的事件是不确定的,可是,只要有对应的事件处理方法,就能够实现游戏的过程。

            这种事件的模式,不仅可以使用在游戏中,在其他类型的程序中参数的传递都可以使用这种模式,大大的提高效率。

2.接口是个好东西

     2.1.接口的封装

            某种意义上,一个类实际上就是一堆方法的集合体,即接口。
            合理的利用接口的封装特性可以大大的降低不同类之间的耦合性。不管某个接口是如何实现的,只要它能实现这个接口,就算完成了任务。

            比如当我们想显示一个游戏界面时。不管我们是想要用表格,还是想要用标签,抑或用按钮来显示卡牌信息,只要留下了相应的显示信息接口,那么这个显示卡牌信息的游戏界面类从本质上就没有变。又或者验证登陆信息,不管用户信息是从数据库中读取还是直接从文件中读取,只要验证的接口没变,就不影响整个工程的架构。
           而我们所要做的,只是将List list = new ArratList()改为
 List list = new LinkedList()而已。

     2.2.接口的多态

           接口将实现的方法封装进类内部,而不同的实现方法又可以构成接口的多态。接口的多态在需要对某一事件做出不同处理时非常有用。比如对于一个相同的事件,不同的武将有不同的技能应答,这时,利用多态实现不同的技能接口是一个很有效的手段。

           而将游戏过程抽象化为事件,然后将事件作为参数传递给封装的接口处理,而不同的事件在不同的情况下调用多态的接口。这是我在完成这个项目时对于整个结构上的最直观的感受。

           总的来说,在看了设计模式以后,越来越感觉到接口的重要了。在这个项目时,将事件处理类与界面类分开,分别留下相应的接口,两者相互调用,相互关联,结构上立马就清晰了很多。恩,后来又听说了有种模型叫MVC,我想,这和那个可能有相似之处吧,不过对于那个C现在还是有些不太理解。

四.感受与收获:

      1.工欲善其事必先利其器

           在起初规划这个项目时,我是对接口没有太大的感触的。只是在印象中封装和多态是oop的两大特点,于是可想而知,整个程序对于封装和多态那是毫无关联。然后在稀里糊涂的写了一大堆东西以后,听说了个神马设计模式。恩,在看了两天那东西以后,真是产生了一种醍醐灌顶,五气朝元,脱胎换骨,白日飞升的感觉。恍然大悟啊恍然大悟,原来以前我写的那都是废品啊。所以说,工欲善其事必先利其器。写代码前,先用大脑思考才是最重要的,结构啊,关联啊,事件啊,尽管肯定思考不全,不过却一定要尽量全的思考。

            当然,利其器是为了更好的善其事。实践到手上才是王道。

     2.眼界一定要宽,要宽啊

            不知道并不可怕,可怕的是,不知道自己不知道什么。在做这个项目时,我把所有的类全都写到了一个包的下面,然后,本来许多类之间的关系都是规划的很好的,结果最后,因为类太多了,我看得都是一阵阵的莫名其妙。

            其实,只要我看过峰哥的项目,或者其他一些比较成熟的项目,就不会犯这么低级的错误。将不同作用的类写在不同的包下,这样多好,一目了然。我们一定要多交流啊,一定要放宽眼界。。。。不知道不知道,所以,要努力去知道。

 

 

 

  • 大小: 1.2 MB
  • 大小: 1022.5 KB
分享到:
评论
2 楼 freewxy 2011-02-23  
“不发表就没有留存, 没有留存就没有记忆,没有记忆就没有历史,没有历史就没有存在,没有存在就没有意义!”!

1 楼 贾懂凯 2011-02-23  
有想法

相关推荐

    JAVA山寨版聊天源代码

    **JAVA山寨版聊天源代码详解** 在JAVA编程领域,网络编程是不可或缺的一部分,尤其是在开发实时交互的应用程序,如聊天软件时。"JAVA山寨版聊天源代码"是一个学习和理解JAVA网络编程的好资源,它提供了从基础到进阶...

    java山寨版qq项目

    【Java山寨版QQ项目】是韩顺平老师为了教学目的设计的一个模拟QQ功能的应用程序,旨在帮助初学者理解和掌握Java编程语言以及相关的软件开发技术。这个项目提供了从基础到进阶的Java编程实践,涵盖了网络通信、多线程...

    java版山寨QQ项目源码

    java版山寨QQ项目 里面有四个压缩包 QQ服务器端.rar QQ客户端.rar 改进QQ客户机服务器视频实现.rar Q第三方库.rar 这个java版山寨QQ项目实现的功能有: 1.实现的java视频聊天; 2.集成了Mina框架; 3.服务器管理...

    山寨机java游戏

    "山寨机java游戏"指的是为非原装或非正规品牌手机(通常被称为“山寨机”)设计的Java游戏。这些游戏通常具有较低的硬件要求,能够兼容各种非主流或低成本设备。 1. **Java技术基础**:Java是一种跨平台的编程语言...

    Java山寨版qq源码+素材

    Java山寨版QQ源码是一个基于Java编程语言实现的简易即时通讯软件项目,旨在为学习者提供一个基础的、可理解的实例,以便更好地理解和掌握Java编程以及网络通信相关的技术。这个项目不仅包含了源代码,还提供了相关的...

    山寨QQ2003java源码

    【标题】"山寨QQ2003java源码"揭示了这是一个基于Java编程语言的项目,目的是模仿QQ2003版本的某些功能。在Java领域,源码是程序员编写的程序原始代码,用于实现特定的功能。这个项目可能是为了学习、研究或者改进,...

    Java山寨版QQ

    【Java山寨版QQ】是一个基于Java编程语言实现的简易通讯软件,它模仿了QQ的基本功能,提供了客户端与服务器端之间的简单通信。这个项目是初学者学习网络编程和Java多线程技术的一个很好的实践案例。 首先,我们要...

    java语言 山寨版QQ源码

    【标题】:“java语言 山寨版QQ源码”指的是基于Java编程语言实现的一个简易QQ聊天软件的源代码。这个项目通常是为了教学目的而设计,让学习者能够深入理解Java编程语言在网络通信、多线程、图形用户界面(GUI)等...

    Java山寨超级马里奥

    【Java山寨超级马里奥】是一款使用Java编程语言开发的小游戏,它仿照了经典游戏《超级马里奥》的玩法和元素,旨在提供一种学习Java编程和游戏开发的实践平台。通过这个游戏,开发者可以了解到如何用Java实现游戏逻辑...

    Java实习报告——山寨QQ聊天工具设计

    【Java实习报告——山寨QQ聊天工具设计】 这份实习报告详细记录了一个基于Java的简易聊天系统的开发过程,项目名为"My_QQ",旨在模仿QQ的基本功能,包括登录、注册、单人及多人聊天,并且退出应用。这个项目是针对...

    java实现的山寨版QQ

    【Java实现的山寨版QQ】项目是一个基于Java编程语言开发的即时通讯软件,它旨在模拟腾讯QQ的基本功能,包括用户登录、在线好友列表展示、一对一私聊以及多人聊天室等功能。这个项目对于学习Java GUI设计、网络编程...

    山寨java版qq

    【标题】"山寨java版qq" 是一个基于Java编程语言开发的简易聊天软件,它旨在模仿QQ的功能,但并非官方版本。这个项目主要是为了学习和实践网络通信、多线程以及用户界面设计等技术。 【描述】这个"山寨版局域网聊天...

    java山寨qq

    《Java实现的“山寨QQ”解析》 在Java编程领域,韩顺平是一位知名的讲师,他的Java基础课程深受初学者和进阶者喜爱。在这个课程中,他通过讲解如何实现一个“山寨QQ”来帮助学员深入理解Java语言的核心概念和技术。...

    java山寨版星际争霸demo

    【Java山寨版星际争霸Demo】是一个基于Java编程语言开发的3D游戏项目,它尝试复刻经典游戏《星际争霸》的一些核心玩法和视觉效果。这个Demo不仅提供了游戏体验,还包含源代码,使得开发者和学习者能够深入理解游戏...

    java GUI 山寨QQ

    【标题】"java GUI 山寨QQ"是一个基于Java Standard Edition (Java SE) 开发的图形用户界面(GUI)应用程序,旨在模仿QQ即时通讯软件的功能。这个项目展示了如何利用Java的Swing或JavaFX库来构建桌面应用,并通过SQL...

    java编写的山寨qq

    【Java编程实现的QQ模拟器】 ...通过以上分析,我们可以看到这个Java编写的山寨QQ项目涵盖了从基本的编程概念到复杂的网络通信和数据库操作等多个方面的知识,对于学习和理解Java应用程序开发具有很高的实践价值。

    简易的山寨版javaQQ系统

    【简易的山寨版javaQQ系统】是一个基于Java编程语言实现的简单即时通讯软件,它旨在模仿QQ的基本功能,为用户提供一个基础的聊天平台。在这个项目中,我们可以学习到Java编程在构建网络通信应用中的基本原理和技巧。...

    java山寨qq,有截屏工具

    Java山寨QQ项目是一个基于Java语言实现的即时通讯应用,它旨在模仿QQ的主要功能,包括聊天、好友管理等,并且特别地,它集成了一个截屏工具。这个项目对于学习Java编程,尤其是网络通信和图形用户界面设计的开发者来...

    Java编写的山寨QQ,多人聊天+用户在线(完整源码)

    Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构,  当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。...

Global site tag (gtag.js) - Google Analytics