基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

  • 基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码)
    • 1、项目简介
    • 2、资源详情
    • 3、关键词
    • 4、毕设简介
    • 5、资源下载

1、项目简介

  1. 本系统是一个基于Java ME平台的无线网络移动端的俄罗斯方块游戏,利用Java ME Wireless Toolkit(WTK)开发包工具在无线网络移动端上实现经典的俄罗斯方块游戏。论文开始部分对无线网络移动系统开发中常使用几种开发语言和环境作了比较,说明了选择Java ME Wireless Toolkit作为开发环境的的原因并对它作了相关的介绍。并展示了在WTK中打开一个项目、把源文件打包成JAR包、产生混淆包的方法和过程。在系统设计时,遵循了无线网络移动端程序的startApp、pauseApp、destroyApp的开发生命周期。在设计与实现方面,分成难度选择、游戏规则、方块处理这几个模块进行实现。在开发与实现的同时也讲解了俄罗斯方块这款古老而经典游戏的游戏背景、规则以及相关特性。最终展示了无线网络移动端的游戏开发的基本开发过程和设计思路。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:9838个字29页
包含内容:整套源码+完整毕业论文+答辩PPT


3、关键词

无线网络移动端;Java ME;俄罗斯方块;游戏开发


4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

1 引言
1.1 系统综述
综合运用以前所学专业知识,在Java ME开发平台上实现无线网络移动端的俄罗斯方块游戏。其研究主要包括以下内容:第一,克服有限的可视屏幕尺寸,使游戏正常显示;第二,解决有限的可用内存调用问题,实现游戏流畅运行;第三,俄罗斯方块游戏规则算法在Java ME平台的实现,保证游戏可玩性;第四,游戏开始、结束等逻辑在游戏进行中的判断。本系统在Windows XP的操作系统下,Java Micro Edition Wireless Toolkit 2.1为开发工具,用中文版UltraEdit做为代码编辑器而实现的。

1.2 Java ME游戏开发背景
游戏开发是艺术与编程技术相结合的完美表现。利用Java的“Write once,run anywhere”特性,可以真正达到程序只写一次,在任何平台都可以执行。同时Java语言对面向对象的良好支持,使开发具有高效性。所以Java ME(Java Micro Edition)是广大无线网络移动端游戏开发厂商和游戏开发爱好者的首选平台。

1.3 无线网络移动端游戏发展现状
省略

2 开发环境介绍
2.1 编程环境的选择
目前,移动开发有以下四种主流平台。Java Micro Edition(Java ME),Binary Runtime Environment for Wireless(BREW),Symbian和Window Mobile Smartphone。其中:
Binary Runtime Environment for Wireless(BREW)
BREW是基于高通公司的Code Division Multiple Acces(CDMA)技术的手机为开发平台。它使用C或C++结合BREW API来开发BREW设备上面的程序。和Java ME一样BREW能够作为游戏和地磁手机操作系统之间的一个中介。和Java ME不同,BERW也支持本地代码,能够专门针对某一手机的处理器而编译。本地代码通常比对应的解释版本要快很多,但在设备之间移植会花费很多技巧。在北美和亚洲有部分无限通信服务提供商。
省略

2.2 Java ME Wireless Toolkit(WTK)简介
Java ME Wireless Toolkit(WTK) 的全称是:Java ME无线开发工具包。这一工具包的设计目的是为了帮助开发人员简化Java ME的开发过程。它的功能包括了编译、打包、模拟执行MIDP应用程序。其中包括了字节码验证器、Java ME模拟器、KToolBar、预配置服务器(provisioning server)等很有用的工具。

省略

2.3 Java ME Wireless Toolkit(WTK)开发环境的简介
省略

