贪吃蛇游戏代码Word格式文档下载.docx

上传人:b****8 文档编号:22531986 上传时间:2023-02-04 格式:DOCX 页数:20 大小:17.34KB
下载 相关 举报
贪吃蛇游戏代码Word格式文档下载.docx_第1页
第1页 / 共20页
贪吃蛇游戏代码Word格式文档下载.docx_第2页
第2页 / 共20页
贪吃蛇游戏代码Word格式文档下载.docx_第3页
第3页 / 共20页
贪吃蛇游戏代码Word格式文档下载.docx_第4页
第4页 / 共20页
贪吃蛇游戏代码Word格式文档下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

贪吃蛇游戏代码Word格式文档下载.docx

《贪吃蛇游戏代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《贪吃蛇游戏代码Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。

贪吃蛇游戏代码Word格式文档下载.docx

存盘退出"

jmi3.addActionListener(this);

jmi5=newJMenuItem("

接着上一次玩"

jmi5.addActionListener(this);

jmi4=newJMenuItem("

退出"

jmi4.addActionListener(this);

jp=newJPanel()

publicvoidpaint(Graphicsg){

g.setFont(newFont("

宋体"

Font.BOLD,40));

g.drawString("

play"

250,200);

}

};

jm1.add(jmi6);

jm1.add(jmi1);

jm1.add(jmi2);

jm1.add(jmi3);

jm1.add(jmi5);

jm1.add(jmi4);

jmb.add(jm1);

this.setJMenuBar(jmb);

this.add(jp);

this.setSize(650,500);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==jmi6)

