亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sliding block.txt

?? 5個用java編寫的小游戲源碼
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
//================================================================
//	Sliding Block Program
//================================================================

//================================================================
import java.awt.*;
import java.applet.*;
import java.lang.*;
import java.io.*;
import java.util.*;
import java.net.*;

//================================================================
//	Sliding Applet
//================================================================
public class Slide extends Applet {
	final	int	BUTTON_H 	=  35;
	final	int	MSG_H		=  35;
	final	int	COPY_H	=  30;

	public	Dimension  app_size;
		Board		board;
		AudioClip	sound = null;
		String	filename;
		String	nextfile;
	private
		Label			stepCounter;
		Label			doneMsg;
		ControlButton	nextButton;
		ControlButton	backButton;
		ControlButton	redoButton;
		ControlButton	replayButton;

	final	Color	backcolor  = new Color(180,180,180);	// background - grey
	final Color pagecolor = new Color(222,222,222);
//	final Color pagecolor = Color.white;		 	// for white background	
	final	Color	shadowLight = Color.white;			// top, light shadow
	final	Color	shadowDark  = Color.black;			// bottom, dark shadow
	final	Color	piececolor = new Color(0.40f,0.40f,1.0f);	// default piece color
	final Color limitcolor = Color.green;
	final	Color	hintcolor  = Color.black;			// goal line color
	final Color msgcolor	= Color.red;

	//----------------------------------------------------------------
	public void init() {
		String crMessage = "Slide Puzzle V3.5  " + 
				"Copyright(c)1996-1999 Hirofumi Fujiwara, Nick Baxter";
		System.out.println(crMessage);
		System.out.println("Version 3.5.1 - Netscape 4.5 fix part 1");

		sound = getAudioClip(getCodeBase(),"tick.au");
		filename = getParameter( "problemfile" );
		app_size = this.size();

		Rectangle r = new Rectangle(0,BUTTON_H + MSG_H,
				app_size.width, 
				app_size.height - 2*BUTTON_H - MSG_H - COPY_H);

		board = new Board(this,r);

		Font	f10 = new java.awt.Font( "Helvetica", 0, 10 );
		Font	f14 = new java.awt.Font( "Helvetica", 0, 14 );
		Font	bf16 = new java.awt.Font( "Helvetica", 1, 16 );
		Font	f20 = new java.awt.Font( "Helvetica", 0, 20 );

		setBackground( pagecolor );

		setLayout( new BorderLayout() );
		{
			Panel p1 = new Panel();
			add("North",p1);
			p1.setLayout(new FlowLayout());
			backButton = new ControlButton(this,"Back"," Back ");
			backButton.setFont( f14 );
			redoButton = new ControlButton(this,"Forward"," Forward ");
			redoButton.setFont( f14 );
			p1.add(backButton);
			p1.add(redoButton);

			stepCounter = new Label();
			stepCounter.setFont( f20 );
			showcounter();
			p1.add( stepCounter );
			replayButton = new ControlButton(this,"Replay"," Restart ");
			replayButton.setFont( f14 );
			p1.add(replayButton);

			p1.reshape(0,0,app_size.width,BUTTON_H);

		}

		setLayout(new BorderLayout());
		{
			Panel p4 = new Panel();
			add("North",p4);
			p4.setLayout(new FlowLayout());

			doneMsg = new Label();
			doneMsg.setFont(bf16);
			doneMsg.setForeground(msgcolor);
			doneMsg.setAlignment(Label.CENTER);
			doneMsg.setText("                                    "+
						"                                    ");
			p4.add(doneMsg);

			p4.reshape(0, BUTTON_H, app_size.width, MSG_H);
		}

		setLayout(new BorderLayout());
		{
			Panel p3 = new Panel();
			add("South", p3 );
			p3.setLayout( new FlowLayout());

			nextButton = new ControlButton(this,"Next"," Go to next problem ");
			nextButton.setFont(f14);
			p3.add(nextButton);

			p3.reshape( 0, app_size.height - BUTTON_H - COPY_H,
					app_size.width, BUTTON_H);

		}

		setLayout(new BorderLayout());
		{
			Panel p2 = new Panel();
			p2.setLayout( new FlowLayout());
			add("South", p2 );

			Label copyright = new Label( crMessage, Label.CENTER );
			copyright.setFont( f10 );
			p2.add( copyright );

			p2.reshape( 0, app_size.height - COPY_H,
					app_size.width, COPY_H);
		}
		replay();
	}

