关键词不能为空

当前您在: 主页 > 英语 >

谚语英语java小游戏设计

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-28 01:30
tags:

谚语英语-重播

2021年1月28日发(作者:可能英语)





华北科技学院计算机学院综合性实验















课程名称


JAVA


程序设计



实验学期


2014



2015


学年




1


学期



学生所在院部



计算机学院



年级



专业班级



学生姓名



学号



任课教师



实验成绩






计算机学院制








叮叮小文库




Java


程序设计》课程综合性实验报告



开课实验室:基础四












































2016




11




28




实验题目



一、实验目的



基于

< br>java


的拼图游戏



程序使用


Eclipse


集成开发环境完成,熟悉并掌握在


Eclipse


开发环境下编写


Java

< p>
程序。



二、设备与环境



硬件:多媒体计算机



软件:


Windows


系列操作系统、


JDK


开发包、


Eclipse


开发环境



三、实验内容及要求



1.


实验要求



使用


Java swing


编程实现拼 图游戏。游戏功能是将一幅图片分割成


5*5


的规则小图片,游


戏开始时将


25


个小图片随机摆放,玩 家能够参考原图拼接出正确的图片。



游戏规则:



25


个小图片中有一个为空白图片,


玩家可以单击和空白小图片相邻的任一个


小图片(上、下、左、右均可)


,即可将单击的小图片与空白小图片交换位置。通过有限次的移


动, 即可将随机分布的小图片恢复成原图的样式。



2.


实验内容




1


)各类及主要成员函数的功能















2


)具体代码及实现如下




①程序入口主方法:



//


第一部分



public



class


GreedSnake {


//


建立主类


GreeSnake




public



static



void


main(String[] args) {


SnakeModel model =


new


SnakeModel(20,30);


//


初始化蛇出现的位置



SnakeControl control =


new


SnakeControl(model);


-


1


java


源代码及其功能



序号



1


2


类名



GreedSnake



SnakeControl



主要功能



该类为程序入口,含有


main


方法。



实现控制运行等总体要求,实现方向键控制蛇的方


向,空格键控制游戏暂停或继续,还有 分数等。



该类实现蛇的结构和具体运动,如判断食物是否和< /p>


怎样被吃掉及判断后的动作。



该类实现 组成蛇身的单位


-


食物。



该类实现画板功能,用黑色画蛇身,红色画食物。



3


4


5


SnakeModel



Node



SnakeView



叮叮小文库



SnakeView view =


new


SnakeView(model,control);



//


添加一个观察者,让


view

< br>成为


model


的观察者



erver(view);


(


new


Thread(model)).start();


}


}


②实现对蛇身的控制要求




//


第二部分



//


游戏的


Model


类,负责所有 游戏相关数据及运行




class


SnakeControl


implements


KeyListener{

< p>
//SnakeControl


实现接口


KeyL istener


,键盘监听



SnakeModel


model


;


public


SnakeControl(SnakeModel model){


< /p>


this


.


model

< br> = model;


}



public



void


keyPressed(KeyEvent e) {



int


keyCode = Code();



if


(


model

< br>.


running


){


//


运行状态下,处理的按键




switch


(keyCode) {



case


KeyEvent.


VK_UP


:



model


.changeDirection(SnakeM odel.


UP


);



break


;



case


KeyEvent.


VK_DOWN


:



model

< p>
.changeDirection(SnakeModel.


DOWN< /p>


);



break


;



case


KeyEvent.


VK_LEFT


:



model

< p>
.changeDirection(SnakeModel.


LEFT< /p>


);



break


;



case


KeyEvent.


VK_RIGHT


:



model

< p>
.changeDirection(SnakeModel.


RIGHT


);



break


;



case


KeyEvent.


VK_ADD


:



case


KeyEvent.


VK_ PAGE_UP


:


//


向上翻加速




model


.speedUp();



break


;



case


KeyEvent.


VK_SUBTRACT


:



case


KeyEvent.


VK_ PAGE_DOWN


:


//


减速




model


.speedDown();



break


;



case


KeyEvent.


VK_SPACE


:



case


KeyEvent.


VK_P


:



model


.changePauseState();


//


暂停进入睡眠状态




break


;



default


:


}


}



//


任何情况下处理的按键,按键导致重新启动游戏




if


(keyCode == KeyEvent.


VK_R


||


keyCode == KeyEvent.


VK_S


||


keyCode == KeyEvent.


VK_ENTER


) {



model


.reset();


}


}



public



void


keyReleased(KeyEvent e) {


}



public



void


keyTyped(KeyEvent e) {


}


-


2


叮叮小文库



}


③实现蛇的结构和具体运动:



//


第三部分



@SuppressWarnings


(


“unchecke d”


)


class


SnakeModel


extends


Observable


implements


Runnable {


//SnakeModel


继承


Observable


类并且实现接口


Runn able



ainfra


[][]


matrix


;


//


指示位置上有没蛇体或食物



LinkedList


nodeArray


=


new


LinkedList();


//


蛇体



Node


food


;


int



maxX


;


int



maxY


;


int



direction


= 2;


//


蛇运行的方向



ainfra



running


=


false


;


//


运行状态




int



timeInterval


= 200;


//


时间间隔,毫秒



double



speedChangeRate


= 0.75;


//


每次得速度变化率



ainfra



paused


=


false


;


//


暂停标志




int



score


= 0;


//


得分



int



countMove


= 0;


//


吃到食物前移动的次数




// UP and DOWN should be even



// RIGHT and LEFT should be odd



public



static



final



int



UP


= 2;


public



static



final



int



DOWN


= 4;


public



static



final



int



LEFT


= 1;


public



static



final



int



RIGHT


= 3;



public


SnakeModel(


int


maxX,


int


maxY) {



this


.


maxX

< br> = maxX;



this


.


maxY


= maxY;


reset();


}



public



void


reset(){



direction


= SnakeModel.


UP


;


//


蛇运行的方向




timeInterval


= 500;


//


时间间隔,毫秒




paused


=


false


;


//


暂停标志




score


= 0;


//


得分




countMove


= 0;


//


吃到食物前移动的次数





// initial ainfr,


全部清


0




matrix


=


new



ainfra


[


maxX


][];



for


(


int


I = 0; I <


maxX


; ++i) {



matrix


[i] =


new



ainfra


[


maxY


];


Arrays.


fill

< p>
(


matrix


[i],


false


);


}



// initial the snake




//


初始化蛇体,如果横向位置超过


20


个 ,长度为


10


,否则为横向位置的一半




int


initArrayLength =


maxX


> 20 ? 10 :


maxX


/ 2;



nodeArray


.clear();



for


(


int


I = 0; I < initArrayLength; ++i) {



int


x =


maxX


/ 2 + I;


//ma xX


被初始化为


20




int


y =


maxY


/ 2;


// maxY


被初始化为


30




//nodeArray[x,y]: [10,15]-[11,15]-[12



15]~~[20,15]




//


默认的 运行方向向上,所以游戏一开始


nodeArray


就变为:< /p>




// [10



14]-[10


< p>
15]-[11



15]-[12



15]~~[19



15]




node Array


.addLast(


new


Node(x, y));


-


3

谚语英语-重播


谚语英语-重播


谚语英语-重播


谚语英语-重播


谚语英语-重播


谚语英语-重播


谚语英语-重播


谚语英语-重播



本文更新与2021-01-28 01:30,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/575968.html

java小游戏设计的相关文章