3 游戏设计
3.1 俄罗斯方块游戏的背景
俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫(Alexey Pazhitnov)发明。人们一开始并没预料到它将会有如此广泛的吸引力。实际上,在游戏发明后的数年间,俄罗斯方块成了无数场专利官司和法律纠纷的目标,而许多公司也不遗余力地上阵厮杀,想要将游戏的创意据为己有。一个最初的版本是Spectrum Holobyte为IBM兼容机开发的游戏。1988年,俄罗斯方块在街机上也变得非常流行,这归功于Atari,因为他们发布了一个能让两名玩家同时游戏的版本。

俄罗斯方块经常被称为拼图游戏。玩家需要找出如何能把各块积木最好的拼在一起的方法。俄罗斯方块相当于直角的智力拼图游戏,或者其它一种“在这有限空间内组织几何体”的拼图。俄罗斯方块为了创造真正引人入胜的游戏,它巧妙的平衡了拼图游戏与动作游戏的机制。因而每个人玩这个游戏都会有一次不同的体验。俄罗斯方块所用到的一种动作游戏机制是越来越逼近的威胁感,留给玩家的时间总是非常有限。俄罗斯方块中积木是从上面落下来。如果玩家不在积木落到屏幕底下或翻转它,不能给它找一个最有利的位置,这块积木就可能会堵住某处,而它下面的几行也就没有办法拼接完整,玩家也就离游戏结束又靠近了一行或几行。在游戏进程中,积木落下来的速度越来越快,这样对玩家的挑战也就越来越大,游戏的难度也逐步增加。

3.2 俄罗斯方块游戏的规则
俄罗斯方块游戏的玩法非常简单易学,游戏界面是一个很高的长方形2D盒子,方块出现在盒子的上方,这些方块都由四个小方块组成,并按照各种方式排列,其中每一个方块都至少和另一个方块相连。然后,这些积木慢慢地落向盒子底部,玩家可以把这些方块左右移动或旋转。一旦这个方块碰到阻碍,比如盒底或者另一个方块,它就会停止,而玩家可以对之加以操作。当屏幕底端的方块拼满一横行时,这个层的方块就会消失,而这一行以上的所有方块都会下降一层。而当那些没有拼完的横行填满整个长方形盒子,新的方块无法再出现时,游戏就结束了。

3.3 俄罗斯方块游戏的特性
(1)单屏游戏:
俄罗斯方块全部反映在一个屏幕上。玩家可以在同一时间看到整个游戏环境,在此基础上决定怎么处理手上的这块积木。这个游戏当中没有任何探险成分在内,它不会让玩家真正大吃一惊,玩家能够看到让游戏顺利进行下去的所有信息,所以玩家输了的话只能怪他自己。

(2)无限游戏:
只要积木还没有堆到盒顶,俄罗斯方块就允许玩家一直玩下去,不管他做出了多少错误的决定。每次游戏都以失败而告终,没有人真正能打败这个游戏。玩家们总是能找到提高玩俄罗斯方块技艺的方法,这就是俄罗斯方块和传统拼图游戏的根本不同。一旦玩家拼好了一幅拼图,只要他还记得他是怎么拼的,那么这个拼图就对他再也无挑战了。所以人们通常不会多次玩一个拼图,但一个设计精巧的游戏却总能让人玩上一遍又一遍。俄罗斯方块正是这样一个游戏。

(3)多条生命:
和大多数的街机游戏不同,最早的俄罗斯方块只给玩家一条生命。积木一堆到盒子顶部,玩家就输了。但是游戏的设计允许玩家出现错误,同时还不会立即败下阵来。当积木叠在长方盒子的底部时,玩家可以看到自己所犯的错误,在游戏结束前,他还是有时间想一想如何把后面的积木拼放得更合理些。这样,俄罗斯方块虽然没有给玩家多条生命,但却在玩家重新开始前,给玩家一个改善游戏技巧、获得一些小小成就的机会。

(4)最高分机制:
俄罗斯方块引入一个计分模式,它给玩家计分并把分数记录在高分排行榜上。实际上,因为玩家不可能击败这个游戏,所以,取得一个更高分数的可能性就成为玩家反复玩这个游戏真正的动力所在。

