Java 贪吃蛇 最简易地实现方法 超简短代码实现 (附源码 详解)

  分享一个我刚刚写的贪吃蛇小游戏,非常简短的代码实现方法。这可能是全网最简单实现方法,效果图如下:

Java 贪吃蛇 最简易地实现方法 超简短代码实现 (附源码 详解)_第1张图片Java 贪吃蛇 最简易地实现方法 超简短代码实现 (附源码 详解)_第2张图片

 

 有多简短呢 ? 上代码!!

  一共四个类!

Food类

package com.snake;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;

public class Food {//食物也是一个长宽各为20的小格子
	
	public Point point=null;	
	public final int width=20;
	public final int height=20;
	
	public Food(Point p) {
		this.point=p;
	}
	
	public void drawFood(Graphics g) {
		g.setColor(Color.RED);
		g.fillRect(this.point.x, this.point.y, this.width, this.height);
	}

}

Snake类

package com.snake;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;

public class Snake {
	
	
	public Point point=null; //一直蛇其实就是一个小格子
	
	public  final int width=20;
	public  final int height=20;
	
	public Snake(Point p) {
		this.point=p;
	}
	
	public void drawSnake(Graphics g) {
		g.setColor(Color.black);
		g.fillRect(this.point.x,this.point.y, this.width,this.height);
	
	}

}

面板

Java 贪吃蛇 最简易地实现方法 超简短代码实现 (附源码 详解)_第3张图片

【面板就四个方法,下面会附完整代码,这里缩进代码看的更直观!】

主类是一个窗口

package com.snake;

import java.awt.Graphics;

import javax.swing.JFrame;

public class Game_Frame extends JFrame {
	public final static int  width=400;
	public  final static int  height=400;	
	Game_Panel myPanel=null;
	
	public static void main(String[] args) {
		new	Game_Frame();
	     
	}

	  public Game_Frame() {
		  this.setTitle("贪吃蛇---作者:See---qq:3492625357");
		  this.setSize(width, height);
		  this.setVisible(true);
		  this.setLocationRelativeTo(null);
		  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		  Game_Panel myPanel=new Game_Panel();
		  this.add(myPanel);
		  new Thread(myPanel).start();
	  }
}

什么 !? 没了?  

对,没了。 

 

解释一下代码实现,Snake 和 Food  其实就是一个长宽各为20像素的小正方形。窗口大小为400*400,相当于400个小正方形。

面板里用上下左右控制小蛇的移动(黑色格子),移动效果(加头,去尾)当小蛇和Food(红色格子)相撞时,则增加一个长度。(前面加,后面不去尾)。当蛇头与身子相撞(最前面的黑色小格子与其他黑色小格子相撞)则宣布游戏结束。

再听我这么一解释,是不是觉得So TMD easy!  

 

写程序就是要想到什么就写什么,写错了大不了删除再来嘛,只要你敢写,就没有实现不了的方法。

 

下面附面板完整代码

package com.snake;

import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.LinkedList;
import java.util.Random;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class Game_Panel extends JPanel implements Runnable,KeyListener{
	
	
	
	 public int DRIECTION=38;//刚开始的时候 让小蛇向上移动
	 public boolean alive=true;//判断小蛇是否死亡的
	 Random ran=new Random();//用来产生Food 的随机坐标 
	 
	
	
	 LinkedList snake=new LinkedList();
	Food food=new Food(new Point(ran.nextInt(Game_Frame.width/20)*20,ran.nextInt(Game_Frame.height/20)*20));
	

	 public Game_Panel() {
		 
	    snake.add(new Snake(new Point(180,180)));//初始化一个蛇头
		this.addKeyListener(this);
		this.setFocusable(true);
		
		
}
	
	
	public void  paint(Graphics g) {
		for(int i=0;i

【因为代码简短所以视觉上感觉一般,你可以再此基础上加一些元素,比如 蛇的图片,音乐,颜色效果等等。总之核心部分就是这么简单!  If you feel nice,call me!】q:3492625357

你可能感兴趣的:(Java 贪吃蛇 最简易地实现方法 超简短代码实现 (附源码 详解))