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

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

?? maingameplaywithai.java

?? J2ME的游戲原代碼!希望能幫助有需要幫助的師兄弟們!..
?? JAVA
字號:
/*
 *與機器人對戰游戲畫面
 *作者:肖昶
 *
*/
package fivegame;

import java.io.IOException;

import javax.microedition.lcdui.*;

//Referenced classes of package fivepack:
//         AIThread, FiveMidlet, Menu

public class MainGamePlayWithAI extends Canvas implements CommandListener {

	static MainGamePlayWithAI instance;
	public static byte Board[][];
	int side;
	static int N = 15;
	int Width;
	int Height;
	static final int dxs[] = { 1, 1, 0, -1, -1, -1, 0, 1 };
	static final int dys[] = { 0, 1, 1, 1, 0, -1, -1, -1 };
	static final int cursorColor = 0xff0000;
	static final int whiteColor = 0xffffff;
	static final int blackColor = 0;
	static final int boardColor = 0xf9a902;
	static int cursorX;
	static int cursorY;
	static int StepIndex;
	int StepRecord[][];
	int UserColor;
	public Command BackCmd;
	public Command ReturnCmd;
	public Command NOCmd;
	public Command YESCmd;
	static boolean ShowLost;
	static boolean ShowWin;
	Image youImage;
	Image robotImage;
	Image winImage;
	Image lostImage;

	public void clearBoard() {
		cursorX = 7;
		cursorY = 7;
		StepIndex = -1;
		for (int i = 0; i < 15; i++) {
			for (int j = 0; j < 15; j++)
				Board[i][j] = 0;

		}

		repaint();
	}

	public MainGamePlayWithAI() {
		side = AIThread.userSide;
		Width = getWidth();
		Height = getHeight();
		Board = new byte[N][N];
		try {
			winImage = Image.createImage("/Win.PNG");
			lostImage = Image.createImage("/Lost.PNG");
			youImage = Image.createImage("/YouTurn.PNG");
			robotImage = Image.createImage("/RobotTurn.PNG");
		} catch (IOException x) {
			System.out.println("Load Image Error!" + x.getMessage());
		}
		StepRecord = new int[50][2];
		BackCmd = new Command("返回", 2, 1);
		ReturnCmd = new Command("悔棋", 4, 1);
		NOCmd = new Command("否", 2, 1);
		YESCmd = new Command("是", 4, 1);
		addCommand(BackCmd);
		addCommand(ReturnCmd);
		setCommandListener(this);
	}

	public void commandAction(Command cmd, Displayable display) {
		if (cmd == BackCmd || cmd == NOCmd) {
			instance = null;
			System.gc();
			FiveGame.display.setCurrent(MainMenu.getInstance());
		} else if (cmd == ReturnCmd)
			ReturnOneStep();
		else if (cmd == YESCmd) {
			ShowLost = false;
			ShowWin = false;
			removeCommand(NOCmd);
			removeCommand(YESCmd);
			addCommand(BackCmd);
			addCommand(ReturnCmd);
			clearBoard();
		}
	}

	public void checkWin(byte abyte0[][], int i, int j) {
		try {
			StringBuffer stringbuffer = new StringBuffer();
			byte byte0 = AIThread.computerSide;
			boolean flag = false;
			boolean flag1 = false;
			for (int k = 0; k < dxs.length; k++) {
				int l = dxs[k];
				int i1 = dys[k];
				stringbuffer.delete(0, stringbuffer.length());
				int j1 = i - l * 6;
				int k1 = j - i1 * 6;
				for (int l1 = 0; l1 < 12;) {
					char c = 'X';
					if (j1 >= 0 && j1 < 15 && k1 >= 0 && k1 < 15)
						if (abyte0[j1][k1] == 0)
							c = '.';
						else if (abyte0[j1][k1] == byte0)
							c = 'M';
						else if (abyte0[j1][k1] == 3 - byte0)
							c = 'W';
					stringbuffer.append(c);
					l1++;
					j1 += l;
					k1 += i1;
				}

				String s = stringbuffer.toString();
				if (s.indexOf("MMMMM") >= 0)
					flag1 = true;
				else if (s.indexOf("WWWWW") >= 0)
					flag = true;
			}

			if (flag1) {
				ShowLost = true;
				removeCommand(BackCmd);
				removeCommand(ReturnCmd);
				addCommand(NOCmd);
				addCommand(YESCmd);
				repaint();
				side = AIThread.userSide;
			}
			if (flag) {
				ShowWin = true;
				removeCommand(BackCmd);
				removeCommand(ReturnCmd);
				addCommand(NOCmd);
				addCommand(YESCmd);
				repaint();
				side = AIThread.userSide;
			}
		} catch (Throwable throwable) {
			throwable.printStackTrace();
		}
	}

