JAVA简单小游戏源代码

连连看的小源码

package Lianliankan;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class lianliankan implements ActionListener

{

JFrame mainFrame; //主面板

Container thisContainer;

JPanel centerPanel,southPanel,northPanel; //子面板

JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组

JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮

JLabel fractionLable=new JLabel("0"); //分数标签

JButton firstButton,secondButton; //

分别记录两次62616964757a686964616fe59b9ee7ad9431333335326239被选中的按钮

int grid[][] = new int[8][7];//储存游戏按钮位置

static boolean pressInformation=false; //判断是否有按钮被选中

int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标

int i,j,k,n;//消除方法控制代码(code)是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。

对于字符和Unicode数据的位模式的定义,此模式代表特定字母、数字或符号(例如 0x20 代表一个空格,而 0x74 代表字符“t”)。一些数据类型每个字符使用一个字节;每个字节可以具有 256 个不同的位模式中的一个模式。

在计算机中,字符由不同的位模式(ON 或 OFF)表示。每个字节有 8 位,这 8 位可以有 256 种不同的 ON 和 OFF 组合模式。对于使用 1 个字节存储每个字符的程序,通过给每个位模式指派字符可表示最多 256 个不同的字符。2 个字节有 16 位,这 16 位可以有 65,536 种唯一的 ON 和 OFF 组合模式。使用 2 个字节表示每个字符的程序可表示最多 65,536 个字符。

单字节代码页是字符定义,这些字符映射到每个字节可能有的 256 种位模式中的每一种。代码页定义大小写字符、数字、符号以及 !、@、#、% 等特殊字符的位模式。每种欧洲语言(如德语和西班牙语)都有各自的单字节代码页。

虽然用于表示 A 到 Z 拉丁字母表字符的位模式在所有的代码页中都相同,但用于表示重音字符(如"é"和"á")的位模式在不同的代码页中却不同。如果在运行不同代码页的计算机间交换数据,必须将所有字符数据由发送计算机的代码页转换为接收计算机的代码页。如果源数据中的扩展字符在接收计算机的代码页中未定义,那么数据将丢失。

如果某个数据库为来自许多不同国家的客户端提供服务,则很难为该数据库选择这样一种代码页,使其包括所有客户端计算机所需的全部扩展字符。在代码页间不停地转换需要花费大量的处理时间。

JAVA简单小游戏源代码大全

表1. CheckerDrag.java // CheckerDrag.javaimport java.awt.*;import java.awt.event.*;public class CheckerDrag extends java.applet.Applet{ // Dimension of checkerboard square. // 棋盘上每个小方格的尺寸 final static int SQUAREDIM = 40; // Dimension of checkerboard -- includes black outline. // 棋盘的尺寸 – 包括黑色的轮廓线 final static int BOARDDIM = 8 * SQUAREDIM 2; // Dimension of checker -- 3/4 the dimension of a square. // 棋子的尺寸 – 方格尺寸的3/4 final static int CHECKERDIM = 3 * SQUAREDIM / 4; // Square colors are dark green or white. // 方格的颜色为深绿色或者白色 final static Color darkGreen = new Color (0, 128, 0); // Dragging flag -- set to true when user presses mouse button over checker // and cleared to false when user releases mouse button. // 拖动标记 --当用户在棋子上按下鼠标按键时设为true, // 释放鼠标按键时设为false boolean inDrag = false; // Left coordinate of checkerboards upper-left corner. // 棋盘左上角的左方向坐标 int boardx; // Top coordinate of checkerboards upper-left corner. //棋盘左上角的上方向坐标 int boardy; // Left coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原点(左上角)的左方向坐标 int ox; // Top coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原点(左上角)的上方向坐标 int oy; // Left displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按键时的鼠标坐标与棋子矩形原点之间的左方向位移 int relx; // Top displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按键时的鼠标坐标与棋子矩形原点之间的上方向位移 int rely; // Width of applet drawing area. // applet绘图区域的宽度 int width; // Height of applet drawing area. // applet绘图区域的高度 int height; // Image buffer. // 图像缓冲 Image imBuffer; // Graphics context associated with image buffer. // 图像缓冲相关联的图形背景 Graphics imG; public void init () { // Obtain the size of the applets drawing area. // 获取applet绘图区域的尺寸 width = getSize ().width; height = getSize ().height; // Create image buffer. // 创建图像缓冲 imBuffer = createImage (width, height); // Retrieve graphics context associated with image buffer. // 取出图像缓冲相关联的图形背景 imG = imBuffer.getGraphics (); // Initialize checkerboards origin, so that board is centered. // 初始化棋盘的原点,使棋盘在屏幕上居中 boardx = (width - BOARDDIM) / 2 1; boardy = (height - BOARDDIM) / 2 1; // Initialize checkers rectangles starting origin so that checker is // centered in the square located in the top row and second column from // the left. // 初始化棋子矩形的起始原点,使得棋子在第一行左数第二列的方格里居中 ox = boardx SQUAREDIM (SQUAREDIM - CHECKERDIM) / 2 1; oy = boardy (SQUAREDIM - CHECKERDIM) / 2 1; // Attach a mouse listener to the applet. That listener listens for // mouse-button press and mouse-button release events. // 向applet添加一个用来监听鼠标按键的按下和释放事件的鼠标监听器 addMouseListener (new MouseAdapter () { public void mousePressed (MouseEvent e) { // Obtain mouse coordinates at time of press. // 获取按键时的鼠标坐标 int x = e.getX (); int y = e.getY (); // If mouse is over draggable checker at time // of press (i.e., contains (x, y) returns // true), save distance between current mouse // coordinates and draggable checker origin // (which will always be positive) and set drag // flag to true (to indicate drag in progress). // 在按键时如果鼠标位于可拖动的棋子上方 // (也就是contains (x, y)返回true),则保存当前 // 鼠标坐标与棋子的原点之间的距离(始终为正值)并且 // 将拖动标志设为true(用来表明正处在拖动过程中) if (contains (x, y)) { relx = x - ox; rely = y - oy; inDrag = true; } } boolean contains (int x, int y) { // Calculate center of draggable checker. // 计算棋子的中心位置 int cox = ox CHECKERDIM / 2; int coy = oy CHECKERDIM / 2; // Return true if (x, y) locates with bounds // of draggable checker. CHECKERDIM / 2 is the // radius. // 如果(x, y)仍处于棋子范围内则返回true // CHECKERDIM / 2为半径 return (cox - x) * (cox - x) (coy - y) * (coy - y) boardx && tmpoy > boardy && tmpox CHECKERDIM < boardx BOARDDIM && tmpoy CHECKERDIM < boardy BOARDDIM) { ox = tmpox; oy = tmpoy; repaint (); } } } }); } public void paint (Graphics g) { // Paint the checkerboard over which the checker will be dragged. // 在棋子将要被拖动的位置上绘制棋盘 paintCheckerBoard (imG, boardx, boardy); // Paint the checker that will be dragged. // 绘制即将被拖动的棋子 paintChecker (imG, ox, oy); // Draw contents of image buffer. // 绘制图像缓冲的内容 g.drawImage (imBuffer, 0, 0, this); } void paintChecker (Graphics g, int x, int y) { // Set checker shadow color. // 设置棋子阴影的颜色 g.setColor (Color.black); // Paint checker shadow. // 绘制棋子的阴影 g.fillOval (x, y, CHECKERDIM, CHECKERDIM); // Set checker color. // 设置棋子颜色 g.setColor (Color.red); // Paint checker. // 绘制棋子 g.fillOval (x, y, CHECKERDIM - CHECKERDIM / 13, CHECKERDIM - CHECKERDIM / 13); } void paintCheckerBoard (Graphics g, int x, int y) { // Paint checkerboard outline. // 绘制棋盘轮廓线 g.setColor (Color.black); g.drawRect (x, y, 8 * SQUAREDIM 1, 8 * SQUAREDIM 1); // Paint checkerboard. // 绘制棋盘 for (int row = 0; row < 8; row ) { g.setColor (((row & 1) != 0) ? darkGreen : Color.white); for (int col = 0; col < 8; col ) { g.fillRect (x 1 col * SQUAREDIM, y 1 row * SQUAREDIM, SQUAREDIM, SQUAREDIM); g.setColor ((g.getColor () == darkGreen) ? Color.white : darkGreen); } } } // The AWT invokes the update() method in response to the repaint() method // calls that are made as a checker is dragged. The default implementation // of this method, which is inherited from the Container class, clears the // applets drawing area to the background color prior to calling paint(). // This clearing followed by drawing causes flicker. CheckerDrag overrides // update() to prevent the background from being cleared, which eliminates // the flicker. // AWT调用了update()方法来响应拖动棋子时所调用的repaint()方法。该方法从 // Container类继承的默认实现会在调用paint()之前,将applet的绘图区域清除 // 为背景色,这种绘制之后的清除就导致了闪烁。CheckerDrag重写了update()来 // 防止背景被清除,从而消除了闪烁。 public void update (Graphics g) { paint (g); }}

JAVA简单小游戏源代码是什么

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

import java.awt.image.*;

import java.awt.geom.*;

import java.util.*;

class Car{

Image img;

int x, y;

Dimension dim;

Car(Image img){

this.img=img;

}

Car(Image img, int x, int y){

this.img=img; this.x=x; this.y=y;

}

Car(Image img, int x, int y, Dimension dim){

this(img, x, y);

this.dim=dim;

}

void draw(Graphics g, ImageObserver observer){

g.drawImage(img, x, y, observer);

}

int getX(){ return x;}

int getY(){ return y;}

void setX(int x){this.x=x;}

void setY(int y){this.y=y;}

void setLocation(int x, int y){

this.x=x; this.y=y;

} int getWidth(){ return img.getWidth(null);}

int getHeight(){ return img.getHeight(null);}

Rectangle2D getRectangle(){

return new Rectangle2D.Float(x, y, getWidth(), getHeight());

}

void move(int dx, int dy){

x =dx;

y =dy;

if(dim!=null){

if(xdim.getWidth())

x=(int)dim.getWidth()-getWidth();

}

}

boolean intersects(Car car){

return getRectangle().intersects(car.getRectangle());

}

boolean intersects(int x, int y){

return getRectangle().intersects(x, y, getWidth(), getHeight());

}

}

public class CarRace extends Applet implements KeyListener, Runnable{

Image buff;

Canvas screen;

Graphics2D gs, gb;

Car redCar;

Car[] enemy=new Car[20];

Button bStart;

Thread game;

boolean loop=true;

Dimension dim=new Dimension(200, 300);

int road;

Random rnd=new Random();

public void init(){

prepareResource();

setBackground(Color.blue);

initScreen();

add(screen);

bStart=new Button("霸烙 矫累");

add(bStart);

bStart.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){

screen.requestFocus();

if(!game.isAlive())

game.start();

}

});

}

