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

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

?? othellopanel.java

?? 黑白棋123 黑白棋456 大學畢業設計 做很好
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
// Othello 主類
import java.awt.*;
import java.applet.*;
import MySocket;
import ChatFrm;
import MessageBox;
import ImgButton;
import java.awt.event.*;

class OthelloPanel extends Panel
{

	/* ***********************
		My Parameter
	**************************/

	Applet applet;
	
	int m_value[][];//=new int [9][9];
	Image m_chessGif,m_backgdGif,m_swordGif,m_faceGif;
	Image with_net[],with_loc[],with_com[];
	
	int m_TempX,m_TempY; //棕色棋子(標志可以放子)位置
	int m_side; //當前方
	int m_step; //當前步數
	int m_CurrentX,m_CurrentY; //當前位置
	int  m_chess[][]; //棋盤狀況
	int m_TrunkMin ,m_BranchMin;
	boolean m_TempPut; //是否有棕色子存在
	boolean m_exit; //
	int m_BackupX[]; //存儲每一步棋
	int m_BackupY[];
	
	int m_WhichSide; 
	boolean m_MePut; //是否該自己走棋
	MySocket m_socket;
	ChatFrm m_ChatFrm;
	int m_State; //當前狀態
	String m_Rival; //網絡對戰時的對手的名字
	int m_RivalSide; //網絡對戰時的對手黑白
	
	final static int FREE = 0; //
	final static int WITH_NET = 1; //網絡對戰中
	final static int WITH_COM = 2; //人機對戰中
	final static int WITH_LOC = 3; //本地兩人對戰
		
	// 關于棋盤畫面的一些數值
	static int SEARCH_DEEPNESS;
	final static int WHITE = 1;
	final static int BLACK = -1 ;
	final static int TEMP = 2;
	final static int NONE = 0;
	
	static int SWORD_B_OFF_X,SWORD_B_OFF_Y,SWORD_W_OFF_X,SWORD_W_OFF_Y;
	static int SWORD_WIDTH,SWORD_HEIGHT;
	
	static int CHESS_OFF_X,CHESS_GRILLE_X,CHESS_OFF_Y,CHESS_GRILLE_Y;
	static int CHESS_WIDTH,CHESS_HEIGHT;
	
	static int BACK_OFF_X,BACK_OFF_Y;
	static int BACK_WIDTH,BACK_HEIGHT;
	
	// 自定義的按鈕
	ImgButton m_bNew,m_bPass,m_bBack,m_bNet,m_bLoc;
	
	int ComputePut;
	int I_Put;
	int PASS ;
	
	public Dimension getPreferredSize()
	{
		return new Dimension(m_backgdGif.getWidth(this),m_backgdGif.getHeight(this));
	}
	/* ********************
	
		初始化函數
	
	***********************/
	
	public OthelloPanel(Applet main)
	{
		applet = main;
		
		setSize(524,440);
		InitData();
		InitGra();
		m_socket = null ;
		m_ChatFrm = new ChatFrm(this);	
		m_State = WITH_LOC;	
	//	paint(getGraphics());
	}
	
	void InitGra()
	{
		Graphics g= this.getGraphics();
		with_net = new Image[3];
		with_loc = new Image[3];
		with_com = new Image[3];
		
		//調入位圖按鈕的圖片		
		m_chessGif = getImage ("image\\chess.gif ");
		m_swordGif = getImage ("image\\sword.gif");
		m_faceGif =  getImage ("image\\face.gif");
		m_backgdGif = getImage ("image\\back.jpg");
		
		with_net[0] = getImage("image\\withnetc.gif");
		with_net[1] = getImage("image\\withneth.gif");
		with_net[2] = getImage("image\\withnetd.gif");
				   
		with_com[0] = getImage("image\\withcomc.gif");
		with_com[1] = getImage("image\\withcomh.gif");
		with_com[2] = getImage("image\\withcomd.gif");
				   
		with_loc[0] = getImage("image\\withlocc.gif");
		with_loc[1] = getImage("image\\withloch.gif");
		with_loc[2] = getImage("image\\withlocd.gif");
				   
		Image cold,hot,down;
		cold = this.getImage("image\\newc.Gif");
		hot = this.getImage ("image\\newh.gif");
		down = this.getImage("image\\newd.gif");
		m_bNew.setImage(cold,hot,down,cold);
		
		cold = this.getImage("image\\backc.gif");
		hot = this.getImage ("image\\backh.gif");
		down = this.getImage("image\\backd.gif");
		m_bBack.setImage(cold,hot,down,cold);
		
		cold = this.getImage("image\\passc.gif");
		hot = this.getImage ("image\\passh.gif");
		down = this.getImage("image\\passd.gif");
		m_bPass.setImage(cold,hot,down,cold);
		
		cold = this.getImage("image\\netc.gif");
		hot = this.getImage("image\\neth.gif");;
		down = this.getImage("image\\netd.gif");
		m_bNet.setImage(cold,hot,down,cold);
		
		m_bLoc.setImage(with_loc[0],with_loc[1],with_loc[2],with_loc[0]);
	}
	