	//----------------------------------------------------------------
	public	void showcounter() {
		if(board.minStep==0)
			stepCounter.setText( "   Step  "+board.step+"   " );
		else stepCounter.setText( "   Step  "+board.step+"/"+
							board.minStep+"   " );
	}

	//----------------------------------------------------------------
	public	void showMsg(String msg) {
		doneMsg.setText( msg );
	}

	//----------------------------------------------------------------
	public void replay() {
		board.setup(filename);
		showcounter();
		backButton.disable();
		redoButton.disable();
		if(nextfile == null) nextButton.disable();
		else enable();
		paint( getGraphics() );
	}

	//----------------------------------------------------------------
	public void next() {
		if(nextfile != null) filename = nextfile;
		replay();
	}

	//----------------------------------------------------------------
	public boolean mouseDown( Event evt, int x, int y ) {
		board.mouseDown(x,y);
		return	true;
	}

	public boolean mouseDrag( Event evt, int x, int y ) {
		board.mouseDrag(x,y);
		return	true;
	}

	public boolean mouseUp( Event evt, int x, int y ) {
		board.mouseUp(x,y);
		return	true;
	}

	//----------------------------------------------------------------
	public void paint( Graphics g ) {

//		boolean flg = g.drawImage(backImage,0,CTRLPANEL_H*2,
//						app_size.width,app_size.height-CTRLPANEL_H*2-COPY_H,
//						shadowLight, null);

		board.paintHint(g);
		board.paint(g);
	}
	public void repaint() {
		paint(getGraphics());
	}
}




//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	ControlButton
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

class  ControlButton extends Button {
	Slide		slide;
	String		name;

	ControlButton( Slide s, String str, String label ) {
		super();
		slide = s;
		name = str;
		setLabel( label );
	}

	//----------------------------------------------------------------
	public boolean action( Event evt, Object obj ) {
		if(name.equals("Replay")) slide.replay();
		if(name.equals("Back")) slide.board.backHistory();
		if(name.equals("Forward")) slide.board.forwardHistory();
		if(name.equals("Next")) slide.next();
		return true;
	}
}







//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	Board
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

class Board extends Rectangle {
	final	int	maxPiece = 32;
	final	int	maxHistory = 512;

	public
		Block	blocks[][];
		String	targetBlocks[][];
		char	hintBlocks[][];
		int	ax,ay;
		Slide	slide;
		int	unit;
		int	minStep;
		int	step;
	private
		Rectangle req;
		Piece	pieces[];
		int	piecen;
		Piece	currentPiece;
		Point	dragPoint;
		Point	dPoint;	
		boolean	dragFlag;
		String	boardType = "none";
		boolean	painting;
		Piece	pieceHistory[];
		Point	pointHistory[];
		int	historyCount;
		int	redoLimit;
		int	originalRedoLimit;
		int	originalX;
		int	originalY;
		boolean	adjusting;

	//----------------------------------------------------------------
	Board(Slide s,Rectangle r){
		pieces = new Piece[maxPiece];
		slide = s;
		unit = 16;
		x = y = 0;
		req = r;
		step = 0;
		pieceHistory = new Piece[maxHistory];
		pointHistory = new Point[maxHistory];
	}

