java课程设计Word文档格式.docx

上传人:b****6 文档编号:21219240 上传时间:2023-01-28 格式:DOCX 页数:22 大小:115.26KB
下载 相关 举报
java课程设计Word文档格式.docx_第1页
第1页 / 共22页
java课程设计Word文档格式.docx_第2页
第2页 / 共22页
java课程设计Word文档格式.docx_第3页
第3页 / 共22页
java课程设计Word文档格式.docx_第4页
第4页 / 共22页
java课程设计Word文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

java课程设计Word文档格式.docx

《java课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《java课程设计Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

java课程设计Word文档格式.docx

软件:

集成开发环境Eclipse

三、功能需求描述

1、图形用户界面:

2048的最大特点就是玩家对图形界面里的数字进行操作,也就是是玩家与游戏的互动

2、当前分数SCORE与最高分数的显示:

在我们设计的2048游戏中当前分数取了页面内所有数字相加的值为分数,对玩家玩游戏的进展有直接性、客观性的展现;

同时,最高分数取了以往玩家退出游戏时所保存分数的最高分

3、数字颜色:

游戏中数字的颜色以2为首项的等比数列变化,即2、4、8、16、32、64、128、256、512、1024、2048.......对应的数字卡片变色

4、游戏的退出:

游戏退出时,我们采用弹出对话框的确认玩家是否真的要退出游戏,当然这样做更符合游戏人性化设计的观念。

功能图如下:

四、总体设计

简要设计流程:

程序结构说明:

;

import.*;

publicclassJava2048extendsJFrameimplementsKeyListener{

privatestaticfinallongserialVersionUID=1L;

Colorbackground=newColor(190,173,160);

ength());

();

}catch(Exceptione1){(null,"

找不到同目录下文件或文件已损坏!

"

"

提示"

;

};

}

(0);

}

}

});

restart();

}

voidrestart(){//重新开始

//若是初次运行游戏,则从文件中读入最高分

if(highestScore==0){}

Filefile=newFile("

);

BufferedReaderbr;

try{

br=newBufferedReader(newFileReader(file));

highestScore2=());

();

}catch(Exceptione){

(this,"

(0);

};

highestScore=highestScore2;

array=newint[4][4];

//清空游戏用2维数组

score=0;

//重置分数为零

biggestNumber=0;

//重置最大数字为零

//在游戏区随机生成两个2或4

generateRandom2or4();

//绘图方法

publicvoidpaint(Graphicsg){

gBuffer=g;

(background);

(30,40,185,90,20,20);

//画分数显示区

(245,40,185,90,20,20);

//画最高分显示区

(245,40,185,90,20,20);

(0,150,454,460,10,10);

//画主游戏区

(wordFont);

(wordColor);

("

SCORE"

90,70);

//画SCORE

BEST"

315,70);

//画BEST

(numberFont);

;

if(score<

10){

(score),110,115);

//画分数数字}elseif(score<

100){

(score),100,115);

//画分数数字

}elseif(score<

1000){

(score),85,115);

10000){

(score),73,115);

100000){

(score),60,115);

1000000){

(score),50,115);

}else{

(score),37,115);

if(highestScore<

(highestScore),325,115);

}elseif(highestScore<

(highestScore),315,115);

(highestScore),300,115);

(highestScore),288,115);

(highestScore),275,115);

(highestScore),265,115);

(highestScore),252,115);

(foreground);

for(inti=0;

i<

4;

i++){

for(intj=0;

j<

j++){

(10+j*112,160+i*112,100,100,10,10);

(10+j*112,160+i*112,100,100,10,10);

}

for(inti=0;

i<

4;

i++){

for(intj=0;

j<

j++){

switch(array[i][j]){

case2:

{

(newColor(238,228,218));

(newColor(122,113,104));

(newFont("

微软雅黑"

,50));

2"

45+j*112,230+i*113);

break;

case4:

(newColor(236,224,200));

(newColor(119,110,103));

(newFont("

4"

case8:

(newColor(242,177,121));

(newColor(250,248,235));

("

8"

break;

case16:

(newColor(245,149,101));

(newColor(252,244,242));

(newFont("

,45));

16"

33+j*112,230+i*111);

case32:

(newColor(245,124,95));

(newColor(255,241,249));

32"

case64:

(newColor(246,93,59));

(newColor(247,249,235));

64"

case128:

(newColor(237,206,113));

(newColor(248,246,255));

,40));

128"

23+j*112,228+i*111);

case256:

(newColor(237,204,97));

(newColor(245,244,249));

256"

case512:

(newColor(235,201,78));

(newColor(255,241,248));

512"

23+j*112,228+i*111);

case1024:

(newColor(237,197,63));

(newColor(240,246,244));

,35));

1024"

17+j*112,225+i*113);

case2048:

(newColor(238,194,46));

(newColor(250,249,255));

2048"

case4096:

(newColor(242,193,28));

4096"

case8192:

(newColor(236,173,57));

8192"

default:

publicvoidkeyPressed(KeyEvente){

if()=={

moveUp();

}elseif()=={

moveDown();

moveLeft();

moveRight();

if(biggestNumber>

1024){

switch(biggestNumber){

case2048:

{

if(this,"

挑战2048成功!

\n是否继续挑战"

=={

biggestNumber++;

//防止2048重复判断

}else{

restart();

repaint();

case4096:

挑战4096成功!

//防止4096重复判断

case8192:

挑战8192成功!

//防止8192重复判断

default:

if(judgeFail()){

(this,"

挑战失败!

restart();

repaint();

@Override

publicvoidkeyReleased(KeyEvente){

publicvoidkeyTyped(KeyEvente){

//判断是否已经失败,若失败则返回true,否则返回false

publicbooleanjudgeFail(){

for(intj=0;

for(inti=0;

process[i][0]=array[i][j];

process[i][1]=1;

for(inti=1;

intk=i;

while(k>

0){

if(process[k][0]==0){

returnfalse;

}elseif(process[k-1][0]==0){

}elseif(process[k-1][0]==process[k][0]){

}else{

break;

}

for(inti=3;

i>

-1;

i--){

process[3-i][0]=array[i][j];

process[3-i][1]=1;

for(inti=0;

for(intj=0;

process[j][0]=array[i][j];

process[j][1]=1;

for(intl=1;

l<

l++){

intk=l;

for(intj=3;

j>

j--){

process[3-j][0]=array[i][j];

process[3-j][1]=1;

if(array[i][j]==0){

returnfalse;

returntrue;

publicvoidmoveUp(){

ifGenerate2or4=false;

process[i][0]=array[i][j];

process[i][1]=1;

processProcess();

array[i][j]=process[i][0];

if(ifGenerate2or4){

generateRandom2or4();

//向下滑动,若各列均没有方块相消或移动,则返回false,否则返回true;

public

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1