{System.out.println("

ok"

wp=newWormpanel();

this.addKeyListener(wp);

this.add(wp);

if(e.getSource()==jmi4)

System.exit(0);

if(e.getSource()==jmi2)

this.wp.setSpeed(0);

if(e.getSource()==jmi1)

this.wp.setSpeed

(1);

if(e.getSource()==jmi3)

ArrayList<

Wormpoint>

al=this.wp.vp;

FileWriterfw=null;

BufferedWriterbw=null;

try{

fw=newFileWriter("

D:

/Recording.txt"

bw=newBufferedWriter(fw);

for(inti=0;

i<

al.size();

i++)

{

Wormpointwm=al.get(i);

if(i==0)

{

intdire=wm.getDirestion();

bw.write(dire+"

\r\n"

}

intx=wm.getX();

inty=wm.getY();

bw.write(x+"

"

+y+"

}

}catch(IOExceptionargs){

args.printStackTrace();

}finally{

try{

bw.flush();

bw.close();

fw.close();

System.exit(0);

}catch(IOExceptionargs){

args.printStackTrace();

if(e.getSource()==jmi5)

{wp=newWormpanel();

al=newArrayList<

();

FileReaderfr=null;

BufferedReaderbr=null;

fr=newFileReader("

br=newBufferedReader(fr);

Stringst;

st=br.readLine();

Wormpointhead=newWormpoint();

head.setDirestion(Integer.parseInt(st));

Stringshead[]=st.split("

head.setX(Integer.parseInt(shead[0]));

head.setY(Integer.parseInt(shead[1]));

al.add(head);

while((st=br.readLine())!

=null)

Wormpointwm=newWormpoint();

Stringstr[]=st.split("

wm.setX(Integer.parseInt(str[0]));

wm.setY(Integer.parseInt(str[1]));

al.add(wm);

this.wp.vp=al;

br.close();

fr.close();

}

//面板类进行界面操作

 

importjava.awt.List;

importjava.awt.event.KeyEvent;

importjava.awt.event.KeyListener;

importjava.util.*;

importjava.util.Timer;

publicclassWormpanelextendsJPanelimplementsKeyListener{

ArrayList<

vp=newArrayList<

Wormpointpoint;

Wormpointwp;

Stringreco;

intspeed;

booleanismove=true;

Recorderrecor;

publicintgetSpeed(){

returnspeed;

publicvoidsetSpeed(intspeed){

this.speed=speed;

publicWormpanel()

{speed=1;

recor=newRecorder();

recor.filereader();

reco=recor.recorder;

point=newWormpoint();

point.setWidth(10);

point.setX((int)(Math.random()*450));

point.setY((int)(Math.random()*380));

for(inti=0;

Wormpoint.length;

wp=newWormpoint();

wp.setX(20);

wp.setY(20-wp.getWidth());

vp.add(wp);

Timert=newTimer();

t.schedule(newMytask(),0,100);

publicvoidtouch()

{booleanb=false;

Wormpointw=vp.get(0);

switch(w.getDirestion())

{case1:

if((w.getX()<

point.getX()+point.getWidth()&

&

w.getX()>

point.getX())||(w.getX()+w.getWidth()<

w.getX()+w.getWidth()>

point.getX()))

if(w.getY()<

point.getY()+point.getWidth()&

w.getY()>

point.getY())

{System.out.print("

touch"

ismove=false;

point=newWormpoint();

point.setWidth(10);

point.setX((int)(Math.random()*450));

point.setY((int)(Math.random()*380));

Wormpoint.length++;

recor.cadd();

if(recor.getcount()*10>

Integer.parseInt(reco))

recor.filewriter();

}

break;

case2:

if((w.getX()<

if(w.getY()+w.getWidth()<

w.getY()+w.getWidth()>

{

point=newWormpoint();

point.setWidth(10);

point.setX((int)(Math.random()*450));

point.setY((int)(Math.random()*380));

Wormpoint.length++;

recor.cadd();

if(recor.getcount()*10>

recor.filewriter();

case3:

if((w.getY()>

point.getY()&

w.getY()<

point.getY()+point.getWidth())||(w.getY()+w.getWidth()>

w.getY()+w.getWidth()<

point.getY()+point.getWidth()))

if(w.getX()>

point.getX()&

w.getX()<

point.getX()+point.getWidth())

case4:

if((w.getY()>

if(w.getX()+w.getWidth()>

w.getX()+w.getWidth()<

{

publicvoidpaint(Graphicsg)

super.paint(g);

g.fillRect(0,0,450,400);

g.setColor(Color.cyan);

if(!

point.isIseate())

{g.fillOval(point.getX(),point.getY(),point.getWidth(),point.getWidth());

g.setColor(Color.DARK_GRAY);

g.setFont(newFont("

Font.BOLD,20));

g.drawString("

我的得分:

"

+recor.getcount()*10,460,50);

我的记录:

+reco,460,80);

Wormpointw;

vp.size();

{w=vp.get(i);

g.setColor(Color.red);

g.fill3DRect(w.getX(),w.getY(),w.getWidth(),w.getWidth(),false);

g.setColor(Color.black);

g.drawRect(w.getX(),w.getY(),w.getWidth(),w.getWidth());

classMytaskextendsTimerTask{

publicvoidrun(){

Wormpointw=vp.get(0);

Wormpointxin=newWormpoint();

intdirect=w.getDirestion();

switch(direct)

case1:

xin.setX(w.getX());

xin.setDirestion(w.getDirestion());

xin.setY(w.getY()-w.getWidth()*speed);

if(xin.getY()<

=0)

xin.setY(400-xin.getWidth());

break;

//up

case2:

xin.setY(w.getY()+w.getWidth()*speed);

if(xin.getY()+xin.getWidth()>

=400)

xin.setY(0);

//down

case3:

xin.setX(w.getX()-w.getWidth()*speed);

xin.setY(w.getY());

if(xin.getX()<

xin.setX(450-xin.getWidth());

//left

case4:

xin.setX(w.getX()+w.getWidth()*speed);

if(xin.getX()+xin.getWidth()>

=450)

xin.setX(0);

//right

vp.add(0,xin);

touch();

if(ismove&

speed!

vp.remove(vp.size()-1);

ismove=true;

repaint();

publicvoidkeyPressed(KeyEvente){

if(e.getKeyCode()==e.VK_UP)

{

vp.get(0).setDirestion

(1);

if(e.getKeyCode()==e.VK_DOWN)

vp.get(0).setDirestion

(2);

//down

if(e.getKeyCode()==e.VK_LEFT)

vp.get(0).setDirestion(3);

//left

if(e.getKeyCode()==e.VK_RIGHT)

vp.get(0).setDirestion(4);

publicvoidkeyReleased(KeyEvente){

//TODOAuto-generatedmethodstub

publicvoidkeyTyped(KeyEvente){

//单元类

publicclassWormpoint{

privateintx;

privateinty;

privateintdirestion=2;

staticintlength=5;

privatebooleaniseate=false;

publicbooleanisIseate(){

returniseate;

publicvoidsetIseate(booleaniseate){

this.iseate=iseate;

publicintgetLength(){

returnlength;

publicvoidsetLength(intlength){

this.length=length;

privateintwidth=8;

publicintgetWidth(){

returnwidth;

publicvoidsetWidth(intwidth){

this.width=width;

publicintgetDirestion(){

returndirestion;

publicvoidsetDirestion(intdirestion){

this.direstion=direstion;

publicintgetX(){

returnx;

publicvoidsetX(intx){

this.x=x;

publicintgetY(){

returny;

publicvoidsetY(inty){

this.y=y;

//记录类

publicclassRecorder{

privateintcount=0;

publicStringrecorder;

publicvoidcadd()

count++;

publicintgetcount()

returncount;

publicvoidfilereader

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

当前位置:首页 > IT计算机 > 互联网

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

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