	//----------------------------------------------------------------
	public void setup(String filename){
		minStep = step = 0;
		targetBlocks = null;
		hintBlocks = null;
		currentPiece = null;
		painting = false;
		ax = ay = 0;
		piecen = 0;
		dragFlag = false;
		loadData(filename);

		if(ax==0 || ay==0){
			ax = ay = 1;
			System.out.println("File read error!");
		}
		int u1 = (int)(req.width*0.92)/ax;
		int u2 = (int)(req.height*0.92)/ay;
		unit = (u1<u2)? u1 : u2;
		width = ax*unit;
		height = ay*unit;
		x = (req.width-width)/2+req.x;
		y = (req.height-height)/2+req.y;
		setBlockShape();
		dragPoint = new Point(0,0);
		dPoint = new Point(0,0);
		historyCount = redoLimit = 0;
		originalRedoLimit = originalX = originalY = 0;
		adjusting= false;
		slide.showMsg("                                    "+
					"                                    ");
	}

	//----------------------------------------------------------------
	public void mouseDown(int v, int w){
		if(dragFlag) return;
		if(!this.inside(v,w)) return;
		v-=x; w-=y;
		painting = true;
		dragPoint.move(v,w);
		v/=unit; w/=unit;
		if(blocks[v][w]!=null && blocks[v][w].outside)
			return;
		if(blocks[v][w]!=null){
			currentPiece = blocks[v][w].piece;
			currentPiece.resetAdjust();
			dragFlag = true;
		}
		dPoint.move(0,0);
		painting = false;
	}

	//----------------------------------------------------------------
	public void mouseDrag(int v, int w){
		int radius = 5;		// radius of pieces corner 
		if(!dragFlag || painting) return;
		painting = true;
		v-=x; w-=y;
		dragFlag = false;
		int dx = v - dragPoint.x;
		int dy = w - dragPoint.y;
		boolean f = false;

		int dx2 = currentPiece.moveX(dPoint.x,dPoint.y,dx);

//		if (dx!=0 && dx2==0) {
//			for (int d=-radius;d<=radius;d++) {
//				dx2 = currentPiece.moveX(dPoint.x,dPoint.y-d,dx);
//				if (dx2 != 0) {
//					System.out.println("ADJUST-y: "+ -d);
//					dPoint.y-=d;
//					dy+=d;
//
//					int ddx;
//					if(dx>0) ddx=2*radius-dx; else ddx=dx-2*radius;
//					dPoint.x-=ddx;
//					dx+=ddx;
//					System.out.println("BOOST-x: "+dx);
//					dx2 = currentPiece.moveX(dPoint.x,dPoint.y,dx);
//					break;
//				}
//			}
//		}

		dPoint.x += dx2;
		if(dx2!=dx && dx2!=0 && 
			currentPiece.moveX(dPoint.x,dPoint.y,dx)==0) {
			f = true;
		}

		int dy2 = currentPiece.moveY(dPoint.x,dPoint.y,dy);

//		if (dy!=0 && dy2==0) {
//			for (int d=-radius;d<=radius;d++) {
//				dy2 = currentPiece.moveY(dPoint.x-d,dPoint.y,dy);
//				if (dy2 != 0) {
//					System.out.println("ADJUST-x: "+ -d);
//					dPoint.x-=d;
//					dx+=d;
//
//					int ddy;
//					if(dy>0) ddy=2*radius-dy; else ddy=dy-2*radius;
//					dPoint.y-=ddy;
//					dy+=ddy;
//					System.out.println("BOOST-y: "+dy);
//					dy2 = currentPiece.moveY(dPoint.x,dPoint.y,dy);
//					break;
//				}
//			}
//		}
				
		dPoint.y += dy2;
		if(dy2!=dx && dy2!=0 && 
			currentPiece.moveY(dPoint.x,dPoint.y,dy)==0){
			f = true;
		}

		dragPoint.move(v,w);
		currentPiece.update(slide.getGraphics(),dPoint.x,dPoint.y);

		if(f) slide.sound.play();
		dragFlag = true;
		painting = false;
	}

