java代码例子 规则引擎java
一、有java小游戏代码可以分享吗
有的哦!非常的多。java写不了病毒,但是非常适合写游戏开发。下面举几个个例子说明,比如说,飞机大战,坦克世界,这个是java基础,完全是用基础知识做出来的。如果你能单独写出飞机大战,说明你的java基础非常不错,对面向对象编程思想有一定的了解了??!
飞机大战
它的主要模块如下:主界面,英雄机,小敌机,大敌机,子弹,小蜜蜂??!检测英雄机和敌人的碰撞,子弹和敌人的碰撞,计算出各个对象的宽和高,让英雄机随着鼠标移动,添加鼠标移动监听等。
坦克世界
这个游戏相信很多90后的小伙伴都记得吧!小时候经常偷偷的和小伙伴一起玩的游戏之一,那个时候小霸王游戏机,还是插卡的,几乎每个游戏卡上都有这个游戏。
可以自己建立战场,吃了一把手枪或者累积获得三个星星,可以加强火力,不管什么墙壁都能打穿。还记得那个时候,还可以自己把中间位置的那个老鹰(自己的BOSS)打死,直接结束游戏。后来赶巧的是,我们大二的java程序设计的大作业,就是写出这个游戏来。使用的工具就是MyEclipse,这个是基于java线程技术的小游戏,多重地图,多重关卡,利用文件的读取,改变地图属性,坦克属性,火力属性,利用绘图技术,绘制地图显示效果。
贪吃蛇大作战
设计游戏图纸,画出900X700的白色游戏窗口,在窗口上添加画布,在画布上添加标题,然后在黑色区域添加游戏区域。放置静态的蛇:一个头、两个身体,加上开始提示:按空格键开始游戏,让蛇动起来:监听Timer事件,平移数据,实现游戏暂停实现转向功能。添加食物,吃掉食物,添加死亡条件,实现“重新开始”功能,添加分数和长度。
俄罗斯方块
大致的原理是使用二维数组保存划分的地图,游戏前先将所有地图中的格子初始化为空,玩游戏过程中,我们能够看到界面上的方块,那么就得将地图中所有的方块绘制出来,当然,除了需要绘制方块外,游戏积分和游戏结束的字符串在必要的时候也需要绘制,通过随机数的方式产生方块所组成的几种图形,一般七种图形:条形、田形、正7形、反7形、T形、Z形和反Z形,生成条形。重复以上的生成图形、图形下落、左右下移动、判断消除行的操作,一个简单的俄罗斯方块就完成了。
五子棋
这个是编程上的效果图,开始菜单包含:重新开始、悔棋两个功能,目前悔棋可以支持连续悔。设置菜单包含:禁手设置、人机对弈设置、人人对弈设置,关于禁手设置的规则在帮助菜单可看到。设置菜单包含:禁手设置、人机对弈设置、人人对弈设置,关于禁手设置的规则在帮助菜单可看到。
总结来说,需要设计考虑到的问题是:1.菜单的设计与实现2.鼠标点击棋盘后,如何绘制棋子?如何为刚下的棋子绘制一个红色框?3.棋谱是如何一个数据结构?
当然了,如果以上小游戏都会做了,还有捕鱼达人这个也可以总javaSwing实现哦!
这个游戏看上去比较复杂,其实,原理不算太难的。
游戏原理:swing+多线程+事件监听swing实现的界面的绘制;多线程实现产生多种鱼,实现鱼的游动,以及网的移动;事件监听实现鼠标捕鱼事件的捕获;鱼,背景,网都是图片,之所有是动态的效果,因为线程或者鼠标移动引起图片的变化.
那么,总结说来,捕鱼游戏是一种以小博大的游戏,玩家通过消耗金币,进入特定黑箱,输出概率,如果成功,则获得鱼对应的金币。其中成功概率是由黑箱条件决定,包括房间条件、玩家条件、开炮条件等。好了,java可以做非常多的游戏的哦!以上是一些小游戏,包括大型网游的后台服务器系统,大部分都是用java写的。
二、求一个简单的java代码
直接写main函数里了publicstaticvoidmain(String[]args){ JFrameck=newJFrame("title"); JPanelmb=newJPanel(); mb.setLayout(null); Stringstr="test"; //自己定义要显示什么 JTextAreata=newJTextArea(str); ta.setBounds(0,0,100,30);//自己定义文本区在窗口中的位置和大小 mb.add(ta); ck.add(mb); ck.setVisible(true); ck.setBounds(200,200,500,500);//自己定义窗口位置和大小 }
三、想用Java写一套漂亮的代码,哪些设计模式比较常用
总体来说设计模式可以分为三大类
创建型模式:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式
结构型模式:适配器模式、过滤器模式、装饰模式、享元模式、代理模式、外观模式、组合模式、桥接模式
行为型模式:责任链模式、命令模式、中介者模式、观察者模式、状态模式、策略模式、模板模式、空对象模式、备忘录模式、迭代器模式、解释器模式、访问者模式
其中常用的设计模式有:
单例模式
单例模式是设计模式中最简单的模式之一。通常,普通类的构造函数是公有的,外部类可以通过“new构造函数()”来生成多个实例。但是,如果将类的构造函数设为私有的,外部类就无法调用该构造函数,也就无法生成多个实例。这时该类自身必须定义一个静态私有实例,并向外提供一个静态的公有函数用于创建或获取该静态私有实例。
单例模式的主要角色如下。
单例类:包含一个实例且能自行创建这个实例的类。访问类:使用单例的类。工厂方法模式
在《简单工厂模式》一节我们介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。
工厂方法模式的主要角色如下。
抽象工厂(AbstractFactory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法newProduct()来创建产品。具体工厂(ConcreteFactory):主要是实现抽象工厂中的抽象方法,完成具体产品的创建。抽象产品(Product):定义了产品的规范,描述了产品的主要特性和功能。具体产品(ConcreteProduct):实现了抽象产品角色所定义的接口,由具体工厂来创建,它同具体工厂之间一一对应。适配器模式
适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。
适配器模式分为:
类结构型模式对象结构型模式前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。
适配器模式(Adapter)包含以下主要角色。
目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。对象适配器模式的结构图
装饰模式
装饰器(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。
装饰器模式主要包含以下角色。
抽象构件(Component)角色:定义一个抽象接口以规范准备接收附加责任的对象。具体构件(ConcreteComponent)角色:实现抽象构件,通过装饰角色为其添加一些职责。抽象装饰(Decorator)角色:继承抽象构件,并包含具体构件的实例,可以通过其子类扩展具体构件的功能。具体装饰(ConcreteDecorator)角色:实现抽象装饰的相关方法,并给具体构件对象添加附加的责任。装饰器模式的结构图如图1所示。
策略模式
策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。
策略模式的主要角色如下。
抽象策略(Strategy)类:定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法,一般使用接口或抽象类实现。具体策略(ConcreteStrategy)类:实现了抽象策略定义的接口,提供具体的算法实现。环境(Context)类:持有一个策略类的引用,最终给客户端调用。其结构图如图。
代理模式
代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。
代理模式的主要角色如下。
抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。真实主题(RealSubject)类:实现了抽象主题中的具体业务,是代理对象所代表的真实对象,是最终要引用的对象。代理(Proxy)类:提供了与真实主题相同的接口,其内部含有对真实主题的引用,它可以访问、控制或扩展真实主题的功能。其结构图如图