• 大小: 49KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: Java
  • 标签:

资源简介

Java开发的游戏 贪吃蛇 的完整代码

资源截图

代码片段和文件信息

import java.awt.Color;

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.Jframe;
import javax.swing.JOptionPane;


public class Myframe extends Jframe implements MouseListenerRunnableKeyListener{
@Override
public void keyPressed(KeyEvent arg0) {
int key=arg0.getKeyCode();
switch(key){
case 37:if(fx!=right)fx=left;break; 
case 38:if(fx!=down)fx=up;break; 
case 39:if(fx!=left)fx=right;break; 
case 40:if(fx!=up)fx=down;break;
default:break;
}
//System.out.println(key);
}

@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

public Myframe(){
     this.setIconImage(new ImageIcon(“a.jpg“).getImage());
     this.setSize(750450);
     this.settitle(“destiny“);
     int width=Toolkit.getDefaultToolkit().getScreenSize().width;
     int height=Toolkit.getDefaultToolkit().getScreenSize().height;
     this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
     this.setLocation(350100);
     this.addMouseListener(this);
     this.addKeyListener(this);
     this.setResizable(false);
     this.setVisible(true); 
     start();
     thread.start();
     thread.suspend();
     thread.resume();
}

private int x=0y=0flag=-1time=1000000;
private int[][] map=new int[100][100];

Thread thread=new Thread(this);
int rx=0ry=0score=0diffcult=1;
int last_score=-1head_xhead_yfood_xfood_y
fx=1head_id=500tail_id=500id=500;
int body[][]=new int[1000][2];
boolean end=false;

int countZero(){
int zero=0;
for(int i=0;i<18;i++)
for(int j=0;j<18;j++){
if(map[i][j]==0){
zero++;
}
}
return zero;
}

boolean getrand(){
if(countZero()==0){
return false;
}
while(true){
rx=(int)(Math.random()*18);
ry=(int)(Math.random()*18);
if(map[rx][ry]==0){
return true;
}
    }
}

class Node{
int xy;
Node(int xint y){
this.x=x;
this.y=y;
this.next=null;
}
String s;
boolean equals(Node equ){
if(this.x==equ.x&&this.y==equ.y){
return true;
}else{
return false;
}
}
Node next;
}

Node head=nulltail=nullfood=null;
void writeMap(){
this.repaint();
}
void start(){
while(true){
String str=JOptionPane.showInputDialog(“请输入难度等级(1到5之间的一个整数难度1为最简单输入exit退出):“);
if(str!=null&&str.length()==1&&str.charAt(0)>=‘1‘&&str.charAt(0)<=‘5‘){
diffcult=str.charAt(0)-‘0‘;
break;
}else if(“exit“.equals(str)){
System.exit(0);
}else{
JOptionPane.sh

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-02-25 12:59  Game2\
     文件         301  2017-02-20 21:15  Game2\.classpath
     文件         381  2017-02-20 21:15  Game2\.project
     目录           0  2017-02-25 12:59  Game2\.settings\
     文件         598  2017-02-20 21:15  Game2\.settings\org.eclipse.jdt.core.prefs
     文件       10906  2017-02-17 12:43  Game2\a.JPG
     文件       43589  2017-02-17 22:23  Game2\b.JPG
     目录           0  2017-02-25 12:59  Game2\bin\
     文件         685  2017-02-22 17:07  Game2\bin\Myframe$Node.class
     文件        8585  2017-02-22 17:07  Game2\bin\Myframe.class
     文件         417  2017-02-22 17:07  Game2\bin\Text.class
     目录           0  2017-02-25 12:59  Game2\src\
     文件        7144  2017-02-21 14:22  Game2\src\Myframe.java
     文件         829  2017-02-20 21:17  Game2\src\Text.java

评论

共有 条评论