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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? serverchess.java

?? 基于java語言編程實(shí)現(xiàn)的簡(jiǎn)單ftp協(xié)議源碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號(hào):
//////////////////////////////////////////////////////////////////////////////
//
//SeverChess.java
//
//Created by Guanyi-Zhao
//
//////////////////////////////////////////////////////////////////////////////
//Readme:
//        創(chuàng)建五子棋的界面雙方能夠?qū)模⑶夷軌蛲瑫r(shí)用漢語聊天。 
//        這是服務(wù)器端的源代碼
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

//棋點(diǎn)類
class S_ChessPoint
{
	int x,y; //棋點(diǎn)位置坐標(biāo)
	boolean isChessPiece=false; //棋點(diǎn)上是否有棋子
	S_ChessPiece piece=null;
	S_ChessBoard board=null;
	
	//創(chuàng)建棋點(diǎn)對(duì)象
	public S_ChessPoint(int x,int y,boolean boo)
	{
		this.x=x;
		this.y=y;
		isChessPiece=boo;
	}
	
	//判斷棋點(diǎn)上是否有棋子
	public boolean isPiece()
	{
		return isChessPiece;
	}
	
	//設(shè)置棋點(diǎn)上是否有棋子
	public void setIsPiece(boolean boo)
	{
		isChessPiece=boo;
	}
	
	public int getX()
	{
		return x;
	}
	
	public int getY()
	{
		return y;
	}
	
	//設(shè)置棋點(diǎn)的位置	
	public void setX_Y(int x,int y)
	{
		this.x=x;
		this.y=y;
	}	
	
	//在棋點(diǎn)上放置棋子
	public void setPiece(S_ChessPiece piece,S_ChessBoard board)
	{
		this.board=board;
		this.piece=piece;
		board.add(piece);
		int w=(board.unitWidth);
		int h=(board.unitHeight);
		piece.setBounds(x-w/2,y-h/2,w,h);
		isChessPiece=true;
		board.validate();		
	}
	
	//獲取棋點(diǎn)上的棋子
	 public S_ChessPiece getPiece()
	 {
	 	return piece;
	 }	
}

//棋子類
class S_ChessPiece extends JLabel
{
    Color backColor=null; //棋子的背景色
    Color foreColor=null; //棋子的顏色
    String chessColor="Black"; //棋子顏色的類別
    int width=0,height=0;  //棋子的寬度和高度
    S_ChessBoard board=null;
    
    //創(chuàng)建棋子對(duì)象
    public S_ChessPiece(Color bc,Color fc,int width,int height,S_ChessBoard board)
    {
    	backColor=bc;
    	foreColor=fc; 
    	this.width=width;
    	this.height=height;   	
    	this.board=board;
    	
    	setSize(width,height);
    	setBackground(bc);
      	addMouseListener(board);    	  	
    }
    
    //繪制棋子的外觀
    public void paint(Graphics g)
    {
    	g.setColor(foreColor);
    	g.fillOval(2,2,width-2,height-2);
    	g.setColor(Color.red);
    	g.drawOval(2,2,width-2,height-2);
    }
    
    //獲取棋子的寬度
    public int getWidth()
    {
    	return width;
    }
    
    //獲取棋子的高度
    public int getHeigth()
    {
    	return height;
    }
    
    //獲取棋子的顏色
    public Color getColor()
    {
    	return foreColor;
    }
    
    //獲取棋子的顏色類別
    public String chessColor()
    {
    	return chessColor;
    }
    
    //設(shè)置棋子的顏色類別
    public void setChessColor(String cc)
    {
    	chessColor=cc;
    }
}

//判斷輸贏的類
//這個(gè)類中用到二進(jìn)制運(yùn)算,用1來標(biāo)識(shí)棋點(diǎn)上有棋子,0來標(biāo)識(shí)棋點(diǎn)上沒有棋子
//用二進(jìn)制來減少循環(huán)次數(shù),提高了運(yùn)行的效率
class S_IsWon
{
	int []a;//存放棋盤的列,a[1]存放第一行的棋子,a[2]存放第二行的棋子...a[15]存放第15行的棋子。
	
	//構(gòu)造方法,使數(shù)組a[]實(shí)例化,并且置初始值為零,即棋盤上沒有棋子。
	public S_IsWon(int i)
	{
		a=new int[i+1];
		int j;
		for(j=0;j<=i;j++) //初始化所有的數(shù)據(jù)為零
		a[j]=0;
	}
	