	public Image getImage(String filename)
	{
		return applet.getImage(applet.getDocumentBase(),filename);
	}
	
	void InitData()
	{
		//常量初始化		
		ComputePut = -1;
		I_Put = 1;
		SEARCH_DEEPNESS = 4 ;
		PASS = -1;

		BACK_OFF_X = 0;
		BACK_OFF_Y = 0;

		SWORD_B_OFF_X = 51 + BACK_OFF_X;
		SWORD_B_OFF_Y = 111 + BACK_OFF_Y;
		SWORD_W_OFF_X = 51 + BACK_OFF_X;
		SWORD_W_OFF_Y = 250 + BACK_OFF_Y;
		SWORD_WIDTH = 32;
		SWORD_HEIGHT = 32;
	
		CHESS_OFF_X = 168 + BACK_OFF_X;
		CHESS_OFF_Y = 62 + BACK_OFF_Y;
		CHESS_GRILLE_X = 35;
		CHESS_GRILLE_Y = 35;
		CHESS_WIDTH = 26;
		CHESS_HEIGHT = 26;
	
		BACK_WIDTH = 520;
		BACK_HEIGHT = 420;
	
		m_chess = new int[10][10];
		m_BackupX = new int[82];
		m_BackupY = new int[82];
		
		this.m_value  = new int[10][10];
		
		int i;
		int j;
		
		for (i=1;i<=8;i++)
		for (j=1;j<=8;j++)
			m_value[i][j] = 1;

		//棋盤各位置的權值
		m_value[1][1] = m_value[8][8] = m_value[1][8] = m_value[8][1] = 10;
		m_value[2][2] = m_value[7][7] = m_value [2][7] = m_value [7][2] = -6;
		m_value[2][1] = m_value [7][1] = m_value[1][2] = m_value[1][7] = m_value[7][1] = m_value[7][7] = m_value[2][8] = m_value[7][8] = -6;
		
		for(i=3;i<=6;i++)
		{
			m_value[1][i] = m_value[i][1] = m_value [8][i] =m_value[i][8] =4;
		}

		RefreshData();
		
		this.setLayout(null);
		
		//初始化5個按鈕
		m_bNew = new ImgButton("New");
		m_bPass = new ImgButton("Pass");
		m_bBack = new ImgButton("Back");
		m_bNet = new ImgButton("Net");
		m_bLoc = new ImgButton("Loc");

		m_bNew.setBounds(20,5,40,60);
		m_bPass.setBounds(75,5,40,60);
		m_bBack.setBounds(130,5,40,60);
		m_bNet.setBounds( 355,5,40,60);
		m_bLoc.setBounds( 410,10,55,58);
		
		add(m_bNew);
		add(m_bPass);
		add(m_bBack);
		add(m_bLoc);
		add(m_bNet);
		
		ButtonListener listener = new ButtonListener();
		m_bNew.addActionListener(listener);
		m_bPass.addActionListener(listener);
		m_bBack.addActionListener(listener);
		m_bNet.addActionListener(listener);
		m_bLoc.addActionListener(listener);
		this.addMouseListener(new MListener());
		this.addMouseMotionListener(new MMListener());
	}
	
