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

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

?? chesswzq.java

?? java實現五子棋 可人機對戰 可雙人對戰 用到了人工智能的A算法 還有java的網絡編程socket
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
//                System.out.println("B's color is"+msg.color);
            list.setEnabled(false);
            label3.setText(str);
            setting.setEnabled(false);
            jrbBlack.setEnabled(false);
            jrbWhite.setEnabled(false);
            beginFlag=true;
        }
        if(flag==1){// press NO
            msg.type=4; // deny request
        }
        try{
            out.writeObject(msg);
        }catch(IOException e){
            e.printStackTrace();
        }
    }
    public void paint(Graphics g){
        super.paint(g);
        drawChess(bpanel.getColor());
    }
    /**
     * Overridden so we can exit when window is closed
     */
    protected void processWindowEvent(WindowEvent e) {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
            System.exit(0);
        }
    }
    // convert string to array which is end with '\0'
    public void strToCharArray(String str,char [] arr){
        int i;
        for(i=0;i<str.length()&&i<49;i++){
            arr[i] = str.charAt(i);
        }
        arr[i]='\0';
    }
    /**
     * filter array 's black space which is end of the array
     * @param arr
     * @param str
     */
    public String arrayToString(char [] arr){
        int i=0,length=0;
        while(arr[i]!='\0' && i<50){
            i++;
        }
        length=i;
        char [] ss = new char[length];
        for(i=0;i<length;i++){
            ss[i]=arr[i];
        }
        String str = new String(ss);
        return str;
        //System.out.println("arraytoString "+str+"length = "+length);
    }
    /**
     * do people play with computer
     */
    public void ptoComputer(){
        int x=0,y=0;
        int position;
        if(pFirst==false){
            x=7;
            y=7;
            bpanel.updateBoard(x,y);
            bpanel.drawChess(x,y);
            beginFlag=true;
        }else{
            beginFlag=true;
        }
    }
    /**
     * choos a best position to put chessman
     * @param x the newest chessman's x coordinate
     * @param y the newest chessman's y coordinate
     */
    private void cPutChess(int x,int y){
        setRect(x,y);
        setWeight(x,y,pColor);
        getBetter(3);
    }
    /**
     * set a rectangle of 9*9
     * @param x center of rectangle
     * @param y center of rectangle
     */
    private void setRect(int x,int y){
        if(x-4>0)  RectX1=x-4;
        else       RectX1=0;
        if(x+4>14) RectX2=14;
        else       RectX2=x+4;
        if(y-4>0)  RectY1=y-4;
        else       RectY1=0;
        if(y+4>14) RectY2=14;
        else       RectY2=y+4;
        if(RectX1>RectY1) RectX1 = x-(y-RectY1);
        else              RectY1 = y-(x-RectX1);
        if(RectX2>RectY2) RectY2 = y+(RectX2-x);
        else              RectX2 = x+(RectY2-y);
    }
    /**
     * set each black position's weight in the rectangle
     * @param x rectangle center's x coordinate
     * @param y rectangle center's x coordinate
     */
    private void setWeight(int x,int y,int tcolor){
        int i=RectX1,j=RectY1,value=0,k=0,n=0,flag=0;
        // '--' direction
        for(i=RectX1,j=y;i<=RectX2;i++){
            if(BoardPanel.board[i][j]!=0){
                continue;
            }
            value=0;flag=0;
            for(k=1;i-k>=RectX1 && k<5;k++){
                if(BoardPanel.board[i-k][j]==tcolor){
                    value++;
                    continue;
                }
                if(BoardPanel.board[i-k][j]==0){//black space
                    flag++;
                    break;
                }
            }
            for(k=1;i+k<RectX2 && k<5;k++){
                if(BoardPanel.board[i+k][j]==tcolor){
                    value++;
                }
                if(BoardPanel.board[i+k][j]==0){
                    flag++;
                    break;
                }
            }
            n=weight(value,flag);
            if(weightBoard[i][j]<n){
                weightBoard[i][j]=n;
            }
        }
        // '|' direction
        for(i=x,j=RectY1;j<=RectY2;j++){
            if(BoardPanel.board[i][j]!=0){
                continue;
            }
            value=0;flag=0;
            for(k=1;j-k>=RectY1 && k<5;k++){
                if(BoardPanel.board[i][j-k]==tcolor){
                    value++;
                    continue;
                }
                if(BoardPanel.board[i][j-k]==0){
                    flag++;
                    break;
                }
            }
            for(k=1;j+k<RectY2 && k<5;k++){
                if(BoardPanel.board[i][j+k]==tcolor){
                    value++;
                }
                if(BoardPanel.board[i][j+k]==0){
                    flag++;
                    break;
                }
            }
            n=weight(value,flag);
            if(weightBoard[i][j]<n){
                weightBoard[i][j]=n;
            }
        }
        // '\' direction
        for(i=RectX1,j=RectY1;i<=RectX2;i++,j++){
            if(BoardPanel.board[i][j]!=0){
                continue;
            }
            value=0;flag=0;
            for(k=1;i-k>=RectX1 && k<5 ;k++){
                if(BoardPanel.board[i-k][j-k]==tcolor){
                    value++;
                    continue;
                }
                if(BoardPanel.board[i-k][j-k]==0){
                    flag++;
                    break;
                }
            }
            for(k=1;i+k<RectX2 && k<5;k++){
                if(BoardPanel.board[i+k][j+k]==tcolor){
                    value++;
                }
                if(BoardPanel.board[i+k][j+k]==0){
                    flag++;
                    break;
                }
            }
            n=weight(value,flag);
            if(weightBoard[i][j]<n){
                weightBoard[i][j]=n;
            }
        }
        // '/' direction
        for(i=RectX2,j=RectY1;i>=RectX1;i--,j++){
            if(BoardPanel.board[i][j]!=0){
                continue;
            }
            value=0;flag=0;
            for(k=1;i+k<=RectX2 && k<5;k++){
                if(BoardPanel.board[i+k][j-k]==tcolor){
                    value++;
                    continue;
                }
                if(BoardPanel.board[i+k][j-k]==0){
                    flag++;
                    break;
                }
            }
            for(k=1;i-k>=RectX1 && k<5;k++){
                if(BoardPanel.board[i-k][j+k]==tcolor){
                    value++;
                }
                if(BoardPanel.board[i-k][j+k]==0){
                    flag++;
                    break;
                }
            }
            n=weight(value,flag);
            if(weightBoard[i][j]<n){
                weightBoard[i][j]=n;
            }
        }
    }
    /**
     * return weight
     * @param count
     * @param flag
     * @return
     */
    private int weight(int count, int flag)
    {
        int weight=0;
        switch(count){
            case 0:{
                if(flag>0) weight=200;
                else weight=0;
                break;
            }
            case 1:{
                if(flag>0) weight=1000;
                else weight=0;
                break;
            }
            case 2:{
                if(flag>0) weight=5000;
                else weight=0;
                break;
            }
            case 3:{
                if(flag>0) weight=8000;
                else weight=0;
                break;
            }
            case 4:{
                if(flag>0) weight=10000;
                else weight=0;
                break;
            }
        }
        return weight;
    }
    /**
     * search all board and find the better count position
     * @param count better position's number default value is 3
     */
    private void getBetter(int count){
        int [][] better = new int [count][2];
        int [][] tempArray = new int [15][15];
        for(int i=0;i<15;i++){
            for(int j=0;j<15;j++){
                tempArray[i][j]=weightBoard[i][j];
            }
        }
        for(int i=0;i<count;i++){
            getBiggest(tempArray,better[i][0],better[i][1]);
        }
        bestX=better[0][0];bestY=better[0][1];
    }
    /**
     *
     * @param arr
     * @param x
     * @param y
     */
    private void getBiggest(int [][] arr,int x,int y){
        int [] temp=new int[2];
        int swt=arr[0][0],tmp=0;
        for(int i=0;i<15;i++){
            for(int j=0;j<15;j++){
                if(arr[i][j]>swt){
                    temp[0]=i;temp[1]=j;
                    swt=arr[i][j];
                }
            }
        }
        x=temp[0];
        y=temp[1];
        arr[x][y]=0;
    }


}///:-)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区四区的| 国产精品乱人伦中文| 91污在线观看| 国产成人激情av| 国产一区二区三区免费看| 免费在线观看一区二区三区| 午夜欧美大尺度福利影院在线看| 亚洲一区二区三区中文字幕| 亚洲精品v日韩精品| 亚洲欧美日韩国产中文在线| 亚洲精品中文字幕在线观看| 亚洲精品视频免费看| 亚洲午夜在线电影| 婷婷丁香激情综合| 久久精品av麻豆的观看方式| 久久99精品国产麻豆婷婷洗澡| 精品综合久久久久久8888| 国产伦精品一区二区三区在线观看| 精品一区二区三区香蕉蜜桃| 国产精品综合网| 91尤物视频在线观看| 欧美午夜精品久久久久久超碰| 欧美夫妻性生活| 精品蜜桃在线看| 国产精品婷婷午夜在线观看| 中文字幕在线观看一区二区| 亚洲国产成人av网| 韩国精品主播一区二区在线观看| 国产成人午夜精品5599 | 亚洲欧美日韩在线不卡| 一区视频在线播放| 日韩综合小视频| 国产精品亚洲一区二区三区妖精| 91丨九色丨尤物| 欧美一级欧美三级在线观看| 久久久久97国产精华液好用吗| 国产精品色在线| 五月天久久比比资源色| 国产suv一区二区三区88区| 色婷婷av一区二区| 欧美va亚洲va| 一区二区三区中文字幕电影| 老司机午夜精品99久久| 91免费视频大全| 日韩精品一区二区三区视频播放 | 日本一区二区高清| 亚洲成a天堂v人片| 国产a级毛片一区| 337p亚洲精品色噜噜噜| 国产精品久久久久久户外露出| 日韩精品91亚洲二区在线观看 | 久久综合一区二区| 亚洲精品成人在线| 国产福利91精品一区二区三区| 欧美丝袜第三区| 综合欧美亚洲日本| 国产精品中文字幕一区二区三区| 欧美日韩一区二区三区在线| 国产精品毛片无遮挡高清| 精彩视频一区二区三区| 欧美一二区视频| 亚洲香蕉伊在人在线观| av不卡在线播放| 国产片一区二区| 蜜桃视频免费观看一区| 欧美美女一区二区在线观看| 亚洲天堂成人在线观看| 高清视频一区二区| 久久精品人人爽人人爽| 另类人妖一区二区av| 欧美日产在线观看| 亚洲综合久久久| 91精品福利视频| 日韩理论片在线| 91麻豆自制传媒国产之光| 中文字幕国产一区二区| 懂色av一区二区三区免费看| 久久久精品黄色| 国产精品综合av一区二区国产馆| 欧美大胆一级视频| 久久66热偷产精品| 欧美v日韩v国产v| 久久99精品视频| 精品免费日韩av| 国产高清不卡一区| 亚洲国产精品成人综合色在线婷婷| 国产精品一区二区91| 久久久久久久久久久黄色| 国产精品一区二区三区乱码| 国产偷v国产偷v亚洲高清| 成人av在线资源网| 亚洲色图欧洲色图| 91成人网在线| 日韩高清在线电影| 日韩精品资源二区在线| 国产高清在线观看免费不卡| 亚洲国产精品国自产拍av| 91蜜桃网址入口| 亚洲国产sm捆绑调教视频| 欧美一区二区三区小说| 国产乱码字幕精品高清av| 欧美激情资源网| 在线欧美日韩国产| 麻豆精品国产传媒mv男同| 国产亚洲1区2区3区| 91污在线观看| 免费日韩伦理电影| 国产精品久久久久久久久搜平片 | 亚洲一区av在线| 91精品国产综合久久精品图片| 久久99精品一区二区三区三区| 中文字幕精品一区| 欧美日韩卡一卡二| 国产福利精品导航| 亚洲国产你懂的| 国产亚洲综合av| 在线视频欧美精品| 国产麻豆精品theporn| 亚洲精品成人少妇| 国产亚洲污的网站| 欧美日韩高清一区二区三区| 极品少妇xxxx偷拍精品少妇| 亚洲黄色免费电影| 久久久久久久久一| 91精品国产高清一区二区三区蜜臀 | 26uuu亚洲综合色| 91色婷婷久久久久合中文| 久久国产尿小便嘘嘘| 亚洲精品国久久99热| 国产欧美日韩激情| 日韩欧美一级二级三级| 欧美四级电影在线观看| 国产成人精品三级| 久久国产人妖系列| 亚洲成年人网站在线观看| 亚洲欧洲国产日韩| 欧美激情资源网| 精品久久人人做人人爽| 欧美高清精品3d| 在线观看成人免费视频| 不卡一区中文字幕| 国产精品自在在线| 激情小说亚洲一区| 麻豆一区二区三| 天堂va蜜桃一区二区三区漫画版| 亚洲精品免费播放| 国产精品久久久久久久久免费樱桃 | 欧美日韩亚洲国产综合| 成人av电影观看| 成人性视频免费网站| 狠狠色丁香久久婷婷综合丁香| 日韩福利电影在线| 午夜精品一区在线观看| 亚洲成人动漫一区| 亚洲高清中文字幕| 午夜视频一区二区三区| 亚洲国产日日夜夜| 午夜精品久久久久久久久久久| 亚洲一区二区三区影院| 亚洲综合小说图片| 亚洲国产另类av| 日韩影院在线观看| 免费在线一区观看| 国产在线精品免费| 国产91富婆露脸刺激对白| 成人亚洲一区二区一| 91视频在线观看免费| 91官网在线观看| 欧美日韩1234| 日韩美女视频一区二区在线观看| 欧美大片一区二区| 国产亚洲自拍一区| 中文字幕亚洲欧美在线不卡| 亚洲女同一区二区| 亚洲国产裸拍裸体视频在线观看乱了 | 久久九九全国免费| 精品国产乱子伦一区| 中文子幕无线码一区tr| 亚洲欧洲av一区二区三区久久| 亚洲人成网站色在线观看| 亚洲成a人v欧美综合天堂下载 | 日韩欧美在线观看一区二区三区| 欧美一区二区视频在线观看2022 | 亚洲美女视频在线| 偷拍亚洲欧洲综合| 岛国一区二区三区| 欧美日本高清视频在线观看| 欧美蜜桃一区二区三区| 久久综合九色综合欧美98| 亚洲免费观看高清完整| 久久精品国产亚洲一区二区三区| 成人免费视频一区二区| 在线综合+亚洲+欧美中文字幕| 久久久国产一区二区三区四区小说| 亚洲日本韩国一区| 毛片av中文字幕一区二区| 91在线精品秘密一区二区| 欧洲人成人精品| 久久久久国产精品麻豆| 视频一区中文字幕国产|