	public void paint(Graphics g) {
		g.setClip(0, 0, Width, Height);
		g.setColor(0xf9a902);
		g.fillRect(0, 0, Width, Height);
		g.setColor(255);
		if (side == AIThread.userSide && !ShowLost && !ShowWin)
			g.drawImage(youImage, (getWidth() - youImage.getWidth()) / 2, 3, 0);
		else if (side == AIThread.computerSide && !ShowLost && !ShowWin)
			g.drawImage(robotImage, (getWidth() - robotImage.getWidth()) / 2,
					3, 0);
		int a = (Height - 6 - youImage.getHeight()) < Width ? (Height - 6 - youImage
				.getHeight())
				: Width;// 棋盤正方形的邊長
		a = a - 8;// 留出邊界空隙
		int d = a / 14;// 小格子邊長
		int startX = (Width - (14 * d)) / 2;
		int startY = (Height - 6 - youImage.getHeight() - (14 * d)) / 2
				+ (6 + youImage.getHeight());
		g.setColor(0);// 畫網格
		for (int i = 0; i < 15; i++) {
			g.drawLine(startX + i * d, startY, startX + i * d, startY + 14 * d);
			g.drawLine(startX, startY + i * d, startX + 14 * d, startY + i * d);
		}
		g.setColor(0xff0000);
		int x = startX + cursorX * d;
		int y = startY + cursorY * d;
		int r = d / 2;
		// 畫光標
		g.drawLine(x - r, y - r, x + r, y - r);
		g.drawLine(x - r, y - r, x - r, y + r);
		g.drawLine(x + r, y + r, x + r, y - r);
		g.drawLine(x + r, y + r, x - r, y + r);
		// 畫棋子
		for (int i = 0; i < 15; i++)
			for (int j = 0; j < 15; j++) {
				if (Board[i][j] == 1)
					g.setColor(0xffffff);
				else if (Board[i][j] == 2)
					g.setColor(0);
				else
					continue;
				g.fillArc((startX + i * d) - (r - 1), (startY + j * d)
						- (r - 1), 2 * (r - 1), 2 * (r - 1), 0, 360);
			}
		if (ShowLost)
			g.drawImage(lostImage, (getWidth() - lostImage.getWidth()) / 2,
					(getHeight() - lostImage.getHeight()) / 2, 0);
		if (ShowWin)
			g.drawImage(winImage, (getWidth() - winImage.getWidth()) / 2,
					(getHeight() - winImage.getHeight()) / 2, 0);

	}

	protected void keyPressed(int key) {
		if (side != AIThread.userSide || ShowLost || ShowWin)
			return;
		int k = getGameAction(key);
		switch (k) {
		case 3: // '\003'
		case 4: // '\004'
		case 7: // '\007'
		default:
			break;

		case 1: // '\001'
			if (cursorY > 0)
				cursorY--;
			break;

		case 6: // '\006'
			if (cursorY < 14)
				cursorY++;
			break;

		case 2: // '\002'
			if (cursorX > 0)
				cursorX--;
			break;

		case 5: // '\005'
			if (cursorX < 14)
				cursorX++;
			break;

		case 8: // '\b'
			if (side == AIThread.userSide && Board[cursorX][cursorY] == 0) {
				Board[cursorX][cursorY] = AIThread.userSide;
				StepIndex++;
				StepRecord[StepIndex][0] = cursorX * 15 + cursorY;
				side = AIThread.computerSide;
				checkWin(Board, cursorX, cursorY);
				AIThread AIThread = new AIThread(this);
				AIThread.start();
			}
			break;
		}
		repaint();
	}