	//行有五個(gè)棋子連在一起,即...11111...形式的二進(jìn)制數(shù)
	public int row(int n)
	{
		int f;
		f=(1<<n)+(1<<(n+1))+(1<<(n+2))+(1<<(n+3))+(1<<(n+4));
		return(f);
	}
	
	//判斷行是否滿足五連珠
	public boolean rowWon()
	{
		int i=0,j=0,flag=0;
		for(i=1;i<=15;i++)            //從1到15逐行判斷是否有五連珠出現(xiàn)
		{
			for(j=1;j<=11;j++)
			{
				if((a[i]&row(j))==row(j))
				flag++;            //flag為標(biāo)識(shí)五連珠出現(xiàn)的變量
			}
		}
		if(flag!=0) return true;            //有五連珠出現(xiàn)則返回真,否則為假
		else return false;
	}
	
	//判斷列是否滿足五連珠
	public boolean lineWon()
	{
		int i=0,j=0,flag=0;
		for(j=1;j<=15;j++)          //從1到15逐列判斷是否有五連珠出現(xiàn)
		{
			for(i=1;i<=11;i++)
			{
				if(((a[i]&(1<<j))==(1<<j))&&((a[i+1]&(1<<j))==(1<<j))&&((a[i+2]&(1<<j))==(1<<j))
				  &&((a[i+3]&(1<<j))==(1<<j))&&((a[i+4]&(1<<j))==(1<<j)))
				flag++;
			}
		}
		if(flag!=0) return true;
		else return false;
	}
	
	//判斷正對(duì)角線是否滿足五連珠
	public boolean diag1()
	{
		int i=0,j=0,flag=0;  //i、j、為控制循環(huán)的變量,flag為標(biāo)識(shí)五連珠出現(xiàn)的變量
		for(i=1;i<=11;i++)
		for(j=1;j<=11;j++)
		{
			//正對(duì)角線有五連珠出現(xiàn)的條件
			if((a[i]&(1<<j))==(1<<j)&&(a[i+1]&(1<<(j+1)))==(1<<(j+1))
			  &&(a[i+2]&(1<<(j+2)))==(1<<(j+2))&&(a[i+3]&(1<<(j+3)))==(1<<(j+3))
			  &&(a[i+4]&(1<<(j+4)))==(1<<(j+4)))
			  flag++;			 
		}
		if(flag!=0) return true;  //有五連珠出現(xiàn)則返回真,否則為假
		else return false;
	}
	
	//判斷反對(duì)角線是否滿足五連珠條件
	public boolean diag2()
	{
		int i=0,j=0,flag=0;
		for(i=1;i<=11;i++)
		for(j=15;j>=5;j--)
		{
			//反對(duì)角線有五連珠出現(xiàn)的條件
			if((a[i]&(1<<j))==(1<<j)&&(a[i+1]&(1<<(j-1)))==(1<<(j-1))
			  &&(a[i+2]&(1<<(j-2)))==(1<<(j-2))&&(a[i+3]&(1<<(j-3)))==(1<<(j-3))
			  &&(a[i+4]&(1<<(j-4)))==(1<<(j-4)))
			  flag++;
		}
		if(flag!=0) return true;         //有五連珠出現(xiàn)則返回真,否則為假
		else return false;
	}
	
	//整體綜合判斷棋盤上是否有五連珠出現(xiàn)
	public boolean isWon()
	{
		if(rowWon()||lineWon()||diag1()||diag2()) //這里用||運(yùn)算符,有短路規(guī)則,進(jìn)一步減少電腦的計(jì)算次數(shù)
		  return true;                                //提高程序的執(zhí)行效率
		else return false;                            //整個(gè)棋盤上有五連珠出現(xiàn)則返回真,否則為假  
	}
}

//棋盤類
class S_ChessBoard extends JPanel implements MouseListener
{
	public S_ChessPoint ppoint[][];  //棋盤中的點(diǎn):棋點(diǎn)
	public int unitWidth,unitHeight;  //棋盤單位格的寬和高
	int xx,yy;       //棋盤的行和列
	int x,y;         //記錄鼠標(biāo)的位置
				
	S_IsWon whiteWon=new S_IsWon(15);  //記錄白方是否獲勝
	S_IsWon blackWon=new S_IsWon(15);  //記錄黑方是否獲勝
	
