亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久蜜桃香蕉精品一区二区三区| 国产日产精品1区| 欧美精品欧美精品系列| 欧美日韩一级黄| 欧美视频一区二区三区在线观看 | 国产剧情一区二区三区| 久久99国产精品久久99| 久久99国产精品免费网站| 麻豆专区一区二区三区四区五区| 日本欧美一区二区三区乱码| 麻豆精品在线看| 麻豆专区一区二区三区四区五区| 欧美一区二区精品在线| 色狠狠色狠狠综合| 欧美中文字幕久久| 91精品欧美一区二区三区综合在| 欧美一级夜夜爽| 精品sm捆绑视频| 久久久久国色av免费看影院| 国产精品私人自拍| 亚洲黄色性网站| 三级一区在线视频先锋 | 91黄色免费看| 在线电影一区二区三区| 精品久久久三级丝袜| 国产欧美一区二区精品久导航| 中文字幕不卡三区| 亚洲一区二区av电影| 久久电影网站中文字幕| 成人永久免费视频| 欧美熟乱第一页| 欧美精品一区视频| 亚洲猫色日本管| 水野朝阳av一区二区三区| 激情综合色播激情啊| 成人爱爱电影网址| 欧美专区在线观看一区| 欧美不卡一二三| 亚洲人亚洲人成电影网站色| 午夜视黄欧洲亚洲| 国产精品1区二区.| 欧美日韩在线直播| 国产网站一区二区| 亚洲一区二区三区影院| 国产黄人亚洲片| 欧美精品第一页| 中文字幕一区二区在线观看| 奇米色一区二区三区四区| 丁香婷婷综合网| 日韩三级视频中文字幕| 综合久久国产九一剧情麻豆| 裸体健美xxxx欧美裸体表演| 99国产精品一区| 久久久噜噜噜久噜久久综合| 亚洲国产三级在线| 国产美女精品一区二区三区| 欧美日韩中文字幕一区| 国产三级欧美三级日产三级99| 午夜激情一区二区三区| 99久久99久久免费精品蜜臀| 日韩一区二区三区电影| 亚洲视频1区2区| 国产一区二区电影| 91精品国产91久久久久久一区二区 | 精品一区二区在线观看| 在线亚洲免费视频| 国产欧美日韩亚州综合| 乱中年女人伦av一区二区| 在线影院国内精品| 国产亚洲一本大道中文在线| 免费国产亚洲视频| 欧美网站大全在线观看| 1024成人网| 成人黄色在线看| 久久蜜桃香蕉精品一区二区三区| 日韩高清在线观看| 在线看不卡av| 亚洲人成网站精品片在线观看 | 4438成人网| 一区二区三区日韩欧美| 99精品欧美一区二区三区小说 | 性做久久久久久久免费看| 91丨九色porny丨蝌蚪| 国产喷白浆一区二区三区| 国产中文字幕精品| 欧美大黄免费观看| 日本不卡一区二区三区高清视频| 欧美日韩一级片在线观看| 亚洲最大成人综合| 色婷婷久久久亚洲一区二区三区 | 午夜精品成人在线视频| 欧美性色黄大片| 一区二区三区国产| 欧洲亚洲国产日韩| 一个色在线综合| 91一区二区在线观看| 中文字幕制服丝袜成人av| 成人动漫一区二区| 国产精品国产三级国产有无不卡 | 亚洲一区二区三区免费视频| 97aⅴ精品视频一二三区| 国产精品免费网站在线观看| 春色校园综合激情亚洲| 国产精品欧美一级免费| 99久久久久免费精品国产| 亚洲丝袜自拍清纯另类| 日本高清成人免费播放| 亚洲一区在线免费观看| 欧美三级中文字幕| 天天av天天翘天天综合网| 91精品国产综合久久精品性色| 日日摸夜夜添夜夜添国产精品| 欧美一卡二卡三卡| 国产一区三区三区| 国产精品久久久久婷婷二区次| 91亚洲男人天堂| 亚洲国产精品精华液网站| 欧美一区二区视频在线观看2020| 蜜臀av国产精品久久久久| 久久精品一二三| 99精品国产99久久久久久白柏| 亚洲黄色小视频| 欧美一区二区三区视频免费播放| 久久av资源站| 亚洲国产精品高清| 欧美自拍偷拍一区| 蜜桃久久久久久| 国产精品美女久久久久久2018| 色久优优欧美色久优优| 午夜激情一区二区| 久久婷婷综合激情| 99久久99久久精品免费观看 | www.久久精品| 亚洲国产毛片aaaaa无费看| 欧美tickling挠脚心丨vk| 国产精品一区二区在线看| 自拍偷拍亚洲综合| 欧美一级精品在线| 成人午夜电影小说| 亚洲电影一级黄| 国产亚洲人成网站| 欧美色视频一区| 国产精品一区免费在线观看| 一区二区三区在线免费视频| 欧美成人欧美edvon| 91在线视频网址| 精品一区二区在线观看| 日韩毛片一二三区| 欧美成人国产一区二区| 91免费视频网址| 久久精品国产亚洲a| 一区二区免费在线| 国产日韩欧美亚洲| 91麻豆精品国产91久久久| 成人app网站| 蜜臀av性久久久久蜜臀aⅴ四虎| 中文字幕一区二区三区不卡| 这里只有精品视频在线观看| 国产成人av电影在线| 日本视频一区二区| 亚洲欧美日韩一区二区 | 奇米色一区二区| 亚洲精品国产第一综合99久久| 日韩精品在线一区二区| 在线中文字幕不卡| thepron国产精品| 美女诱惑一区二区| 亚洲国产精品综合小说图片区| 中文字幕免费在线观看视频一区| 91精品在线免费| 在线观看国产一区二区| 丁香另类激情小说| 九九在线精品视频| 日韩av一区二区三区四区| 亚洲欧美国产三级| 国产免费观看久久| 欧美v日韩v国产v| 91麻豆精品国产91久久久| 欧美在线你懂的| 91麻豆国产自产在线观看| 国产91对白在线观看九色| 韩国av一区二区三区四区| 天天色综合天天| 亚洲一区二区三区视频在线播放| 国产精品白丝在线| 国产精品欧美一级免费| 国产亚洲欧美激情| xfplay精品久久| 欧美大片一区二区三区| 欧美一级日韩免费不卡| 欧美日韩高清在线播放| 欧美亚洲高清一区| 日本韩国欧美在线| 91日韩一区二区三区| 91原创在线视频| 91蜜桃免费观看视频| 99久久国产综合精品色伊| www.日韩在线| 91首页免费视频| 91美女在线观看|