(5)简单易学,容易操作:
俄罗斯方块的真正杰出之处在于它的游戏机制简单平朴,浅显易懂。玩好这个游戏只需极少的键位,所有操作都在屏幕上一览无余。这意味着,不论是否熟悉计算机游戏,任何人都可以走过来并立即开始玩它。然而,玩家永远不可能完全掌握这个游戏,因为这个游戏的难度与是递增并且它在理论上可以玩无限长的时间。

4 游戏系统分析设计
4.1 系统解决方案
本系统在Windows XP的操作系统下,以Java Micro Edition Wireless Toolkit 2.1为开发工具,用中文版UltraEdit做为代码编辑器而实现的。在KToolBar开发包的DefaultColorPhone模拟器下进行调试。

4.2 系统总体结构
系统开发的主要任务是俄罗斯方块游戏在无线移动端的实现。本系统的主要实现功能模块分为:难度选择模块、方块处理模块、游戏规则模块。

4.2.1 难度选择模块
用户在title屏按键数字键选择0-9种游戏难度,进入相对应游戏关卡。

4.2.2 方块处理模块
方块处理模块定义方块的7种状态,每种状态都是由四个小方块组合而成,如下:

图7 方块形状模块图

4.2.3 游戏规则模块
游戏规则模块主要实现俄罗斯方块游戏基本规则。比如,积满一行后消减;能够快速直接的下落;记录游戏最高分;方块翻转;分数计算;随机生成方块,见下图:

图8 游戏规则模块图
4.3 游戏中断处理流程
中断处理是移动设备程序生命周期的重要组成特性,包括下图三种阶段:

图9 系统生命周期图

5 系统实现与测试
5.1 系统源文件结构
本系统由10个类组成并实现全部功能。项目名字为TetrisMidlet,其项目文件结构如下图:

图10 项目结构图
在项目源文件中,src文件夹下为实现系统的源文件。建了两个包作为功能划分,分别为:ui包和model包。

5.2 难度选择模块
5.2.1 难度选择模块结构
ui包里包含以下类:
InfoBox.java 用于显示数字的信息框
TitleBox.java 显示title屏,包含当前高分提示选择一个难度
NextPieceBox.java 显示下一个激活方块
TetrisCanvas.java 处理程序的所有UI
DisplayBox.java 在屏幕上显示Box
其结构图如下:

图11 ui包结构图
其中核心类DisplayBox.java的方法图如下:

图12 类DisplayBox的方法图
在DisplayBox.java中方法paint()实现了title屏的显示,其代码如下:

public final void paint(Graphics g) {g.setColor(this.bgColor);g.fillRect(x, y, width, height);   // box的背景g.setColor(this.fgColor);g.drawRect(x, y, width, height);  // 边框this.paintBoxContents(g);}
下面是TerisCanvas.java中绘制方块paintBlock()方法的实现代码:
private void paintBlock(int x, int y, int blockType, Graphics g) {int blockX = this.boardX + (this.blockSize * x);int blockY=this.boardY+(this.blockSize* (y - TetrisConstants.TOP_VISIBLE_ROW));if(TetrisConstants.BLOCK_EMPTY != blockType) {// 绘制下落时的阴影g.setColor(TetrisConstants.COLOR_BLACK);g.fillRect(blockX + 1, blockY + 1, this.blockSize - 1, this.blockSize - 1);// 绘制一个实际的方块覆盖在阴影上this.setColor(blockType, g);g.fillRect(blockX, blockY, this.blockSize - 1, this.blockSize - 1);}  else {//绘制颜色g.setColor(TetrisConstants.COLOR_WHITE);g.fillRect(blockX, blockY, this.blockSize, this.blockSize);}}

其中,TOP_VISIBLE_ROW为TetrisConstants下定义,Y坐标的从行0开始索引的位置,初始值为2。
BLOCK_EMPTY为TetrisConstants下定义的空方块,初始值为-1。
COLOR_BLACK为TetrisConstants下定义的预设RGB颜色,初始值为0x00000000。
COLOR_WHITE为TetrisConstants下定义的预设RGB颜色,初始值为0x00ffffff。

5.2.2 难度选择模块功能
模拟器程序运行,在应用程序列表里显示可以载入运行的模拟程序
点击运行程序后,在title屏显示游戏名称、作者、最高分记录和按键提示,点击数字键输入0-9中的一个数字,以选择不同难度的关卡,如下图:

在title屏,也可以点击左软键退出程序。

5.3 游戏规则模块功能
5.3.1 游戏规则模块结构
游戏规则模块包含3个类:
DropThread.java 处理方块下落问题
TetrisConstants.java 常数定义
TetrisMidlet.java 游戏规则和对键盘输入的捕捉,以及中断的处理
其结构图如下:

图15 游戏规则模块结构图
其中核心类DropThread.java实现了方块的下落,它的方法图如下:

图16 类DropThread方法图
其中run()方法实现循环下落,代码如下:

public void run() { //运行方法
while(this.running) {
// 当前下落的方块
if(this.skipNextTick) {
this.skipNextTick = false;
} else {
this.game.tick();
}
try {
Thread.sleep(this.game.getTickSpeed()); // 线程睡眠
} catch(InterruptedException ie) {
}}}

5.3.2 游戏规则模块功能
游戏规则模块实现俄罗斯方块游戏的主要功能包括,消减积满的行、快速下落、方块翻转、分数计算、下落碰撞检测、随机生成方块。
下面是消减积满行功能代码,如下:

private int clearCompletedRows(TetrisPiece piece) {
TetrisBoard board = this.getBoard();
// 检查方块的每一行,看是否以完成
for(int i = 0; i < TetrisConstants.FOUR_BLOCKS; i++) {
int rowY = piece.getBlockY(i);
// 如果一行被填充满,则标记为完成
if(board.checkRowCompleted(rowY)) {
this.markRowCompleted(rowY, true);
}
}
int numClearedRows = 0;
for(int y = TetrisConstants.HEIGHT - 1; y >= 0; y–) { //从下到上重复
if(numClearedRows > 0) {
board.dropRow(y, numClearedRows);
}
if(this.isRowCompleted(y)) {
numClearedRows++;
this.markRowCompleted(y, false); // 为下一次重置
}
}
// 清除最上面的完成行数
for(int i = 0; i < numClearedRows; i++) {
board.clearRow(i);
}
return numClearedRows;
}

为了增加玩家在游戏过程中的游戏性,下落的方块设置成随机生成,这里利用rand.nextInt方法得到随机数,下面是随机生成方块功能的部分代码,如下:

private int getRandomPieceType() {
return Math.abs(rand.nextInt() % TetrisConstants.NUM_PIECE_TYPES) + 1;
}
首先用rand.nextInt()方法得到随机数后,用随机数除以TetrisCanstants中定义的表示方块类型数的常量NUM_PIECE_TYPE,其值初始值为7,取余后加1取其绝对值。实现效果如下图:

图17 游戏进行状态图
在前面4.3部分通过图9的系统生命周期流程图,已经了解了游戏中断处理的过程。在游戏运行时可以按右软键调用程序生命周期中pauseApp()方法暂停游戏,方块会停在暂停位置,直到玩家再次点击右软键恢复游戏,pauseApp()方法代码如下:

protected void pauseApp() {// 挂起程序使游戏进入暂停状态if(TetrisConstants.RUNNING_STATE == this.gameState) {this.pauseGame();} }
在pauseApp方法中调用了pauseGame()方法,其实现代码如下:
private void pauseGame() {// 把暂停命令替换成恢复命令this.gameCanvas.removeCommand(this.pauseCommand);this.gameCanvas.addCommand(this.resumeCommand);// 进入暂停状态并停止下落this.setGameState(TetrisConstants.PAUSED_STATE);this.dropThread.stopThread();}

5.4 方块处理模块
5.4.1 方块处理模块结构
俄罗斯方块游戏中出现的七种方块是由4个小块组合而成。方块处理模块包含在model包中:
TetrisPiece.java 当前下落方块的处理
TetrisBoard.java 定义方块格子的状态
其类结构图如下:

图20 方块处理模块结构图
核心类TetrisPiece中实现了七种方块下落时翻转方式的下落,方块翻转方式分三种方式:自由翻转(Free)、两面翻转(Toggle)、不能翻转(None),下图是判断图示:

图21 方块翻转方式判断图示
在四个组成的方块的小块中,有一个中心点小块(1,1)在翻转的时候坐标是不会变化的,这个坐标在参数设置类TetrisConstants.java中,名称为:PIVOT_INDEX,其初始值为1。
下面用方块I举例说明其进行翻转判断的代码:

private void setAsNewIPiece(int x, int y) {this.pieceType = TetrisConstants.I_PIECE;
this.rotationType = TetrisConstants.ROTATION_TYPE_TOGGLE;//只能进行两个方向的旋转,设置类型为TOGGLEthis.rotationToggle = true;  // 设置TOGGLE标志为TUREthis.setBlockCoords(0, x - 1, y);     this.setBlockCoords(1, x    , y);this.setBlockCoords(2, x + 1, y);this.setBlockCoords(3, x + 2, y);}

其中rotate()方法实现了方块的旋转,(x,y)为小方块坐标,其翻转实现算法如下:

图23 方块翻转算法流程图
方块翻转算法流程实现代码如下:

public void rotate(int pivotX, int pivotY, boolean rotateDirection) {if(TetrisConstants.ROTATION_TYPE_TOGGLE == this.rotationType) {// 如果翻转类型为TOGGLErotateDirection = this.rotationToggle; //判断翻转方向this.rotationToggle = !this.rotationToggle; // 如果与canRotate匹配,中心点方块将被使用}// 重构四个小块,每个都转动for(int i = 0; i < TetrisConstants.FOUR_BLOCKS; i++) {int blockX = this.getBlockX(i);int blockY = this.getBlockY(i);//  左旋转:交换x和y坐标,x坐标取反//  右旋转:交换x和以坐标,y坐标取反int dx = blockY - pivotY;int dy = blockX - pivotX;if(rotateDirection) {// 如向左旋转dx *= -1;} else {// 如向右旋转dy *= -1;}int rotateX = pivotX + dx;int rotateY = pivotY + dy;this.setBlockCoords(i, rotateX, rotateY);//得到翻转后的新坐标}
}

5.4.2 方块处理模块功能
对当前下落方块的处理,主要功能是及时刷新图像,保证方块状态及时更新。核心类TetrisBoard.java实现了此功能,其方法图如下:

图24 类TetrisBoard方法结构图
当下落方块顶端积满后,游戏系统判断游戏结束。在TetrisBoard.java中的checkRowCompleted()方法实现了此功能,其代码如下:

public boolean checkRowCompleted(int rowY) {
for(int x = 0; x < TetrisConstants.WIDTH; x++) {
if(TetrisConstants.BLOCK_EMPTY == this.getBlockType(x, rowY)) {
// 有空方块,行不被填充
return false;
}
}
return true;
}

如下图:

图25 方块下落游戏图像刷新状态图
当游戏结束时立即显示title屏,计算并显示出这次游戏的最高分。同时等待玩家键入数字,选择游戏难度开始新的游戏。其实现由init()方法控制,其代码如下:

private void init() {this.board = new TetrisBoard();this.gameCanvas = new TetrisCanvas(this);this.activePiece = new TetrisPiece(); //方块处理this.completedRows = new boolean[TetrisConstants.HEIGHT]; //初始化数组this.hiScore = this.openAndReadHiScore(); // 从RMS得到当前存储的高分this.nextPieceType = TetrisConstants.UNINITIALIZED;this.rand = new Random();// 设置exit/pause/resume命令this.setupCommands();this.gameCanvas.addCommand(this.exitCommand);// 显示title屏this.setGameState(TetrisConstants.TITLE_STATE);}

Title屏将显示如下图:

图26 结束并重新开始游戏状态图

结 论
本系统是一个基于Java ME平台的无线网络移动端的俄罗斯方块游戏,利用Java ME Wireless Toolkit(WTK)开发包工具在无线网络移动端上实现经典的俄罗斯方块游戏。论文开始部分对无线网络移动系统开发中常使用几种开发语言和环境作了比较,说明了选择Java ME Wireless Toolkit作为开发环境的的原因并对它作了相关的介绍。并展示了在WTK中打开一个项目、把源文件打包成JAR包、产生混淆包的方法和过程。在系统设计时,遵循了无线网络移动端程序的startApp、pauseApp、destroyApp的开发生命周期。在设计与实现方面,分成难度选择、游戏规则、方块处理这几个模块进行实现。在开发与实现的同时也讲解了俄罗斯方块这款古老而经典游戏的游戏背景、规则以及相关特性。最终展示了无线网络移动端的游戏开发的基本开发过程和设计思路。

和桌面电脑游戏以及家用游戏系统游戏开发一样,无线网络移动端游戏开发必须要掌握和组合应用各种软件开发技术。同时它也是计算机科学技术与艺术结合的产物,也许正是艺术和技术技能的这种独特混合,使游戏开发具有独特魅力。种种调查数据可以证明无线网络移动端游戏市场的繁荣,如今没有人会怀疑它的美好未来。在Java ME这种面向对象、高移植性的语言平台进行开发是大多数无线网络移动端游戏开发者的首选。它一定会随着无线网络移动端游戏的创新不断发展壮大。

参考文献
[1] Michael Morrsion.J2ME手机游戏编程入门[M].北京:人民邮电出版社,2005。
[2] 李振鹏,龚剑.J2ME手机游戏开发技术详解[M].北京:清华大学出版社,2006。
[3] Richard Rouse.游戏设计原理与实践[M].北京:电子工业出版社,2004。
[4] 王森.Java手机/PDA程序设计入门[M].北京:电子工业出版社,2005。
[5] 刘斌.J2ME手机开发入门[M].北京:人民邮电出版社,2006。
[6] Qusay H. Mabmoud.无线Java入门[M].北京:清华大学出版社,2002。
[7] Joshua Bloch,Neal Gafter.Java解惑[M].北京:人民邮电出版社,2006。
[8] Joshua Bloch.Effective Java[M].北京:机械工业出版社,2005。
[9] 殷兆麟.Java语言程序设计[M].北京:高等教育出版社,2004。
[10] 黄斐.MS Project2002项目管理与应用[M].北京:科学出版社,2004。

致 谢
省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号 毕业设计全套资源(点击下载)
本项目源码 基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(源码+文档)_java_Java ME_俄罗斯方块游戏.zip

java毕业设计——基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码)——俄罗斯方块游戏相关推荐

  1. C#毕业设计——基于C#+asp.net+sqlserver的证券术语解释及翻译系统设计与实现(毕业论文+程序源码)——翻译系统

    基于C#+asp.net+sqlserver的证券术语解释及翻译系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+sqlserver的证券术语解释及翻译系统设计与实 ...

  2. asp毕业设计——基于vb+VB.NET+SQL Server的数据存储与交换系统设计与实现(毕业论文+程序源码)——数据存储与交换系统

    基于vb+VB.NET+SQL Server的数据存储与交换系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于vb+VB.NET+SQL Server的数据存储与交换系统设计与实现,文章 ...

  3. C++毕业设计——基于VC+++BP神经网络+车牌识别的车牌定位和识别系统设计与实现(毕业论文+程序源码)——车牌定位和识别系统

    基于VC+++BP神经网络+车牌识别的车牌定位和识别系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于VC+++BP神经网络+车牌识别的车牌定位和识别系统设计与实现,文章末尾附有本毕业设 ...

  4. android 飞机源码,基于安卓Android平台的飞机游戏设计与实现毕业论文+项目源码...

    摘   要 本课题是基于Android平台开发的飞机游戏,本游戏主要是针对现实生活中比较忙碌并且没有自己业余生活的人开发的,随着社会的发展,人们的生活也越来越快,压力也在不断的加大,反而没有了自己的休 ...

  5. 【java毕业设计】基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码)——俄罗斯方块游戏

    基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现,文章末尾 ...

  6. java毕业设计——基于java+J2ME+sqlserver的打飞机游戏设计与实现(毕业论文+程序源码)——打飞机游戏

    基于java+J2ME+sqlserver的打飞机游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+J2ME+sqlserver的打飞机游戏设计与实现,文章末尾附有本毕业设计的 ...

  7. 【java毕业设计】基于javaEE+原生Servlet+MySql的Web停车场管理系统设计与实现(毕业论文+程序源码)——停车场管理系统

    基于javaEE+原生Servlet+MySql的Web停车场管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的Web停车场管理系统设计 ...

  8. java毕业设计——基于java+J2ME的贪吃蛇游戏设计与实现(毕业论文+程序源码)——贪吃蛇游戏

    基于java+J2ME的贪吃蛇游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+J2ME的贪吃蛇游戏设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开题报告P ...

  9. STM32毕业设计——基于STM32+JAVA+Android的六足机器人控制系统设计与实现(毕业论文+程序源码)——六足机器人控制系统

    基于STM32+JAVA+Android的六足机器人控制系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于STM32+JAVA+Android的六足机器人控制系统设计与实现,文章末尾附有 ...

最新文章

  1. 某程序媛哀叹:北京好几套房,家庭收入200多万,但孩子是渣娃,人生没意义了!...
  2. Multi-task Learning(Review)多任务学习概述
  3. 华为北大等联手打造的Transformer竟在CV领域超过了CNN:多项底层视觉任务达到SOTA...
  4. 苹果外包爆料:你手机里的Siri,听到了嘿嘿嘿的声音
  5. python中plot柱状图-Matplotlib中柱状图bar使用
  6. 'vt100': unknown terminal type.
  7. 牛客网(剑指offer) 第十一题 二进制中1的个数
  8. 2018蓝桥杯省赛---java---B---8(日志统计)
  9. php curl header_PHP中的yield与协程(二十一节)
  10. 基于java的银行ATM系统设计(含源文件)
  11. SpringBoot - 日志选择与实现
  12. java label 边框_java中怎么给jlabel设置边框,多谢!
  13. PHP编码规范 代码样式风格规范
  14. 基于Visual Studio2012实现Windows8的metro界面笔迹手写识别文档
  15. 人之间的尊重是相互的_人和人之间,尊重永远是相互的,是礼貌,是美德,更是善良的表现...
  16. mysql中文乱码过滤_记一次mysql中文字符乱码的问题排查
  17. opendds协议服务器,OpenDDS 开发手册
  18. AlteraFPGA使用通用SPIFlash
  19. 技.艺.道:器-python一站式平台Jupyter(丘比特)入门
  20. 要么做,要么滚!没有试试看这一说

热门文章

  1. HCIP-DATACOM H12-831(101-120)
  2. 多对多业务,数据库水平切分架构一次搞定(58沈剑)
  3. 互动媒体作业之艺术作品赏析
  4. WORD插入摄氏华氏度及换算
  5. WPS Office 2019 v11.8.2专业增强版+教程
  6. 基于Halcon学习的一维码识别【十三】ean13.hdev
  7. Mybatis (总结完整)
  8. 快应用开发中常见的几个版本号~~
  9. 【有利可图网】双十一“亮眼”设计大赏来了!!
  10. 人工智能机器人——水中机器人