	//----------------------------------------------------------------
	public void mouseUp(int v, int w){
		v-=x; w-=y;
		if(!dragFlag) return;
		dragFlag = false;
		int offx = (dPoint.x+unit/2+unit*1024)/unit-1024;
		int offy = (dPoint.y+unit/2+unit*1024)/unit-1024;

		// see if this move is really same as Back
		if (historyCount>0) 
			if (pieceHistory[historyCount-1].cid==currentPiece.cid &&
				pointHistory[historyCount-1].x == -offx &&
				pointHistory[historyCount-1].y == -offy) {
				backHistory();
				return;
			}
		// see if this move is really same as Forward
		if (historyCount<redoLimit) 
			if (pieceHistory[historyCount].cid==currentPiece.cid)
				if (pointHistory[historyCount].x == offx &&
						pointHistory[historyCount].y == offy) {
					forwardHistory();
					return;
				}

		currentPiece.update(slide.getGraphics(),offx*unit,offy*unit);
		currentPiece.move(offx,offy);

		// check to see if this is same piece as previous move
		// know it can't be a "back", but maybe a "forward"
		if ( (historyCount>0) &&
			 (pieceHistory[historyCount-1].cid==currentPiece.cid) ) {
			int offxx = pointHistory[historyCount-1].x + offx;
			int offyy = pointHistory[historyCount-1].y + offy;
			System.out.println("Replace " + String.valueOf(step) + ": " +
					currentPiece.cid + ", "+String.valueOf(offxx)+","+
					String.valueOf(offyy));

			// check to see if Forward should be enabled or disabled
			if ((originalRedoLimit>0) && (offxx==originalX) && 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡一区二区中文字幕| 久久er99精品| 日韩高清在线观看| 黄页网站大全一区二区| 波多野结衣中文字幕一区| 欧美三区在线视频| 久久综合九色综合欧美亚洲| 国产精品久久久久四虎| 性做久久久久久久久| 国产乱子轮精品视频| 色美美综合视频| 日韩精品专区在线影院观看| 亚洲色图欧美激情| 看电视剧不卡顿的网站| 91蜜桃免费观看视频| 欧美videos中文字幕| 亚洲日穴在线视频| 麻豆国产91在线播放| 一本到一区二区三区| 欧美精品一区二区三| 一区二区三区日韩精品| 国产在线播放一区三区四| 在线国产电影不卡| 国产丝袜美腿一区二区三区| 婷婷国产在线综合| kk眼镜猥琐国模调教系列一区二区| 欧美日韩精品一区二区天天拍小说 | 亚洲精品一区二区在线观看| 亚洲欧美日韩精品久久久久| 久久狠狠亚洲综合| 色老汉一区二区三区| 国产亚洲精品bt天堂精选| 午夜视频在线观看一区二区三区| 成人精品在线视频观看| 日韩一区二区三区三四区视频在线观看| 国产精品传媒入口麻豆| 精品无码三级在线观看视频| 欧美色网一区二区| 中文字幕日韩精品一区| 国产一区在线精品| 日韩欧美一级片| 亚欧色一区w666天堂| 色婷婷综合久色| 国产精品久久久久影院色老大| 精品一区二区免费在线观看| 欧美日韩专区在线| 亚洲免费成人av| 成人久久久精品乱码一区二区三区| 欧美本精品男人aⅴ天堂| 午夜精品久久久久久久蜜桃app| 91亚洲精品久久久蜜桃网站| 久久精品网站免费观看| 国产综合久久久久久鬼色| 91精品国产综合久久香蕉麻豆| 亚洲综合丝袜美腿| 91视频com| 中文字幕一区二区日韩精品绯色| 国产99精品视频| 国产午夜亚洲精品理论片色戒| 激情综合一区二区三区| 日韩欧美亚洲另类制服综合在线| 亚洲国产精品欧美一二99| 色吧成人激情小说| 亚洲靠逼com| 91美女片黄在线| 亚洲欧美成人一区二区三区| av亚洲产国偷v产偷v自拍| 中文字幕在线不卡国产视频| 成人激情免费网站| 国产精品久久久久永久免费观看| 高清av一区二区| 欧美经典一区二区三区| 国产成人精品亚洲午夜麻豆| 国产欧美日韩麻豆91| 波多野结衣在线一区| 国产精品亲子伦对白| 成人av资源在线| 亚洲特级片在线| 在线看日本不卡| 午夜一区二区三区视频| 在线播放国产精品二区一二区四区| 亚洲无线码一区二区三区| 欧美卡1卡2卡| 蜜臀av一级做a爰片久久| 精品国产乱子伦一区| 国产成人av电影在线观看| 国产精品免费看片| 色悠悠亚洲一区二区| 五月天久久比比资源色| 日韩免费观看高清完整版| 国产乱国产乱300精品| 国产欧美日韩另类一区| 91日韩精品一区| 亚洲国产一二三| 精品欧美乱码久久久久久| 国产一区二区h| 国产精品国产三级国产aⅴ原创| 91理论电影在线观看| 午夜天堂影视香蕉久久| 精品国产一区二区三区av性色| 国产寡妇亲子伦一区二区| 亚洲精品免费电影| 91精品国产综合久久香蕉的特点| 国产一区二区三区四区五区入口| 中文字幕精品三区| 欧美日韩精品是欧美日韩精品| 久久99蜜桃精品| 中文字幕精品在线不卡| 欧美日韩一区中文字幕| 国产一区视频在线看| 日韩毛片视频在线看| 欧美一区二区观看视频| 成人一级片网址| 亚洲v中文字幕| 久久久久久9999| 欧美在线三级电影| 老司机免费视频一区二区| 综合激情网...| 日韩午夜激情av| 色婷婷亚洲精品| 久久99精品久久久| 樱花影视一区二区| 精品成人免费观看| 日本精品一级二级| 国产精品99久久久久久久女警 | 99国产精品99久久久久久| 亚洲18影院在线观看| 国产日韩成人精品| 欧美一区二区精美| 色综合天天综合网国产成人综合天 | 粉嫩13p一区二区三区| 婷婷久久综合九色综合绿巨人| 中文一区二区完整视频在线观看| 欧美日韩精品系列| 99视频精品全部免费在线| 美国欧美日韩国产在线播放| 亚洲欧洲精品一区二区三区| 日韩欧美一区二区久久婷婷| 色素色在线综合| 国产99久久久精品| 麻豆精品视频在线观看视频| 亚洲综合色噜噜狠狠| 国产欧美精品一区aⅴ影院| 欧美高清激情brazzers| 色综合久久88色综合天天6| 国产一区二区三区av电影 | 777xxx欧美| 色偷偷成人一区二区三区91| 国产成人自拍高清视频在线免费播放| 亚洲成人福利片| 亚洲精品美国一| 国产精品超碰97尤物18| 国产亚洲污的网站| 欧美精品一区二区三区在线| 欧美精品一卡两卡| 欧美性一区二区| 91麻豆国产福利在线观看| 成人午夜在线视频| 国产在线精品视频| 久久99国产精品久久| 日韩精品亚洲一区二区三区免费| 尤物在线观看一区| 亚洲欧美中日韩| 国产精品理论片| 国产午夜精品久久| 久久久久国产成人精品亚洲午夜| 日韩精品中文字幕在线不卡尤物| 51午夜精品国产| 欧美另类一区二区三区| 欧洲激情一区二区| 在线亚洲高清视频| 欧美综合久久久| 欧洲精品一区二区三区在线观看| 色婷婷av一区二区三区之一色屋| 99riav久久精品riav| 波多野结衣精品在线| 国产成人8x视频一区二区 | 国产精品福利影院| 国产精品久久久久久久久久免费看| 国产欧美日韩综合精品一区二区| 久久久久久影视| 日本一区二区成人| 国产精品视频免费| 国产精品久久看| 亚洲欧美乱综合| 亚洲一级二级在线| 日韩在线一区二区| 视频一区在线视频| 免费观看一级特黄欧美大片| 免费欧美在线视频| 精品一区免费av| 国产一区二区三区不卡在线观看 | 精品久久国产老人久久综合| 欧美成人欧美edvon| 久久久91精品国产一区二区精品 | 成人美女视频在线观看| 色综合一个色综合| 欧美午夜不卡视频| 欧美一区二区三区性视频| 日韩精品一区二区三区视频播放|