	void RefreshData()
	{

		//棋盤初始化
		int x,y;

		for (x=1;x<=8;x++)
		for (y=1;y<=8;y++)
			m_chess[x][y]=0;
			m_chess[4][4]=WHITE;
			m_chess[5][5]=WHITE;
			m_chess[4][5]=BLACK;
			m_chess[5][4]=BLACK;

		for(x=0;x<=40;x++)
		{	  
			m_BackupX[x] = 0;
			m_BackupY[x] = 0;
		}

		m_TempX = m_TempY = 0;
		m_CurrentX = m_CurrentY=0;
		m_TempPut=false;
		m_side=BLACK;
		m_step=1;
		m_WhichSide=BLACK;

		m_MePut = true;

	}

	void TRACE(String s)
	{
		System.out.println(s+"\n");
	}

	/* *******************************
	
	AI 算法函數
	
	  ********************************/
	
	void  Put (int chess[][],int x,int y,int side) 
	{
		//在某位置上放置棋子
		
		int i,j,ii,jj;
		if (!((x<=8) && (x>=1) && (y<=8) && (y>=1) && (chess[x][y] == 0) )) 
		{ 
			Integer _px,_py,_c;
			_px = new Integer(x);
			_py = new Integer (y);
			_c = new Integer  (chess[x][y]);
			String s = "Put Error in : "+_px.toString () + '.' +_py.toString () + "chess[][]  is " +_c.toString();
			MessageBox.createMessageBox (s,"Error");
			return; 
		}

		chess[x][y]=side;

		if (y<=6)
		{
			if (chess[x][y+1]==-side)   // down  
			{
				for (j=y+2;j<=8;j++)                    
				if(chess[x][j]==side)   
				{
					for(jj=y+1;jj<=j-1;jj++)       
					chess[x][jj]=side;
					break;
				}
				else if(chess[x][j]==0) break;			                                                                
			}
			
			if (chess[x+1][y+1]==-side)   // right down
			{
				j = y+2; 
				for(i=x+2;(i<=8 && j<=8);i++)
				{
					if( chess[i][j]==side)
					{  
						jj = y+1;
						for(ii=x+1;(ii<=i-1 && jj<=j-1);ii++) 
						{ 
							chess[ii][jj]=side;
							jj++;
						}
						break;
					}
					else if(chess[i][j]==0) break;	
					j++;
				}
			} 

			if (chess[x-1][y+1]==-side)
			{
				j = y+2;
				for(i=x-2;(i>=1 && j<=8);i--)
				{ 
					if( chess[i][j]==side) 
					{   
						jj = y+1;
						for(ii=x-1;(ii>=i+1 && jj<=j-1);ii--)    
						{
							chess[ii][jj]=side;
							jj++;
						}
						break;
					}
					else if(chess[i][j]==0) break;	   
					j++;
				}
			} 
		} 


		if (y>=2)
		{
			if (chess[x][y-1]==-side)
			{
				for(j=y-2;j>=1;j--)
				if (chess[x][j]==side)
				{
					for(jj=y-1;jj>=j+1;jj--) 
					chess[x][jj]=side;
					break;
				}
				else if(chess[x][j]==0) break;
			}

			if (chess[x+1][y-1]==-side)
			{
				j = y-2;
				for(i=x+2;(i<=8 && j>=1);i++) 
				{
					if( chess[i][j]==side)
					{
						jj = y-1;
						for(ii=x+1;(ii<=i-1 && jj>=j+1);ii++) 
						{
							chess[ii][jj]=side;
							jj--;
						}
						break;
					}		                                                                  
					else if(chess[i][j]==0) break; 
					j--;
				}
			}

			if (chess[x-1][y-1]==-side)
			{
				j = y-2;
				for(i=x-2;(i>=1 && j>=1);i--) 
				{
					if (chess[i][j]==side)
					{
						jj = y-1;
						for(ii=x-1;(ii>=i+1 && jj>=j+1);ii--)
						{
							chess[ii][jj]=side;
							jj--;
						}
						break;
					}
					else if(chess[i][j]==0) break;	  
					j--;
				}
			}
		}

		if (x<=6)
		{
			if (chess[x+1][y]==-side)
			{
				for(i=x+2;i<=8;i++)
				if (chess[i][y]==side)
				{
					for(ii=x+1;ii<=i-1;ii++) 
					chess[ii][y]=side;
					break;
				}
				else if(chess[i][y]==0) break;		                                                                    
			}
		}

		if (x>=2)
		{
			if (chess[x-1][y]==-side)
			{
				for(i=x-2;i>=1;i--) 
				if (chess[i][y]==side)
				{
					for(ii=x-1;ii>=i+1;ii--) 
					chess[ii][y]=side;
					break;
				}
				else if(chess[i][y]==0) break;	                                                                     
			}
		}
	} 

