• 大小: 11.59 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-12-11
  • 语言: Java
  • 标签: java  贪吃蛇  

资源简介

利用Java实现的贪吃蛇游戏设计,包含关卡、速度、分数等信息,有障碍物;符合贪吃蛇游戏的所有设计理念,贪吃蛇吃到食物,身体会自增等等。

资源截图

代码片段和文件信息

package mysnake;
import java.awt.Color;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;

import mysnake.snackWin;

class Node {
    private int x  y;
    public Node() {}
    public Node(int a  int b) {x = a; y = b;}
    public Node(Node tmp) {x = tmp.getX(); y = tmp.getY();}
    int getX() {return x;}
    int getY() {return y;}
    void setX(int a) {x = a;}
    void setY(int b) {y = b;}
}
public class Snack {
static final int GameLocX = 40  GameLocY = 40  GameWidth = 700  GameHeight = 500  Size = 10;
    static final int DIR[][] = {{0  -1}  {0  1}  {-1  0}  {1  0}};
    private List lt = new ArrayList();
    private int curDir;
    public Snack() {
        curDir = 3;
        lt.add(new Node(40  40)); //设置贪吃蛇的初始位置
    }
    int length() {return lt.size();} //蛇的长度
    int getDir() {return curDir;}
    void draw(Graphics g)   //画蛇
    {
        g.setColor(Color.BLACK);
        for(int i = 0; i < lt.size(); i++) {
            g.fillRect(lt.get(i).getX() lt.get(i).getY() 20 20); //设置蛇的初始位置和大小
        }
    }
    boolean Dead() { //判定死亡
        for(int i = 1; i < lt.size(); i++) {
            if(lt.get(0).getX() == lt.get(i).getX() && lt.get(0).getY() == lt.get(i).getY()) //自己碰到自己
                return true;
        }
        if(lt.get(0).getX()GameWidth+GameLocX-20||lt.get(0).getY()>GameHeight+GameLocY-20||lt.get(0).getY() return true;
        
        int mark = 0;
     if(lt.get(0).getX()>160 && lt.get(0).getX()<640)
     {
     if(lt.get(0).getY()>120 && lt.get(0).getY()<200)
     mark++;
     if(lt.get(0).getY()>380 && lt.get(0).getY()<460)
     mark++;
     }
     if(mark > 0)
     return true;
return false;
    }
    Node headMove() //贪吃蛇移动
    {
        int tx = lt.get(0).getX() + snackWin.Size * DIR[curDir][0];
        int ty = lt.get(0).getY() + snackWin.Size * DIR[curDir][1];
        if(tx > snackWin.GameLocX + snackWin.GameWidth - snackWin.Size) tx = snackWin.GameLocX;
        if(tx < snackWin.GameLocX) tx = snackWin.GameWidth + snackWin.GameLocX - snackWin.Size;
        if(ty > snackWin.GameLocY + snackWin.GameHeight - snackWin.Size) ty = snackWin.GameLocY;
        if(ty < snackWin.GameLocY) ty = snackWin.GameHeight + snackWin.GameLocY - snackWin.Size;
        Node tmp = new Node(tx ty);
        return tmp;
    }
    void move()
    {
        Node head = headMove()  newNode = new Node();
        boolean eat = false;  //初始化没吃到
        if(Math.abs(head.getX() - snackWin.rx) <=10 && Math.abs(head.getY() - snackWin.ry) <= 10) {
            eat = true; //吃到食物
            newNode = new Node(lt.get(lt.size() - 1));
            while(true)
            {
             int mark = 0;     
             int rxx = (int) (Math.random() * (700) + 40);
             int ryy = (int) (Math.random() * (500) + 40);     
     

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2017-07-04 00:16  Snake\.classpath

     文件        381  2017-07-04 00:16  Snake\.project

     文件        598  2017-07-04 00:16  Snake\.settings\org.eclipse.jdt.core.prefs

     文件        849  2017-07-10 14:08  Snake\bin\mysnake\Node.class

     文件       3552  2017-07-10 14:08  Snake\bin\mysnake\Snack.class

     文件        872  2017-07-06 18:07  Snake\bin\mysnake\snackmain.class

     文件       1191  2017-07-10 14:09  Snake\bin\mysnake\snackWin$snackThread.class

     文件       5177  2017-07-10 14:09  Snake\bin\mysnake\snackWin.class

     文件       3891  2017-07-10 14:08  Snake\src\mysnake\Snack.java

     文件        535  2017-07-04 13:35  Snake\src\mysnake\snackmain.java

     文件       6041  2017-07-10 14:09  Snake\src\mysnake\snackWin.java

     目录          0  2017-07-06 18:07  Snake\bin\mysnake

     目录          0  2017-07-04 11:11  Snake\src\mysnake

     目录          0  2017-07-04 00:16  Snake\.settings

     目录          0  2017-07-06 18:07  Snake\bin

     目录          0  2017-07-04 00:17  Snake\src

     目录          0  2017-07-04 00:16  Snake

----------- ---------  ---------- -----  ----

                23388                    17


评论

共有 条评论