经典游戏贪食蛇的java实现
学习了线程,向量泛型编程,可以通过一个实例来应用所学知识,本课实现了经典游戏贪食蛇,自认为结构还算合理于2009年8月12日,16:05分
实现贪食蛇的思路
1。首先定义窗口200X400 ,实现控制1个矩形方块20X20
2。通过按键控制方块移动
3。实现线程控制方块移动每次一格(20X20),通过按键改变方向
4.实现在窗口中随机出现可以吃的小块 作为要是20的倍数
5.实现方块和可以吃的小块碰撞
6.将蛇的身体每一块定义为Vector,有每块对应一个对象
Node{
int x;
int y;
int nextDir;
}
7。实现死亡判定和分数判定
第一个类:
import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class SnakeFrame extends JFrame implements KeyListener{
public JPanel gamePanel;//游戏面板
public Vector<Node>allNode=new Vector<Node>(); // 所有结点
class Node{
int x;
int y;
int nextDir;
public Node(int x,int y,int d)
{
this.x=x;
this.y=y;
this.nextDir=d;
}
};
public static final int S_UP=1;
public static final int S_DOWN=2;
public static final int S_LEFT=3;
public static final int S_RIGHT=4;
public static final int S_STOP=-1;
//头节点
public Node head=new Node(80,80,SnakeFrame.S_LEFT);
public Node eatNode;
public Random rand=new Random();
public SnakeFrame()
{
this.setBounds(0, 0, 200, 400);
this.setTitle("贪食蛇");
this.setClosed(
相关文档:
一:准备 www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
1. build vserv-tcpip-0.9.2-src
在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......
public String makeStars(int size, char ch) {
if(size < 1) {
throw new IllegalArgumentException("size must be greater than 0");
}
char[] chs = new char[size];
for(int i = 0; ......
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド?スタブ
List li = ......
01. 说出ArrayList,Vector的区别,HashMap和Hashtable的区别。
02. final, finally, finalize的区别。
03. abstract class和interface有什么区别?
04. 什么时候用assert。
05. GC是什么? 为什么要有GC?&nb ......