void prepareResource(){

Image imgRed=getImage(getCodeBase(),"images/red_car.gif");

Image imgBlue=getImage(getCodeBase(),"images/blue_car.gif");

Image imgGreen=getImage(getCodeBase(),"images/green_car.gif");

MediaTracker mt=new MediaTracker(this);

try{

mt.addImage(imgRed, 0);

mt.addImage(imgBlue, 1);

mt.addImage(imgGreen, 2);

mt.waitForAll();

}catch(Exception e){}

buff=createImage((int)dim.getWidth(), (int)dim.getHeight());

gb=(Graphics2D)buff.getGraphics();

redCar=new Car(imgRed, 80,250, dim); for(int i=0;ien.getX()){

en.move(-20, 0);

redCar.move(20, 0);

}

else{

en.move(20,0);

redCar.move(-20, 0);

}

}

}

synchronized void drawScreen(){

gb.clearRect(0, 0, (int)dim.getWidth(), (int)dim.getHeight());

gb.setPaint(new Color(100, 100, 100));

gb.fillRect(0, 0, (int)dim.getWidth(), (int)dim.getHeight());

drawRoad();

for(int i=0;idim.getHeight())

setEnemy(i);

check(enemy[i]);

}

redCar.draw(gb, screen);

gs.drawImage(buff, 0,0, screen);

}

void drawRoad(){

road =80;

gb.setPaint(Color.yellow);

gb.fillRect((int)dim.getWidth()/2, road,10,150);

if(road>=dim.getHeight())road=-150;

}

public void keyPressed(KeyEvent ke){

if(ke.getKeyCode()==KeyEvent.VK_LEFT){

redCar.move(-10,0);

}

else if(ke.getKeyCode()==KeyEvent.VK_RIGHT){

redCar.move(10,0);

}

}

public void keyReleased(KeyEvent ke){}

public void keyTyped(KeyEvent ke){}

}

这个是一个典型的Applet,文件名应该是CarRace.java,需要图片作为车子等等,本人也是别人给的,但是还要个.html文件来运行它,代码为: 请楼主采纳