	J_Server serverOne=new J_Server();//創(chuàng)建一個(gè)服務(wù)器serverOne
	DataOutputStream output=null;     //打開輸出流  
        DataInputStream input=null;       //打開輸入流  
      
        public boolean serverPlay=false;	//控制服務(wù)器端是否走棋的變量	 
	public boolean widthPlay=true,blackPlay=false;  //控制走棋順序的變量
	
	JPanel pan=null;              //創(chuàng)建用于顯示走棋以及聊天的界面界面
	JTextArea displayArea=null;     
	JTextField enterField=null;
		
	//構(gòu)造方法,創(chuàng)建對(duì)弈棋盤和聊天的界面
	public S_ChessBoard(int w,int h,int r,int c)
	{
		setLayout(null);
		addMouseListener(this);		
		setBackground(Color.orange);
		Color bc=getBackground();
				
		unitWidth=w;
		unitHeight=h;
		xx=r;
		yy=c;			
		ppoint=new S_ChessPoint[r+1][c+1];
		//棋盤的左上角的點(diǎn)是point[1][1],
		//第一行的點(diǎn)是point[1][1],point[2][1],point[3][1]...point[xx][1],
		//右下角的點(diǎn)是point[xx][yy].
		
		pan=new JPanel();
		pan.setLayout(new BorderLayout());    //設(shè)置pan的布局方式		
		
		enterField=new JTextField();
		enterField.setEnabled(true);
		enterField.setSize(190,200);
		pan.add( enterField,BorderLayout.SOUTH );
		
		displayArea=new JTextArea();		
		displayArea.setBackground(Color.green);
		displayArea.setSize(190,390);
		pan.add(new JScrollPane( displayArea ),BorderLayout.CENTER);
		
		pan.setSize(150,600);
		pan.setBackground(Color.white);
		
		enterField.addActionListener(new ActionListener()
		{             
                      public void actionPerformed( ActionEvent ev )
                      {
                         sendData(ev.getActionCommand());
                      }   
                }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91一区二区在线| 懂色av一区二区夜夜嗨| 一区二区三区成人| 国产精品理伦片| 日韩一区欧美小说| 亚洲欧美在线观看| 亚洲自拍偷拍麻豆| 视频一区二区中文字幕| 日韩精品一二区| 日本麻豆一区二区三区视频| 亚洲国产精品久久久男人的天堂 | 自拍偷拍亚洲综合| **性色生活片久久毛片| 一区二区三区在线播放| 一区二区欧美在线观看| 午夜精品免费在线观看| 久久69国产一区二区蜜臀| 国产精品一区二区在线观看不卡| 国产精品一区二区在线观看不卡| www.亚洲人| 欧美日韩国产bt| 久久免费国产精品| 亚洲日本va在线观看| 午夜免费欧美电影| 狠狠色丁香久久婷婷综| 国产91对白在线观看九色| 欧亚一区二区三区| 欧美va亚洲va国产综合| 欧美极品另类videosde| 亚洲国产欧美另类丝袜| 国产在线精品一区二区| 91麻豆国产自产在线观看| 777a∨成人精品桃花网| 国产精品毛片大码女人| 亚洲国产综合色| 国产河南妇女毛片精品久久久| 欧美性xxxxxxxx| 国产区在线观看成人精品| 婷婷一区二区三区| 波多野结衣一区二区三区| 日韩一区二区电影在线| 一区二区在线观看不卡| 国产成人在线视频免费播放| 欧美伊人久久大香线蕉综合69| 欧美zozozo| 亚洲大片精品永久免费| 9i在线看片成人免费| 精品国产区一区| 亚洲一区二区视频在线观看| 成人午夜私人影院| 2020国产精品| 青青草成人在线观看| 91九色02白丝porn| 国产精品成人免费精品自在线观看 | 久久久亚洲高清| 午夜av电影一区| 色综合久久中文字幕综合网| 久久久噜噜噜久久人人看 | 亚洲成人久久影院| 成人动漫av在线| 欧美精品一区视频| 免费成人av在线| 在线不卡中文字幕播放| 亚洲一区二区三区免费视频| aaa国产一区| 亚洲欧洲另类国产综合| 成人黄色大片在线观看| 中文字幕欧美激情一区| 国产乱码一区二区三区| 国产亚洲视频系列| 国产一区二区免费视频| 精品国产免费人成在线观看| 久久99久久久久| 日韩精品一区二区在线观看| 久久精品噜噜噜成人88aⅴ| 欧美美女bb生活片| 视频一区二区三区中文字幕| 欧美精品在欧美一区二区少妇| 亚洲国产精品久久久男人的天堂| 欧美一a一片一级一片| 午夜精品一区二区三区三上悠亚| 欧美日韩国产免费| 日韩电影网1区2区| 精品欧美一区二区久久| 国产在线精品不卡| 日本一区二区高清| 色综合天天天天做夜夜夜夜做| 亚洲色图另类专区| 欧美精品1区2区3区| 激情国产一区二区| 久久精品一区四区| 成人app下载| 亚洲一区二区三区四区五区中文 | 亚洲黄色av一区| 欧美系列亚洲系列| 久久99国产精品久久| 国产精品人成在线观看免费| 色噜噜久久综合| 麻豆国产精品777777在线| 国产日韩成人精品| 欧美性大战久久久久久久| 久久99国产精品麻豆| 中文字幕字幕中文在线中不卡视频| 在线观看日产精品| 国产在线观看免费一区| 亚洲精品自拍动漫在线| 日韩欧美国产一区二区三区| 国产成人高清在线| 亚洲一区二区精品视频| 久久久不卡网国产精品二区| 色欧美88888久久久久久影院| 天天色综合成人网| 国产精品嫩草99a| 欧美二区乱c少妇| 97se狠狠狠综合亚洲狠狠| 日本欧美肥老太交大片| 自拍偷拍亚洲激情| 久久婷婷色综合| 91福利视频久久久久| 风间由美一区二区av101| 日韩精品一级中文字幕精品视频免费观看 | 国产日韩精品久久久| 欧美视频精品在线观看| 播五月开心婷婷综合| 久久精品国产99久久6| 亚洲国产色一区| 国产精品福利电影一区二区三区四区| 欧美手机在线视频| 91在线视频18| 懂色av一区二区夜夜嗨| 国模一区二区三区白浆| 亚洲va欧美va天堂v国产综合| 亚洲国产高清aⅴ视频| 欧美成人精品福利| 777a∨成人精品桃花网| 日本韩国一区二区三区视频| 成人激情综合网站| 国产黑丝在线一区二区三区| 激情成人综合网| 极品少妇一区二区| 蜜桃av一区二区在线观看| 亚洲午夜电影在线| 一级中文字幕一区二区| 成人免费小视频| 成人欧美一区二区三区| 国产精品动漫网站| 亚洲欧洲日韩av| 亚洲欧洲av色图| 亚洲男同性恋视频| 一区二区三区欧美视频| 亚洲伊人色欲综合网| 亚洲精品乱码久久久久久日本蜜臀| 国产精品久久久久一区| 中文字幕av一区二区三区免费看| 久久精品视频一区二区| 国产色爱av资源综合区| 欧美国产一区视频在线观看| 国产精品天天看| 《视频一区视频二区| 亚洲精品高清在线观看| 亚洲资源中文字幕| 日韩不卡一区二区三区| 久久99国内精品| 国产乱国产乱300精品| 国产999精品久久| 91麻豆国产香蕉久久精品| 欧美在线三级电影| 欧美一级在线观看| 久久久亚洲午夜电影| 中文字幕国产一区二区| 亚洲精品中文在线观看| 秋霞成人午夜伦在线观看| 国产一区视频在线看| av一区二区三区黑人| 91福利在线观看| 精品国产一区二区三区四区四| 久久精品视频一区二区| 亚洲免费成人av| 麻豆视频观看网址久久| 成人精品视频.| 精品视频一区二区三区免费| 欧美变态凌虐bdsm| 国产精品成人免费精品自在线观看| 尤物在线观看一区| 国产自产高清不卡| 91蜜桃网址入口| 久久先锋资源网| 亚洲综合在线免费观看| 国内国产精品久久| 欧美视频在线播放| 久久精品免视看| 琪琪一区二区三区| 99久久精品99国产精品| 日韩欧美自拍偷拍| 亚洲一线二线三线视频| 国产一区二区在线电影| 欧美综合欧美视频| 国产精品热久久久久夜色精品三区 | 国产精品一区二区久久不卡| 91一区在线观看|