1.J2ME 五子棋程序及论文
J2ME-MIDP1.0小游戏入门-五子棋1.0 发布时间:2006.03.09 12:30 来源:CSDN 作者: 作者:yinowl2005年1月介绍这是我学习j2me入门后的第一个作品,当然这也是一个极其简单的作品(没有电脑AI,只能是两个人对战),现在我把当时的设计思路写成这篇文档,希望对想入门j2me的朋友在j2me的流程,按键响应,绘图等方面有所帮助,同时也希望大家指出错误和改进程序。
注意代码列出解释的形式仿照《J2ME Game Programming》一书,按照程序功能思路给出相关代码,一个文件的代码会根据功能在不同的小节给出,文章结束了,代码也就完整了。这不同于通常书中的代码以文件为单位一次全部给出,我认为这样更有助于让大家了解一个程序从设计到最后完成的思路。
设计数据结构:由于五子棋是一个二维棋类游戏,所有首先想到的是定义一个Chesses类来表示棋子,Chesses有一个boolean型的变量isPlayer1来区分该棋子是哪玩家下的,然后用一个Chess类型的二维数组来包含棋盘上的所有棋子。考虑到移动设备的资源有限,尽可能减少系统资源占用,我考虑不在数组建立后直接生成数组的每一个对象,而是把每一个棋子对象(Chesses)放在游戏的进行中生成,也就是说在游戏进行时,玩家每下一步棋,在数组相应位置生成该棋子的对象,这样可以避免还没有下的棋子在一开始就占用了系统内存流程:游戏按照棋子的二维数组进行绘制棋子,玩家下棋后,程序修改数组相应位置,设置isPlayer1值,然后重新绘制(repaint),就更新了棋盘界面。
由于游戏的功能简单,也为了使游戏的操作尽可能的简便,我不在游戏进入时设计菜单,而是直接开始对战,在对战界面,设置了重新开始和退出的按钮。即运行即玩,一键开始,一键重来,一键退出。
玩家切换:棋类游戏有一个问题需要注意,就是提示当前由哪方下棋,为了节省界面空间,简化游戏界面,我在棋盘外围加了一个3个像素宽的框,框的颜色就是当前下棋方的颜色,如图:应用程序类:Gobang.java接下来就开始完成游戏中的每一个类,首先就是一个MIDlet类。Gobang类继承自MIDlet类,用于连接设备的应用程序管理器(Application Manager),通过方法startApp,pauseApp,destroyApp来通知游戏的开始,暂停和销毁结束。
源代码如下:package com.occo.j2me.game.gobang;import javax.microedition.lcdui.Display;import javax.microedition.midlet.MIDlet;public class Gobang extends MIDlet { GobangCanvas gobang;//定义游戏界面的Canvas类GobangCanvas的对象gobang public Gobang() { super(); gobang=new GobangCanvas(this);//生成GobangCanvas类的对象gobang } protected void startApp(){ Display.getDisplay(this).setCurrent(gobang); //在屏幕上绘出游戏见面gobang } protected void pauseApp(){ } protected void destroyApp(boolean arg0){ }} 游戏界面类:GobangCanvas.javaGobangCanvas类是游戏的核心类,继承自Canvas,此类将完成游戏的逻辑、绘图、控制、互动等所有功能,此类的框架代码如下:package com.occo.j2me.game.gobang;import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.Graphics;public class GobangCanvas extends Canvas implements CommandListener{ protected Gobang gobang; public GobangCanvas(){ } public GobangCanvas(Gobang gobang){ this.gobang=gobang; } protected void paint(Graphics g) { }} 棋子类:Chesses.java此类定义了一个棋子,棋盘上的每一个棋子都对应着一个Chesses的对象,整个棋盘是一个Chesses类型的二维数组,源代码如下:package com.occo.j2me.game.gobang; public class Chesses { boolean isPlayer1; public Chesses() { } public Chesses(boolean isPlayer1) { this.isPlayer1=isPlayer1; }} 添加图形图像到现在,我们已经完成了游戏的一个基本框架,接下来,我们就可以来绘制游戏的每一个部件了首先是五子棋的一些初始设置,添加如下代码到GobangCanvas.java 。 int empty;//游戏界面到屏幕边缘的留空 int canvasW,canvasH;//画布的长和宽 int chessLength;//棋子的直径 int chessMapLength,chessMapGrid,chessGridLength; //棋盘的边长,棋盘一边格子数,每格宽度 int chessMapX,chessMapY;//棋盘左上角x,y坐标 int selectedX,selectedY;//选择框在棋盘格局上的x,y位置 boolean isPlayer1;//是否是玩家1 Chesses[][] chesses;//棋子数组 boolean newGame;//是否是新的游戏 public GobangCanvas(Gobang gobang){ newGame=true; empty=10; canvasW=getWidth()-empty;canvasH=getHeight()-empty; chessMapGrid=15; chesses=new Chesses[chessMapGrid+1][chessMapGrid+1]; if(canvasW>canvasH){ chessMapLength=canvasH-canvasH%chessMapGrid; chessMapX=(canvasW-chessMapLength)/2+empty/2; chessMapY=(canvasH。
2.《基于J2ME平台的手机游戏》毕业论文的开题报告
基于J2ME的手机在线游戏(论文+程序+答辩ppt) 摘 要现在的移动电话是小型的计算机,暂时它的处理能力与台式机的标准处理能力相比很有限,但是足够运行一个相对小型的游戏,甚至是3D游戏。
同时它们还是网络计算机,能够高速发送和接收数字数据。 除了语音数据以外,它们还可以发送和接收其它类型的数据。
所以市面上已经出了好几款类似PC上的网络游戏。Java 2 Micro Edition (J2ME即K-JAVA)是一种针对移动电话和PDA这样的小型设备的Java语言。
大部分的手机厂商都迫切希望Java手机推广应用。尽管J2ME与台式机中的Java相比还是有很大的限制,但是它已经极大的提高了移动电话支持游戏的能力,并且有比SMS或WAP更好控制的界面,允许使用子图形动画,可以通过无线网络连接到远程服务器。
本设计使用J2ME设计了一个手机在线游戏系统,实现一个实时、高效、多人同时进行的手机动作游戏。用户通过手机GPRS上网登录到服务器,与其他的用户一起开始游戏。
本文先从Java手机游戏的背景出发,介绍了Java手机游戏的发展现状和国内外行业动态,然后从整体上介绍本系统开发的模型,接下来对本系统的各个功能模块——作详细的描述。最后,本文归纳了本系统设计的硬件和软件环境, 并对该设计的测试结果进行汇报。
最后一章为对全文的总结以及对今后研究工作的展望。关键词:J2ME,Java手机游戏,客户端子系统目录摘 要 I目录 III第一章 绪论 11.1 背景及现状 11.1.1.手机游戏特征 11.1.2.手机游戏的类型 21.2 行业动态与展望 41.3 论文结构 12第二章 J2ME技术概述 142.1 J2ME总体架构 142.2 配置概述 152.3 简表概述 152.4 J2ME目标设备 162.5 J2ME、J2SE 与 J2EE 之间的比较 162.6 JavaSocke网络编程 172.7 小结 20第三章 系统总体设计 213.1 系统的总体结构与功能 213.2 系统类建模 313.3 本章小结 34第四章 各模块的设计 354.1 客户端游戏控制模块 354.1.1 功能简介 354.1.2 模块具体实现 354.2 通信模块 424.2.1 功能简介 424.2.2 模块具体实现 434.3 服务器端游戏控制模块 464.3.1 功能简介 464.3.2模块具体实现 464.4 小结 46第五章 系统运行环境及系统测试 475.1 系统运行硬件环境 475.2 系统运行软件环境 485.3 系统测试 49结论 54附录 56附录A 安装J2ME 56附录B IDE NETBEANS 56参考文献 59致 谢 60。
3.关于J2ME的毕业论文,有什么好的课题
J2ME中值得期待的几种技术(作者:陈跃峰 出自: )
在新技术层出不穷的计算机领域中,J2ME中也存在很多值得期待的技术,现做一个简单的说明(排名不分先后):
1、JavaTM Technology for the Wireless Industry
该技术是最值得期待的技术,是将当前的手机厂商API统一起来的一种技术,如果所有的厂商都遵守这个规范,则不存在什么NOKIA的UI API之类的东西。但是现在还远没有普及。
详细技术规范:
2、Location API for J2ME
该技术实现移动定位,应用前景十分广阔,可以用在手机、汽车等的定位。该规范需要运营商的支持。
详细技术规范:
3、Mobile 3D Graphics API for J2ME
该技术是实现在J2ME绘制3D界面的一套API。目前还在推广中,已经有手机支持该技术。
详细技术规范:
4、J2METM Web Services Specification
该技术实现在支持J2ME的设备中调用WEB服务。
详细技术规范:
5、JDBC Optional Package for CDC/Foundation Profile:
该技术实现在支持J2ME的设备中通过JDBC操作数据库。
详细技术规范:
J2ME的话,一般都是应用在基于手机平台的游戏和软件。我觉得你可以参考一下上面的技术,然后从自己实用的来考虑(比如自己想要在手机上用到什么软件,但现在还没有的),设计一款实用的软件。
这是一篇MIDP2.0及其移植技术分析
4.求一篇《我心中的手机游戏专业》论文参考2000字
这个和作文差不多。
抄点资料,然后谈感受什么的,反正写他前景好,百度随便找了抄 手机游戏行业是目前比较受关注的一项产业,也是游戏开发的一个重要分支。本专业课程深入分析了手机游戏开发的基本知识,j2me开发平台,并通过大量实例实践了手机游戏项目开发的全过程。
j2me主要介绍了MIDP1。0和MIDP2。
0,其中包括MIDP应用程序模型介绍,MIDP用户界面类库,MIDP高层用户界面,游戏动画实现,双缓存技术,碰撞检测,人工智能,MIDP数据存储等。培养具有手游设计与开发能力,能从事手机游戏开发岗位工作,具有手游设计、手游开发等技能的应用型人才。
二. 就业岗位 手机游戏开发工程师 J2ME是Java 2 MicroEdition的缩写,是Sun公司为了把Java 应用于移动通信设备、嵌入式设备或消费性电器而推出的一项技术,是致力于消费产品和嵌入式设备的最佳解决方案。 相对其他智能客户端平台而言,J2ME有一个独特的优点:它是专为手机设计的。
J2ME应用可运行在不同投资商的不同设备上。这在高度竞争性的手机设备行业中是特别重要的。
现在所有主要的智能手机制造商都支持J2ME平台。 岗位职责: 手机游戏的程序开发 任职要求: 1。
精通java、J2ME,熟悉java多线程、socket通信编程,熟悉各种开发平台(Nokia、Mot、UniJAVA)。 2。
有较强逻辑分析、解决问题能力、英文文档阅读能力。 三. 开设课程 游戏专业概论:本课程是游戏专业学生必修的理论基础课。
所谓概论,其中所要阐述的,自非一枝一蔓的细节,而是提纲挈领,对一些属于大层面上的问题提出看法和心得。本课程通过对游戏基本概念、理论,游戏行业及游戏制作流程、开发方法的系统介绍,讨论一些横贯整个游戏设计开发领域的重复出现的模式和问题,并对这些模式和问题,提出一些思想方法方面的领会和思考,全面讲述游戏开发行业的知识,帮助学员了解游戏开发,在游戏团队找到自己的定位。
游戏架构设计与策划基础:本课程是游戏专业学生必修的实践基础课,通过讲解游戏的架构组成,以当前游戏公司实际游戏策划设计方案为教学实例,介绍高级游戏的策划设计的理论。系统全面地介绍了游戏策划的内涵精要、并把重点放在提高学员各种游戏的设计能力上。
同时通过对游戏开发中的预视化技术,关卡技术,游戏分类,各种视觉效果,音效、脚本事件以及游戏测试等的介绍,同时结合详细阐述当前最流行的多人在线游戏和手机/无线设备游戏等类型游戏设计中需要考虑的问题,本课程蕴含了作者丰富的实际游戏策划经验和教材编写经验;例题、习题丰富;结构新颖、紧凑;讲解通俗、易懂。 使学员更快、更准确进入游戏设计之门。
3D游戏美术设计基础:本课程是游戏专业学生必修的实践基础课,以游戏美工设计要求为根据,介绍在游戏中的美术设计方法。课程中系统全面地介绍了游戏美工的各项技术内涵精要、重点培养学员的基础游戏美术理论和实际应用操作能力上。
本课程力图使学员掌握游戏开发公司美工必须掌握的各项技术以及所必备的素质,以大量的实际操作锻炼学员,并指导其完成成熟的作品。主要内容包括游戏美工制作概论、伪3D游戏场景制作、3D游戏场景制作基础技能、3D游戏场景制作基础技能、游戏角色设定、3D游戏角色制作基础、游戏角色贴图纹理制作、骨骼动画与Skin蒙皮、CG 动画制作基础理论等。
游戏MOD:本课程是一门综合性的实践课程。MOD是MODIFICATION(修改)的英文缩写,专指使用现有游戏厂商或第三方提供的游戏编辑器,构思和设计新的游戏关卡或任务的技术。
本书主要讲述MOD的基本概念,通过和具体游戏的结合以实例的形式向大家展示使用MOD技术的具体方法和游戏关卡的设计过程。 通过学习游戏MOD技术,引领初学者进入游戏开发的殿堂,修改现有游戏,实现游戏DIY。
游戏运营管理:本课程是游戏专业学生必修的理论基础课,本课程以网络游戏的一般运营管理模式为主要内容,介绍现代大型网络游戏运营管理的宝贵经验。本课程讲解了基本市场运营理论,详细阐述当前游戏市场的总体形势,运用科学方法对游戏市场做出评估,因而能够全面的涵盖网络游戏运营的各项注意事项。
本课程将使学员了解游戏市场运作的诀窍,掌握游戏运营管理,熟悉国际国内知名游戏公司成功运营模式,从而成为合格的游戏运营管理人员。 J2me 手机游戏开发:本课程为手机游戏开发专业JAVA方向的初级课程。
主要介绍MIDP1。0和MIDP2。
0, 其中包括MIDP应用程序模型介绍,MIDP用户界面类库,MIDP高层用户界面,游戏动化实现,双缓存技术,碰撞检测,人工智能,MIDP数据存储。 游戏排行榜的实现。
完整游戏范例。 J2me手机游戏开发实战: 本课程是在J2ME移动游戏开发基础上,使用多个完整案例的方式来介绍开发角色扮演类,益智类,射击等不同类型游戏的相关技术。
另外包括代码的优化,游戏的移植等。本课程集合了游戏业界资深程序员丰富的游戏专业技术积累,直接培养学员掌握当前在游戏公司中求职的基本要求,帮助学员贴近游戏开发人才需求,顺利进入游戏行业。
游戏专业英语:本课程。
5.黑白棋的设计思路
关键是电脑算法的问题,其实要实现双人对战是很简单的。
至于电脑下子的算法..这个你得个专门的论文看看,要对黑白棋有很深的了解,或者直接剽窃别人的研究结果也可以,呵呵 设计思路1.main()主函数在主函数中,棋盘状态用数组a[8][8],初值为0,表示空格。用图形系统画出棋盘,调用playtoplay()人人对弈函数开始游戏,一旦游戏结束后,关闭图形系统,程序结束。
2.DrawQp()画棋盘函数背景颜色设为蓝色,从坐标(100,100)开始每隔40个单位用白色画一条水平直线,一条垂直线,构成棋盘,用循环语句实现。函数setfillstyle()可以设置填充模式和填充颜色,fillellipse(int x,int y,xradius,int yradius)以x和y为圆心,xradius和yradius为水平和垂直轴画一填充椭圆,当xradius和yradius相等时,则画出的是圆,用它表示棋子。
3.SetPlayColor()设置棋子的颜色函数的参数为整型变量t,根据t的值来设计填充棋子的当前颜色,值为1代表白棋,值为2代表黑棋。4.MoveColor()恢复原来格子的状态由于棋手在走棋的时候,他的棋子总是首先出现在棋盘的左上角,棋手要通过移动光标走到要落子的位置,在经过的路程上显示当前棋子,就会覆盖原来的棋盘状态,所以一旦棋子走过后,就应恢复原来的状态,是空格的依然显示空格,是棋子的就显示原来棋子的颜色。
因为棋子移动过程并没有改变数组元素的值,所以可以根据数组元素的值判定原来的状态,如果值是1,就恢复白色棋子,值是2则恢复黑色棋子,否则恢复蓝色空格。5.playtoplay()人人对战函数这是游戏进行的函数,主要是接收棋手的按键消息,其处理过程如下:按Esc键程序可以随时结束。
按上下左右光标键,则改变棋子移动的坐标值。按回车键后判断。
6.QpChange()判断棋盘变化当棋手按回车键落子后,就要分别往8个方向判断是否包围住对方棋子,如果是,则改变棋盘,也就是棋盘上黑白棋子的个数要发生变化。如果所有方向都判断过,并且没有引起棋盘的变化,则棋盘变化标志值yes为0,返回yes,结束本函数。
7.DoScore()处理分数根据当前数组元素的值判断分数,也就是各方棋子的个数,如果数组元素值为1,白棋棋子数累加;如果数组元素值为2,则黑棋棋子数累加。8.PrintScore()输出成绩利用设置实体填充模式填充矩形条清除掉前次的成绩,再利用sprintf()函数将整数转换为字符串的形式,再利用outtextxy()函数将成绩输出。
9.playWin()输出胜利者结果根据分数值score1和score2的大小得出下棋的结果,输出赢者信息。
6.移动游戏开发的相关论文
原文:
J2ME basics
The biggest benefit of using the Java platform for wireless device development is that you're able to produce portable code that can run on multiple platforms. But even with this advantage, wireless devices offer a vast range of capabilities in terms of memory, processing power, battery life, display size, and network bandwidth. It would be impossible to port the complete functionalities of an application running on a sophisticated set-top box to a cell phone. Even for similar devices such as PDAs and advanced smart phones, establishing portability between the two often poses a strain to one device and underutilization of the other. Real portability can only be achieved among groups of similar devices. Recognizing that one size does not fit all, J2ME has been carefully designed to strike a balance between portability and usability. ………………
译文:
J2ME 基础知识
在java平台上做无线设备开发的最大的好处是你的代码能够在多个平台移植。但是即使有这样的优点,各种无线设备在内存,处理能力,电池使用寿命,显示尺寸,和网络带宽等方面都有很大的不同。所以把一个运行在成熟机顶盒上的应用程序的全部功能都移植到移动电话上是不可能的。即使是在相似的设备(如PDA和高级智能电话)之间建立可移植性也常常使一种设备超负荷而另一种设备利用不充分。真正的移植性只有在一组相似的设备之间才能实现。因为认识到一种规格不能满足所有设备,j2me在设计时就努力的在可移植性和性能方面取得一个平衡。 ………………
7.急求 c语言游戏黑白棋的设计思路
楼上说的有理
鄙人就说说简单的双人对战吧
首先可以用二维数组表示棋盘(比方可以是int[][],元素为“1”表示玩家甲的棋子,“2”表示玩家乙。)
然后写一个函数实现如下功能:
每下一子,就利用下标检测此子周围8个元素(边上的没有这么多,就要通过下标的限制了)有没有相同的,有的话,累计(要考虑分4种情况累计,横竖斜),并调用相应方向的函数检测那些相同的元素,没有就跳过继续。
再写四个函数(检测横竖斜4个方向的)
最后主函数
最最后。。。完善。。。!!!!!
说的不对的请指教
转载请注明出处众文网 » j2me游戏(黑白棋)毕业论文