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

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

?? chesspad.java

?? 本實例是用java實現的網絡五子棋程序。程序由兩個部分組成:一部分為服務器端
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package com.fivechess.chessface;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;


/**
 * @author wufenghanren 
 * 顯示棋盤的Panel。此Panel實現了鼠標監聽器
 */
public class chessPad extends Panel implements MouseListener {
	public int chessPoint_x = -1, chessPoint_y = -1, chessColor = 1;

	int chessBlack_x[] = new int[200];//黑子的x坐標

	int chessBlack_y[] = new int[200];//黑子的y坐標

	int chessWhite_x[] = new int[200];//白子的x坐標

	int chessWhite_y[] = new int[200];//白子的y坐標

	int chessBlackCount = 0, chessWhiteCount = 0;

	int chessBlackWin = 0, chessWhiteWin = 0;

	public boolean isMouseEnabled = false, isWin = false, isInGame = false;

	public Label statusLabel = new Label("客戶端狀態");

	public TextField statusText = new TextField("請先連接服務器");//顯示客戶端狀態的文本框

	public Socket chessSocket;

	DataInputStream inData;

	DataOutputStream outData;

	public String chessSelfName = null;//己方的名字

	public String chessPeerName = null;//對方的名字

	public String host = null;

	public int port = 4331;

	public chessThread chessthread = new chessThread(this);

	/**
	 * 棋盤Panel的構造函數
	 */
	public chessPad() {
		setSize(440, 440);
		setLayout(null);
		setBackground(new Color(204, 204, 204));
		addMouseListener(this);
		add(statusLabel);
		statusLabel.setBounds(30, 5, 70, 24);
		add(statusText);
		statusText.setBounds(100, 5, 300, 24);
		statusText.setEditable(false);
	}

	/**
	 * 和服務器通信的函數
	 */
	public boolean connectServer(String ServerIP, int ServerPort)
			throws Exception {
		try {
			//利用參數創建一個Socket的實例來完成和服務器之間的信息交換
			chessSocket = new Socket(ServerIP, ServerPort);
			inData = new DataInputStream(chessSocket.getInputStream());
			outData = new DataOutputStream(chessSocket.getOutputStream());
			chessthread.start();
			return true;
		} catch (IOException ex) {
			statusText.setText("chessPad:connectServer:無法連接 \n");
		}
		return false;
	}

	/**
	 * 一方獲勝時的對棋局的處理
	 */
	public void chessVictory(int chessColorWin) {
		//清除所有的棋子
		this.removeAll();
		//將保存所有黑棋和白棋的位置坐標的數組清空,為西一盤棋做準備。
		for (int i = 0; i <= chessBlackCount; i++) {
			chessBlack_x[i] = 0;
			chessBlack_y[i] = 0;
		}
		for (int i = 0; i <= chessWhiteCount; i++) {
			chessWhite_x[i] = 0;
			chessWhite_y[i] = 0;
		}
		chessBlackCount = 0;
		chessWhiteCount = 0;
		add(statusText);
		statusText.setBounds(40, 5, 360, 24);
		//如果黑棋獲勝,計算雙方獲勝盤數,將雙方的戰績比在狀態文本框顯示出來。
		if (chessColorWin == 1) {
			chessBlackWin++;
			statusText.setText("黑棋勝,黑:白為" + chessBlackWin + ":" + chessWhiteWin
					+ ",重新開局,等待白棋下子...");
		}
		//白棋獲勝,同上。
		else if (chessColorWin == -1) {
			chessWhiteWin++;
			statusText.setText("白棋勝,黑:白為" + chessBlackWin + ":" + chessWhiteWin
					+ ",重新開局,等待黑棋下子...");
		}
	}

	/**
	 * 將各個棋子的坐標保存在數組里
	 */
	public void getLocation(int a, int b, int color) {

		if (color == 1) {
			chessBlack_x[chessBlackCount] = a * 20;
			chessBlack_y[chessBlackCount] = b * 20;
			chessBlackCount++;
		} else if (color == -1) {
			chessWhite_x[chessWhiteCount] = a * 20;
			chessWhite_y[chessWhiteCount] = b * 20;
			chessWhiteCount++;
		}
	}