	boolean Judge( int chess[][],int x,int  y,int side)
	{ 
		//判斷是否可以放置
		int i,j;
		if (!((x<=8) && (x>=1) && (y<=8) && (y>=1))) 
		{
			Integer _px,_py;
			_px = new Integer(x);
			_py = new Integer (y);
			String s = "Judge Error in : "+_px.toString () + '.' +_py.toString ();
			MessageBox.createMessageBox (s);
			return false;
		}

		if (chess[x][y]==0)
		{
			if (y<=6)
			{
				if(chess[x][y+1]==-side)
				{
					for (j=y+2;j<=8;j++)
					if(chess[x][j]==side){return true;}
					else if (chess[x][j]==0) break;
				}
				if(chess[x-1][y+1]==-side)
				{
					j = y+2;
					for (i=x-2;(j<=8)&&(i>=1);i--)
					{
						if(chess[i][j]==side)	{return true;}
						else if (chess[i][j]==0) break;
						j++;
					}
				}
				if(chess[x+1][y+1]==-side)
				{
					j = y+2;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天操天天干天天综合网| 久久亚洲精品国产精品紫薇| 免费高清成人在线| 久久精品视频免费| 色呦呦国产精品| 国产在线精品视频| 午夜精品一区二区三区免费视频| 欧美mv日韩mv| 色琪琪一区二区三区亚洲区| 国产主播一区二区| 亚洲va韩国va欧美va| 国产精品视频一二三区| 国产精品短视频| 2023国产精华国产精品| 欧美日韩一级视频| 91首页免费视频| 亚洲欧美日韩电影| 制服丝袜av成人在线看| 精品制服美女丁香| 亚洲欧洲美洲综合色网| 91国偷自产一区二区开放时间| 最近中文字幕一区二区三区| 91久久精品一区二区三| 视频一区中文字幕国产| 久久综合精品国产一区二区三区| 国产一级精品在线| 国产欧美日本一区二区三区| 色婷婷精品久久二区二区蜜臂av| 免费观看在线综合| 亚洲精品网站在线观看| 欧美成人video| 欧美日韩国产高清一区| 91丝袜美腿高跟国产极品老师| 天堂久久一区二区三区| 亚洲欧美一区二区久久| 欧美变态tickling挠脚心| 欧美吞精做爰啪啪高潮| 粉嫩一区二区三区在线看| 久久99国产精品成人| 首页综合国产亚洲丝袜| 亚洲激情在线播放| 亚洲另类色综合网站| 欧美国产精品v| 国产精品不卡在线| 午夜影院久久久| 亚洲视频中文字幕| 91丨porny丨首页| 天天做天天摸天天爽国产一区| 欧美成人r级一区二区三区| 天堂va蜜桃一区二区三区 | 日韩欧美高清dvd碟片| 极品少妇xxxx精品少妇| 视频一区视频二区中文| 欧美一区二区三区在线电影| 国产成人综合自拍| 日韩不卡免费视频| 国产亚洲欧洲一区高清在线观看| 欧美高清在线视频| 欧美日本一道本| 精品一区二区三区免费播放| 亚洲第一av色| 久久精品国产久精国产爱| 蜜桃精品视频在线| 国产精品18久久久久久vr| 国产精品一区二区三区网站| 韩国女主播成人在线观看| 国产精品亚洲午夜一区二区三区| 国产成人av电影在线| 色综合网色综合| 91精品国模一区二区三区| 久久综合狠狠综合久久综合88| 国产日本欧美一区二区| 国产精品久久久一本精品| 亚洲国产一区二区三区| 久久99国产精品久久| av在线免费不卡| 日韩欧美国产系列| 国产精品人人做人人爽人人添| 亚洲一区二区三区四区在线免费观看| 日韩一区精品字幕| 97久久超碰国产精品电影| 日韩午夜在线播放| 亚洲男人天堂一区| 国产成人8x视频一区二区| 欧美精品vⅰdeose4hd| 亚洲免费观看高清完整版在线观看| 欧美bbbbb| 51久久夜色精品国产麻豆| 中文字幕 久热精品 视频在线| 无码av免费一区二区三区试看| 99久久精品国产麻豆演员表| 日韩欧美国产三级| 男女男精品网站| 欧美日韩一区不卡| 夜夜精品视频一区二区| 91麻豆自制传媒国产之光| 久久久精品tv| 黄色日韩网站视频| 久久夜色精品国产噜噜av| 国内精品嫩模私拍在线| 欧美xxxx老人做受| 国产在线精品一区二区不卡了| 制服视频三区第一页精品| 天堂av在线一区| 欧美二区三区91| 日本欧美大码aⅴ在线播放| 69久久99精品久久久久婷婷| 午夜精品爽啪视频| 日韩精品一区国产麻豆| 国产一区二区美女| 国产精品久久三区| 在线免费观看日韩欧美| 日韩激情av在线| 日韩免费视频线观看| 国产成人精品影院| 亚洲欧美国产毛片在线| 91麻豆精品91久久久久久清纯| 日韩国产高清影视| 国产精品天美传媒| 欧美伊人精品成人久久综合97 | 中文字幕一区二区三中文字幕| 99视频在线精品| 日韩精品欧美精品| 中文字幕欧美日韩一区| 色老头久久综合| 国产精品12区| 天天av天天翘天天综合网色鬼国产| 久久老女人爱爱| 欧美精品一二三四| 99久久精品免费| 国产麻豆精品久久一二三| 亚洲午夜一区二区三区| 中文字幕在线观看不卡| ww久久中文字幕| 欧美肥妇free| 在线观看一区二区精品视频| 国产91精品欧美| 国产精品一区久久久久| 午夜精品久久久久久久蜜桃app| 国产欧美一区二区精品性| 日韩欧美一级片| 日韩欧美国产综合在线一区二区三区| 岛国精品在线观看| 国产白丝精品91爽爽久久| 狠狠色狠狠色合久久伊人| 首页亚洲欧美制服丝腿| 亚洲444eee在线观看| 亚洲综合色网站| 午夜久久久久久久久久一区二区| 亚洲卡通动漫在线| 中文字幕综合网| 亚洲午夜精品在线| 三级欧美韩日大片在线看| 欧美aaaaaa午夜精品| 青青草成人在线观看| 国产一区 二区 三区一级| 国产一区二区主播在线| 波多野结衣在线aⅴ中文字幕不卡| 韩国v欧美v日本v亚洲v| 国产精品1区二区.| caoporn国产一区二区| 欧美性大战久久久| 欧美一区二区三区系列电影| 欧美精品一区男女天堂| 国产精品家庭影院| 午夜不卡在线视频| 国产激情91久久精品导航| 成人国产免费视频| 欧美日本韩国一区| 久久久久高清精品| 亚洲国产视频a| 国产成人精品一区二区三区四区 | 国产偷国产偷亚洲高清人白洁| 中文字幕五月欧美| 免费看日韩a级影片| 色综合视频一区二区三区高清| 欧美一区二区三区四区久久| 国产女人18水真多18精品一级做| 一区二区三区在线观看网站| 国产在线视视频有精品| 欧美日韩国产综合一区二区| 久久久久国产精品麻豆| 日本视频一区二区| 91福利视频网站| 中文字幕中文乱码欧美一区二区| 美女视频黄a大片欧美| 欧美在线啊v一区| 亚洲日本护士毛茸茸| 成人污视频在线观看| 精品日本一线二线三线不卡| 亚洲欧洲制服丝袜| 91免费精品国自产拍在线不卡| 日本一区二区三区视频视频| 激情欧美一区二区| 26uuu国产日韩综合| 国产一区二区视频在线播放| 久久只精品国产| 成人晚上爱看视频| 国产精品看片你懂得 | 亚洲另类在线一区|