经典游戏贪食蛇的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(
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
基本类型包括:byte, short, int, long, char, float, double ......
Java
类库和常用类库介绍——序
作者:
zccst
Java
类库概念:
Java
的应用程序接口
(API)
以包的形式来组织,每个包提供了大量的相关类、接口和异常处理类,这些包的集合就是
Java
的类库
包名以
Java
开始的包是
Java
核心包
(Java Core Package)
;
包名以
Jav ......
题目:使用Java实现链表
思路:
链表的特点:链表的的元素之间通过指针连接起来。通常有一个头指针指向第一个元素,通过第一个元素可以访问到其他的元素。
链表中数据如何存储:链表中的每个元素应该由表示数据的域和指向其他元素的指针组成。
链表的常用操作:创建链表、在链表中添加元素(在最后添加或者在某个具体的 ......