	/**
	 * 依據五子棋的行棋規則判斷某方獲勝
	 */
	public boolean checkWin(int a, int b, int checkColor) {
		int step = 1, chessLink = 1, chessLinkTest = 1, chessCompare = 0;
		if (checkColor == 1) {
			chessLink = 1;
			for (step = 1; step <= 4; step++) {
				for (chessCompare = 0; chessCompare <= chessBlackCount; chessCompare++) {
					if (((a + step) * 20 == chessBlack_x[chessCompare])
							&& ((b * 20) == chessBlack_y[chessCompare])) {
						chessLink = chessLink + 1;
						if (chessLink == 5) {
							return (true);
						}
					}
				}
				if (chessLink == (chessLinkTest + 1))
					chessLinkTest++;
				else
					break;
			}
			for (step = 1; step <= 4; step++) {
				for (chessCompare = 0; chessCompare <= chessBlackCount; chessCompare++) {
					if (((a - step) * 20 == chessBlack_x[chessCompare])
							&& (b * 20 == chessBlack_y[chessCompare])) {
						chessLink++;
						if (chessLink == 5) {
							return (true);
						}
					}
				}
				if (chessLink == (chessLinkTest + 1))
					chessLinkTest++;
				else
					break;
			}
			chessLink = 1;
			chessLinkTest = 1;
			for (step = 1; step <= 4; step++) {
				for (chessCompare = 0; chessCompare <= chessBlackCount; chessCompare++) {
					if ((a * 20 == chessBlack_x[chessCompare])
							&& ((b + step) * 20 == chessBlack_y[chessCompare])) {
						chessLink++;
						if (chessLink == 5) {
							return (true);
						}
					}
				}
				if (chessLink == (chessLinkTest + 1))
					chessLinkTest++;
				else
					break;
			}
			for (step = 1; step <= 4; step++) {
				for (chessCompare = 0; chessCompare <= chessBlackCount; chessCompare++) {
					if ((a * 20 == chessBlack_x[chessCompare])
							&& ((b - step) * 20 == chessBlack_y[chessCompare])) {
						chessLink++;
						if (chessLink == 5) {
							return (true);
						}
					}
				}
				if (chessLink == (chessLinkTest + 1))
					chessLinkTest++;
				else
					break;
			}
			chessLink = 1;
			chessLinkTest = 1;
			for (step = 1; step <= 4; step++) {
				for (chessCompare = 0; chessCompare <= chessBlackCount; chessCompare++) {
					if (((a - step) * 20 == chessBlack_x[chessCompare])
							&& ((b + step) * 20 == chessBlack_y[chessCompare])) {
						chessLink++;
						if (chessLink == 5) {
							return (true);
						}
					}
				}
				if (chessLink == (chessLinkTest + 1))
					chessLinkTest++;
				else
					break;
			}
			for (step = 1; step <= 4; step++) {
				for (chessCompare = 0; chessCompare <= chessBlackCount; chessCompare++) {
					if (((a + step) * 20 == chessBlack_x[chessCompare])
							&& ((b - step) * 20 == chessBlack_y[chessCompare])) {
						chessLink++;
						if (chessLink == 5) {
							return (true);
						}
					}
				}
				if (chessLink == (chessLinkTest + 1))
					chessLinkTest++;
				else
					break;
			}
			chessLink = 1;
			chessLinkTest = 1;
			for (step = 1; step <= 4; step++) {
				for (chessCompare = 0; chessCompare <= chessBlackCount; chessCompare++) {
					if (((a + step) * 20 == chessBlack_x[chessCompare])
							&& ((b + step) * 20 == chessBlack_y[chessCompare])) {
						chessLink++;
						if (chessLink == 5) {
							return (true);
						}
					}
				}
				if (chessLink == (chessLinkTest + 1))
					chessLinkTest++;
				else
					break;
			}
			for (step = 1; step <= 4; step++) {
				for (chessCompare = 0; chessCompare <= chessBlackCount; chessCompare++) {
					if (((a - step) * 20 == chessBlack_x[chessCompare])
							&& ((b - step) * 20 == chessBlack_y[chessCompare])) {
						chessLink++;
						if (chessLink == 5) {
							return (true);
						}
					}
				}
				if (chessLink == (chessLinkTest + 1))
					chessLinkTest++;
				else
					break;
			}
		} else if (checkColor == -1) {
			chessLink = 1;
			for (step = 1; step <= 4; step++) {
				for (chessCompare = 0; chessCompare <= chessWhiteCount; chessCompare++) {
					if (((a + step) * 20 == chessWhite_x[chessCompare])
							&& (b * 20 == chessWhite_y[chessCompare])) {
						chessLink++;
						if (chessLink == 5) {
							return (true);
						}
					}
				}
				if (chessLink == (chessLinkTest + 1))
					chessLinkTest++;
				else
					break;
			}
			for (step = 1; step <= 4; step++) {
				for (chessCompare = 0; chessCompare <= chessWhiteCount; chessCompare++) {
					if (((a - step) * 20 == chessWhite_x[chessCompare])
							&& (b * 20 == chessWhite_y[chessCompare])) {
						chessLink++;
						if (chessLink == 5) {
							return (true);
						}
					}
				}
				if (chessLink == (chessLinkTest + 1))
					chessLinkTest++;
				else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级视频在线播放| 亚洲一区二区三区影院| 国产精品精品国产色婷婷| 亚洲国产欧美一区二区三区丁香婷 | 欧美成人综合网站| 亚洲人成网站在线| 国产成人综合在线| 久久精品免视看| 亚洲福利一二三区| 99在线热播精品免费| 精品国产91洋老外米糕| 日韩精品乱码免费| 欧美三级在线看| 综合电影一区二区三区| 国产99久久久国产精品免费看| 欧美一区二区精品在线| 亚洲高清三级视频| 欧美在线影院一区二区| 亚洲同性gay激情无套| 成人中文字幕在线| 国产午夜亚洲精品理论片色戒| 日本不卡的三区四区五区| 欧美三级乱人伦电影| 一区二区三区日韩精品| 色综合天天性综合| 亚洲欧洲日本在线| 不卡电影免费在线播放一区| 欧美国产欧美综合| 大陆成人av片| 国产精品久久777777| 99久久夜色精品国产网站| 国产日韩欧美高清在线| 国产高清不卡二三区| 国产欧美一区二区精品忘忧草| 精品午夜久久福利影院 | 三级一区在线视频先锋 | 亚洲精品国产一区二区精华液| 国产成人午夜高潮毛片| 国产清纯在线一区二区www| 懂色av一区二区三区蜜臀| 国产亚洲一区二区三区在线观看| 精品中文av资源站在线观看| 久久在线观看免费| 国产91丝袜在线播放| 日韩一区欧美小说| 欧美性色综合网| 欧美aⅴ一区二区三区视频| 精品福利av导航| 国产91综合一区在线观看| 中文字幕一区二区不卡| 91福利国产成人精品照片| 亚洲国产精品久久不卡毛片| 69p69国产精品| 韩国三级电影一区二区| 国产精品麻豆99久久久久久| 91在线观看下载| 亚洲国产日韩综合久久精品| 欧美一区永久视频免费观看| 国产精品一区在线观看你懂的| 国产精品久久久久久亚洲毛片 | 在线综合视频播放| 国产1区2区3区精品美女| 欧美激情在线免费观看| 91精品办公室少妇高潮对白| 青青草97国产精品免费观看无弹窗版| 26uuu精品一区二区三区四区在线| 成人一区在线观看| 婷婷成人激情在线网| 精品福利在线导航| 欧美中文一区二区三区| 激情丁香综合五月| 亚洲精品乱码久久久久久日本蜜臀 | 国产精品网曝门| 欧美日韩一卡二卡三卡| 国产精品一区在线观看乱码| 亚洲成人综合视频| 国产欧美一区在线| 欧美日韩aaa| 不卡的av中国片| 毛片av一区二区三区| 亚洲视频狠狠干| 久久久国产精品麻豆| 欧美精选一区二区| 一本大道久久a久久综合婷婷| 激情文学综合插| 亚洲444eee在线观看| 中文字幕在线观看一区| 日韩女优av电影| 精品视频在线免费观看| 成年人国产精品| 国产最新精品精品你懂的| 亚洲18影院在线观看| 中文字幕一区二区三区色视频| 日韩一本二本av| 欧美日韩免费在线视频| 色综合天天综合色综合av | 麻豆免费看一区二区三区| 亚洲欧美日韩国产手机在线 | 亚洲综合一二区| 国产精品久久久久影院老司| 久久亚洲一级片| 日韩女优av电影在线观看| 3d成人动漫网站| 欧美三级欧美一级| 欧美在线视频全部完| 色av成人天堂桃色av| 91免费国产视频网站| 99re视频精品| 91啦中文在线观看| 99久久伊人久久99| 成人国产精品视频| av在线不卡电影| 91亚洲精品久久久蜜桃| 97精品超碰一区二区三区| 成人永久免费视频| 不卡视频一二三| 91麻豆福利精品推荐| 欧美一区二区三区免费在线看| 波多野结衣中文字幕一区| 国产一区二区看久久| 久久成人免费网| 国产一区二区精品久久91| 奇米888四色在线精品| 精品在线观看免费| 国内精品嫩模私拍在线| 国产美女娇喘av呻吟久久| 国产不卡免费视频| yourporn久久国产精品| 99久久国产综合精品色伊| 色综合中文综合网| 国产福利91精品| 国产乱淫av一区二区三区| 国产麻豆成人精品| av爱爱亚洲一区| 欧美午夜电影网| 精品美女一区二区| 久久久三级国产网站| 国产精品久久久久毛片软件| 日本女人一区二区三区| 经典三级视频一区| 不卡一区二区在线| 5566中文字幕一区二区电影| 久久影院电视剧免费观看| 中文字幕在线不卡视频| 午夜精品久久久久久久99水蜜桃| 美女网站色91| av网站免费线看精品| 欧美日韩成人综合在线一区二区| 欧美r级在线观看| 中文字幕永久在线不卡| 青娱乐精品视频在线| 成人晚上爱看视频| 欧美日韩国产三级| 国产网站一区二区三区| 一区二区三区四区五区视频在线观看| 天天操天天综合网| av影院午夜一区| 欧美大肚乱孕交hd孕妇| 国产精品沙发午睡系列990531| 亚洲狠狠爱一区二区三区| 久久成人精品无人区| 色婷婷精品大视频在线蜜桃视频| 日韩精品一区国产麻豆| 亚洲日本一区二区三区| 另类小说一区二区三区| 色88888久久久久久影院按摩| 精品日产卡一卡二卡麻豆| 一区二区三区毛片| 国产精品一区专区| 日韩一区二区中文字幕| 亚洲在线中文字幕| 成人亚洲精品久久久久软件| 欧美电视剧免费观看| 亚洲午夜免费电影| 成人av在线播放网址| 精品国产伦一区二区三区观看体验 | 成人av免费网站| 精品日韩99亚洲| 五月综合激情网| 色综合色狠狠综合色| 欧美国产丝袜视频| 国内外精品视频| 日韩一区二区三区视频| 亚洲一区二区三区中文字幕| 国产精品18久久久久久vr| 日韩亚洲欧美成人一区| 婷婷中文字幕综合| 欧美在线不卡一区| 综合欧美一区二区三区| bt7086福利一区国产| 国产日韩一级二级三级| 国产精品自拍网站| 久久久国产一区二区三区四区小说| 天堂一区二区在线| 欧美美女一区二区在线观看| 亚洲大片免费看| 欧美高清dvd| 亚洲在线视频免费观看| 在线欧美小视频| 亚洲影院久久精品|