	public void ReturnOneStep() {
		if (StepIndex != -1 && side == AIThread.userSide) {
			int x1 = StepRecord[StepIndex][0] / 15;
			int y1 = StepRecord[StepIndex][0] % 15;
			int x2 = StepRecord[StepIndex][1] / 15;
			int y2 = StepRecord[StepIndex][1] % 15;
			StepIndex--;
			cursorX = x2;
			cursorY = y2;
			try {
				Thread.currentThread();
				Thread.sleep(1000L);
			} catch (Exception exception) {
			}
			repaint();
			Board[x2][y2] = 0;
			cursorX = x1;
			cursorY = y1;
			Board[x1][y1] = 0;
			repaint();
		}
	}

	public static MainGamePlayWithAI getInstance() {
		if (instance == null)
			instance = new MainGamePlayWithAI();
		cursorX = 7;
		cursorY = 7;
		StepIndex = -1;
		ShowLost = false;
		ShowWin = false;
		for (int i = 0; i < 15; i++) {
			for (int j = 0; j < 15; j++)
				Board[i][j] = 0;

		}

		return instance;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91小视频免费观看| 亚洲欧美日韩国产中文在线| 亚洲欧洲一区二区在线播放| 视频一区二区不卡| 91免费视频大全| 久久欧美一区二区| 婷婷开心激情综合| 欧美午夜精品久久久久久超碰| 国产欧美日韩综合| 免费视频最近日韩| 欧美日韩国产高清一区| 亚洲欧美一区二区在线观看| 九色porny丨国产精品| 欧美亚洲综合一区| 亚洲精品免费在线播放| 床上的激情91.| 国产日韩精品一区二区三区 | 国产色综合一区| 午夜精品免费在线| 欧美区视频在线观看| 亚洲一区二区三区四区五区中文 | 99久久精品费精品国产一区二区| 久久婷婷综合激情| 韩国成人精品a∨在线观看| 日韩欧美一区二区免费| 美女高潮久久久| 日韩欧美的一区| 韩国女主播一区| 久久久久久影视| 国产成人综合网站| 国产精品网站在线| 91免费在线看| 亚洲国产婷婷综合在线精品| 欧美日韩精品一区二区三区蜜桃| 亚洲www啪成人一区二区麻豆| 欧洲av在线精品| 日韩电影网1区2区| 精品精品欲导航| 国产精品资源网站| 国产精品久久久久久久久免费桃花| 成人一区二区视频| 亚洲欧洲中文日韩久久av乱码| 欧美做爰猛烈大尺度电影无法无天| 亚洲午夜久久久久| 91精品国产91综合久久蜜臀| 九九精品一区二区| 国产精品久久毛片a| 色94色欧美sute亚洲线路二 | 婷婷开心久久网| 欧美大片在线观看一区| 成人综合在线观看| 亚洲一区二区三区视频在线| 日韩三级av在线播放| 成人一区二区三区中文字幕| 亚洲综合视频网| 亚洲国产成人在线| 欧美视频第二页| 国产一区二区三区四区五区入口| 国产精品你懂的| 欧美三级蜜桃2在线观看| 久久精品国产77777蜜臀| 国产精品网曝门| 欧美精品18+| 成人黄页在线观看| 午夜私人影院久久久久| 国产人伦精品一区二区| 欧美日本高清视频在线观看| 国产盗摄精品一区二区三区在线| 亚洲一区二区三区激情| 欧美精品一区男女天堂| 欧美影院一区二区三区| 韩国视频一区二区| 亚洲午夜久久久久中文字幕久| 久久婷婷综合激情| 欧美日韩国产高清一区二区三区 | 国产精品一二二区| 亚洲一卡二卡三卡四卡五卡| 久久久久久久久蜜桃| 欧美人伦禁忌dvd放荡欲情| 成人国产精品免费网站| 久久超碰97中文字幕| 亚洲一级电影视频| 亚洲婷婷国产精品电影人久久| 欧美电视剧在线观看完整版| 欧美日韩在线电影| 色婷婷国产精品| 国产成人精品三级麻豆| 日韩av一区二区三区四区| 亚洲精品日韩专区silk| 国产精品三级久久久久三级| 日韩精品一区二区三区swag| 欧美伦理视频网站| 色婷婷综合激情| 91首页免费视频| 成人毛片在线观看| 国产盗摄精品一区二区三区在线| 美腿丝袜亚洲一区| 日韩电影免费在线| 五月婷婷综合网| 亚洲一区二区三区激情| 亚洲女人****多毛耸耸8| 国产精品三级久久久久三级| 2023国产精华国产精品| 精品国产乱码91久久久久久网站| 欧美一区二区三区的| 制服丝袜亚洲精品中文字幕| 欧美色偷偷大香| 欧美三级韩国三级日本一级| 欧美影院一区二区| 欧美日韩精品电影| 91超碰这里只有精品国产| 欧美美女网站色| 欧美日韩国产成人在线免费| 欧美久久久一区| 欧美疯狂性受xxxxx喷水图片| 欧美美女激情18p| 4438成人网| 精品国产在天天线2019| 久久综合色播五月| 日本一区二区免费在线观看视频| 日本一区二区三区四区| 中文字幕一区二区5566日韩| 一区二区在线看| 香蕉影视欧美成人| 99视频国产精品| 日本二三区不卡| 777久久久精品| 久久综合久色欧美综合狠狠| 欧美韩日一区二区三区| 亚洲女子a中天字幕| 亚洲成a天堂v人片| 久久草av在线| 不卡免费追剧大全电视剧网站| 色综合色综合色综合色综合色综合| 欧美性受极品xxxx喷水| 精品人伦一区二区色婷婷| 国产欧美日韩中文久久| 亚洲一区二区三区四区中文字幕| 美日韩一区二区| 成人a级免费电影| 在线观看日韩国产| 精品久久久久av影院| 中文字幕日本不卡| 喷白浆一区二区| 成人av集中营| 在线播放中文字幕一区| 国产欧美一区二区三区在线看蜜臀 | 亚洲高清免费在线| 九九**精品视频免费播放| 91在线视频网址| 日韩一区二区三区在线观看| 国产精品久久夜| 奇米精品一区二区三区四区 | 亚洲成人午夜影院| 国产成人精品三级| 欧美日韩www| 成人欧美一区二区三区1314 | 欧美性猛片xxxx免费看久爱| 久久精品人人爽人人爽| 亚洲成年人网站在线观看| 成人美女视频在线观看18| 日韩一区二区在线免费观看| 一区二区高清在线| 国产福利一区二区三区在线视频| 欧美浪妇xxxx高跟鞋交| 亚洲欧洲制服丝袜| 国产精品456| 日韩精品专区在线影院重磅| 夜夜嗨av一区二区三区四季av | 日韩一区二区三区免费看| 国产精品成人在线观看| 国产麻豆成人传媒免费观看| 欧美日韩高清在线| 洋洋成人永久网站入口| 成人一区二区三区在线观看| 2024国产精品视频| 麻豆视频一区二区| 欧美一区二区在线免费播放 | 欧美欧美欧美欧美| 一区二区三区免费在线观看| 成人av在线播放网站| 久久日韩粉嫩一区二区三区| 六月婷婷色综合| 欧美一区二区精品久久911| 亚洲综合在线五月| 91蝌蚪国产九色| 亚洲欧美日韩人成在线播放| av一二三不卡影片| 中文字幕欧美日本乱码一线二线 | 国产在线视频一区二区三区| 91精品国产色综合久久ai换脸| 亚洲综合精品久久| 精品视频999| 99视频在线精品| 亚洲视频一二三| 一本到不卡免费一区二区| 亚洲三级在线免费| 欧美亚洲动漫另类| 天天影视色香欲综合网老头| 777欧美精品|