ClientThread

package com.client;

import java.applet.Applet;

/**
 * 客户端线程类类
 *
 * @author 翱翔团队
 * @version 1.0.0
 */
public class ClientThread extends JFrame implements Runnable
{
    Socket socket = null; // 定义套接字
    
    JTextArea txtMess = null;// 创建多行文本框
    
    DataInputStream dis = null;// 定义数据输入流
    
    DataOutputStream dos = null;// 定义数据输出流
    
    String name = null;
    
    public static List list = new ArrayList();
    
    static ChessFrame frame = null;
    
    public static List empty = new ArrayList();
    
    // 定义一个logger
    static Logger logger = Logger.getLogger(com.client.ClientThread.class.getName());
    
    /**
     * 线程的构造方法
     *
     * @param socket
     *            套接字
     * @param txtMess
     *            文本域
     * @param name
     *            用户名
     */
    public ClientThread(Socket socket, JTextArea txtMess, String name,
            ChessFrame frame)
    {
        // 传入的套接字
        this.socket = socket;
        // 传入的消息文本域
        this.txtMess = txtMess;
        // 传入的玩家
        this.name = name;
        this.frame = frame;
    }
    
    /**
     * 线程的运行方法
     */
    public void run()
    {
        int count = ServerFrame.getCount();
        ServerFrame.setCount(count++);
        System.out.println("客户端监听消息:" + count);
        logger.info("客户端监听消息:" + count);
        // 实例化输入流
        try
        {
            while (true)
            {
                // 实例化输入数据流
                dis = new DataInputStream(socket.getInputStream());
                dos = new DataOutputStream(socket.getOutputStream());
                // 读取输入流的数据
                String mess = dis.readUTF();
                System.out.println("client receive  mess:" + mess);
                logger.info("client receive mess:" + mess);
                // 以#号分隔字符串
                String[] data = mess.split("#");
                
                // 棋子监听的标志位
                int flag = Integer.parseInt(data[0]);
                
                logger.info("client flag:" + flag);
                System.out.println("client flag:" + flag);
                switch (flag)
                {
                    // 网络同步走棋
                    case TypeListInfo.NET_CHESS:
                        // 点击棋子的id
                        int id = Integer.parseInt(data[1]);
                        // 棋子走动信息
                        String str = name + ":" + "点击"
                                + Map.chessMan[id].getName() + "走到" + data[3]
                                + "行" + data[4] + "列";
                        // 把信息追加到文本域
                        txtMess.append(str + "\n");
                        // 调用网络同步走棋的方法
                        Net_Walk(data);
                        frame.time = 0;// 计时器清0;
                        break;
                    // 网络同步悔棋regret
                    case TypeListInfo.NET_REGRET:
                        String backInfo = data[1] + "#" + data[2] + "#"
                                + data[3] + "#" + data[4] + "#" + data[5] + "#"
                                + data[6];
                        // 把悔棋的信息添加到集合中
                        list.add(backInfo);
                        System.out.println("list大小:" + list.size());
                        int result = JOptionPane.showConfirmDialog(frame,
                                "是否同意悔棋?",
                                "系统提示",
                                JOptionPane.YES_NO_OPTION);
                        if (result == JOptionPane.YES_OPTION)
                        {
                            ActionEventOwn.back(list);
                            dos.writeUTF(TypeListInfo.NET_REGRET_YES + "#ok");
                        }
                        else
                        {
                            dos.writeUTF(TypeListInfo.NET_REGRET_NO + "#no");
                        }
                        break;
                    // 同意网络悔棋
                    case TypeListInfo.NET_REGRET_YES:
                        ActionEventOwn.back(ChessFrame.list);
                        break;
                    // 不同意网络悔棋
                    case TypeListInfo.NET_REGRET_NO:
                        JOptionPane.showMessageDialog(this, "对方不同意悔棋");
                        break;
                    // 网络消息的处理
                    case TypeListInfo.NET_MESS:
                        System.out.println("data[1]:" + mess);
                        txtMess.append(data[1] + "\n");
                        break;
                    // 开始
                    case TypeListInfo.NET_START:
                        ServerFrame.setReady(1);
                        if (!frame.btnStart.isEnabled())
                        {
                            logger.info("client send confirm start mess:"
                                    + TypeListInfo.NET_START_YES + "#123");
                            dos.writeUTF(TypeListInfo.NET_START_YES + "#123");
                        }
                        else
                        {
                            logger.info("client start button isEnabled:"
                                    + frame.btnStart.isEnabled());
                            
                        }
                        break;
                    // 收到开始
                    case TypeListInfo.NET_START_YES:
                        if (!frame.btnStart.isEnabled())
                        {
                            // 计时器线程开启
                            new Thread(new TimeTheread(frame)).start();
                            JOptionPane.showMessageDialog(this, "游戏开始!");
                            
                            logger.info("==========================");
                            logger.info("==========游戏开始========");
                            logger.info("==========================");
                            
                            for (int i = 1; i <= Map.CHESSNUM; i++)
                            {
                                // 棋子设为可见
                                ChessFrame.lblChessMan[i].setVisible(true);
                            }
                        }
                        break;
                    case TypeListInfo.NET_GAME_OVER:

                        JOptionPane.showMessageDialog(this, "你太牛了,轻松解决了对方!");
                        
                        logger.info("==========================");
                        logger.info("==========游戏结束========");
                        logger.info("==========================");
                        
                        break;
                    case TypeListInfo.NET_PEACE:
                        int result2 = JOptionPane.showConfirmDialog(frame,
                                "是否同意求和?",
                                "系统提示",
                                JOptionPane.YES_NO_OPTION);
                        if (result2 == JOptionPane.YES_OPTION)
                        {
                            dos.writeUTF(TypeListInfo.NET_PEACE_YES + "#yes");
                        }
                        else
                        {
                            dos.writeUTF(TypeListInfo.NET_PEACE_NO + "#no");
                        }
                        break;
                    case TypeListInfo.NET_PEACE_YES:
                        JOptionPane.showMessageDialog(this, "对方同意求和");
                        dos.writeUTF(TypeListInfo.NET_PEACE_MESS + "#yes");
                        break;
                    case TypeListInfo.NET_PEACE_NO:
                        JOptionPane.showMessageDialog(this, "对方拒绝求和");
                        break;
                    case TypeListInfo.NET_PEACE_MESS:
                        JOptionPane.showMessageDialog(this, "和局!");
                        for (int i = 1; i <= Map.CHESSNUM; i++)
                        {
                            frame.lblChessMan[i].setVisible(false);
                        }
                        break;
                    case TypeListInfo.NET_WIN:
                        for (int i = 1; i <= Map.CHESSNUM; i++)
                        {
                            ChessFrame.lblChessMan[i].setVisible(false);
                        }
                        break;
                    default:
                        break;
                }
                if (mess.equals(TypeListInfo.IS_EXIT + ""))
                {
                    System.exit(0);
                }
            }// while
        }// try
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }// run()
    
    /**
     * 网络同步走棋的方法
     *
     * @param data
     *            字符串数组
     */
    public static void Net_Walk(String[] data)
    {
        /**
         * 6#1(棋子id)#2(棋子id)#3(row)#4(col)
         */
        // 当前棋子的id
        int id1 = Integer.parseInt(data[1]);
        // 目标位置棋子的id
        int id2 = Integer.parseInt(data[2]);
        // 目标位置的行
        int row = Integer.parseInt(data[3]);
        // 目标位置的列
        int col = Integer.parseInt(data[4]);
        // 影子的原始位置横坐标
        int x0 = Integer.parseInt(data[5]);
        // 原始位置的纵坐标
        int y0 = Integer.parseInt(data[6]);
        // 棋子的宽度
        int chessWidth = ChessFrame.CHESSWIDTH;
        // 棋子的高度
        int chessHeight = ChessFrame.CHESSHEIGHT;
        // 棋子的目标位置
        Location tagert = Map.location[row][col];
        int x = Map.location[row][col].getX();// 获取x坐标位置
        int y = Map.location[row][col].getY();// 获取y坐标位置
        if (id1 == id2)
        {
            ChessFrame.lblEdge1.setBounds(x0, y0, 55, 55);
            ChessFrame.lblEdge2.setBounds(x, y, 55, 55);
            // 同步走棋
            ChessFrame.lblChessMan[id1].setBounds(tagert.getX(),
                    tagert.getY(),
                    chessWidth,
                    chessHeight);
            // 棋子可见
            ChessFrame.lblChessMan[id1].setVisible(true);
            // 保存位置
            Map.chessMan[id1].setLocation(tagert);
        }
        else
        {
            ChessFrame.lblEdge1.setBounds(x0, y0, 55, 55);
            ChessFrame.lblEdge2.setBounds(x, y, 55, 55);
            // 吃棋
            ChessFrame.lblChessMan[id1].setBounds(tagert.getX(),
                    tagert.getY(),
                    chessWidth,
                    chessHeight);
            ChessFrame.lblChessMan[id1].setVisible(true);
            ChessFrame.lblChessMan[id2].setVisible(false);
            Map.chessMan[id2].setDisplay(false);
            Map.chessMan[id1].setLocation(tagert);
            if (ChessFrame.chessSecClick == 17
                    || ChessFrame.chessSecClick == 18)
            {
                try
                {
                    ChessFrame.gameOver = Applet.newAudioClip(new File(
                            "music/gameover.wav").toURI().toURL());
                    ChessFrame.gameOver.play();
                    ChessFrame.win = Applet.newAudioClip(new File(
                            "music/gamewin.wav").toURI().toURL());
                    ChessFrame.win.play();
                    ChessFrame.lblChessMan[ChessFrame.chessFirClick].setVisible(false);
                    ChessFrame.dos.writeUTF(TypeListInfo.NET_WIN + "#ok");
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
                JOptionPane.showMessageDialog(frame, "玩家"
                        + Map.chessMan[ChessFrame.chessFirClick].getPlayer()
                        + "赢");
            }
        }
        /**
         * 判断将军
         */
        if (Map.killKing(id1))
        {
            try
            {
                ChessFrame.general = Applet.newAudioClip(new File(
                        "music/General.wav").toURI().toURL());
                ChessFrame.general.play();
                
            }
            catch (Exception ex)
            {
                ex.printStackTrace();
            }
            JOptionPane.showMessageDialog(frame, "将军");
        }
        selectPlayer();
        // 悔棋的信息
        
    }
    
    /**
     * 选择玩家的方法
     *
     */
    public static void selectPlayer()
    {
        if (ChessFrame.playerSelect == 1)
        {
            // 选择玩家2
            ChessFrame.playerSelect = 2;
            // 黑将不可见
            ChessFrame.lblGeneral1.setVisible(false);
            // 红将可见
            ChessFrame.lblGeneral2.setVisible(true);
        }
        else
        {
            // 选择玩家1
            ChessFrame.playerSelect = 1;
            // 黑将不可见
            ChessFrame.lblGeneral2.setVisible(false);
            // 红将可见
            ChessFrame.lblGeneral1.setVisible(true);
        }
        // 设置客户端是否能够点击
        ChessFrame.enable = true;
    }
}// ClientThread
java网络五子棋 下面的源代码分为4个文件; chessClient.java:客户端主程序。 chessInterface.java:客户端的界面。 chessPad.java:棋盘的绘制。 chessServer.java:服务器端。 可同时容纳50个人同时在线下棋,聊天。 没有加上详细注释,不过绝对可以运行,j2sdk1.4下通过。 /********************************************************************************************* 1.chessClient.java **********************************************************************************************/ import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.util.*; class clientThread extends Thread { chessClient chessclient; clientThread(chessClient chessclient) { this.chessclient=chessclient; } public void acceptMessage(String recMessage) { if(recMessage.startsWith("/userlist ")) { StringTokenizer userToken=new StringTokenizer(recMessage," "); int userNumber=0; chessclient.userpad.userList.removeAll(); chessclient.inputpad.userChoice.removeAll(); chessclient.inputpad.userChoice.addItem("所有人"); while(userToken.hasMoreTokens()) { String user=(String)userToken.nextToken(" "); if(userNumber>0 && !user.startsWith("[inchess]")) { chessclient.userpad.userList.add(user); chessclient.inputpad.userChoice.addItem(user); } userNumber++; } chessclient.inputpad.userChoice.select("所有人"); } else if(recMessage.startsWith("/yourname ")) { chessclient.chessClientName=recMessage.substring(10); chessclient.setTitle("Java五子棋客户端 "+"用户名:"+chessclient.chessClientName); } else if(recMessage.equals("/reject")) { try { chessclient.chesspad.statusText.setText("不能加入游戏"); chessclient.controlpad.cancelGameButton.setEnabled(false); chessclient.controlpad.joinGameButton.setEnabled(true); chessclient.controlpad.creatGameButton.setEnabled(true); } catch(Exception ef) { chessclient.chatpad.chatLineArea.setText("chessclient.chesspad.chessSocket.close无法关闭"); } chessclient.controlpad.joinGameButton.setEnabled(true); } else if(recMessage.startsWith("/peer ")) { chessclient.chesspad.chessPeerName=recMessage.substring(6); if(chessclient.isServer) { chessclient.chesspad.chessColor=1; chessclient.chesspad.isMouseEnabled=true; chessclient.chesspad.statusText.setText("请黑棋下子"); } else if(chessclient.isClient) { chessclient.chesspad.chessColor=-1; chessclient.chesspad.statusText.setText("已加入游戏,等待对方下子..."); } } else if(recMessage.equals("/youwin")) { chessclient.isOnChess=false; chessclient.chesspad.chessVictory(chessclient.chesspad.chessColor); chessclient.chesspad.statusText.setText("对方退出,请点放弃游戏退出连接"); chessclient.chesspad.isMouseEnabled=false; } else if(recMessage.equals("/OK")) { ……………………………………………………………………………………catch(Exception ee) { } } System.exit(0); } public void windowActivated(WindowEvent ea) { } }); add(westPanel,BorderLayout.WEST); add(centerPanel,BorderLayout.CENTER); add(southPanel,BorderLayout.SOUTH); pack(); setSize(670,548); setVisible(true); setResizable(false); validate(); } public boolean connectServer(String serverIP,int serverPort) throws Exception { try { chatSocket=new Socket(serverIP,serverPort); in=new DataInputStream(chatSocket.getInputStream()); out=new DataOutputStream(chatSocket.getOutputStream()); clientThread clientthread=new clientThread(this); clientthread.start(); isOnChat=true; return true; } catch(IOException ex) { chatpad.chatLineArea.setText("chessClient:connectServer:无法连接,建议重新启动程序 \n"); } return false; } public void actionPerformed(ActionEvent e) { if(e.getSource()==controlpad.connectButton) { host=chesspad.host=controlpad.inputIP.getText(); try { if(connectServer(host,port)) { chatpad.chatLineArea.setText(""); controlpad.connectButton.setEnabled(false); controlpad.creatGameButton.setEnabled(true); controlpad.joinGameButton.setEnabled(true); chesspad.statusText.setText("连接成功,请创建游戏或加入游戏"); } } catch(Exception ei) { chatpad.chatLineArea.setText("controlpad.connectButton:无法连接,建议重新启动程序 \n"); } } if(e.getSource()==controlpad.exitGameButton) { if(isOnChat) { try { chatSocket.close(); } catch(Exception ed) { } } if(isOnChess || isGameConnected) { try { chesspad.chessSocket.close(); } catch(Exception ee) { } } System.exit(0); } if(e.getSource()==controlpad.joinGameButton) { String selectedUser=userpad.userList.getSelectedItem(); if(selectedUser==null || selectedUser.startsWith("[inchess]") || selectedUser.equals(chessClientName)) { chesspad.statusText.setText("必须先选定一个有效用户"); } else { try { if(!isGameConnected) { if(chesspad.connectServer(chesspad.host,chesspad.port)) { isGameConnected=true; isOnChess=true; isClient=true; controlpad.creatGameButton.setEnabled(false); controlpad.joinGameButton.setEnabled(false); controlpad.cancelGameButton.setEnabled(true); chesspad.chessthread.sendMessage("/joingame "+userpad.userList.getSelectedItem()+" "+chessClientName); } } else { isOnChess=true; isClient=true; controlpad.creatGameButton.setEnabled(false); controlpad.joinGameButton.setEnabled(false); controlpad.cancelGameButton.setEnabled(true); chesspad.chessthread.sendMessage("/joingame "+userpad.userList.getSelectedItem()+" "+chessClientName); } } catch(Exception ee) { isGameConnected=false; isOnChess=false; isClient=false; controlpad.creatGameButton.setEnabled(true); controlpad.joinGameButton.setEnabled(true); controlpad.cancelGameButton.setEnabled(false); chatpad.chatLineArea.setText("chesspad.connectServer无法连接 \n"+ee); } } } if(e.getSource()==controlpad.creatGameButton) { try { if(!isGameConnected) { if(chesspad.connectServer(chesspad.host,chesspad.port)) { isGameConnected=true; isOnChess=true; isServer=true; controlpad.creatGameButton.setEnabled(false); controlpad.joinGameButton.setEnabled(false); controlpad.cancelGameButton.setEnabled(true); chesspad.chessthread.sendMessage("/creatgame "+"[inchess]"+chessClientName); } } else { isOnChess=true; isServer=true; controlpad.creatGameButton.setEnabled(false); controlpad.joinGameButton.setEnabled(false); controlpad.cancelGameButton.setEnabled(true); chesspad.chessthread.sendMessage("/creatgame "+"[inchess]"+chessClientName); } } catch(Exception ec) { isGameConnected=false; isOnChess=false; isServer=false; controlpad.creatGameButton.setEnabled(true); controlpad.joinGameButton.setEnabled(true); controlpad.cancelGameButton.setEnabled(false); ec.printStackTrace(); chatpad.chatLineArea.setText("chesspad.connectServer无法连接 \n"+ec); } } if(e.getSource()==controlpad.cancelGameButton) { if(isOnChess) { chesspad.chessthread.sendMessage("/giveup "+chessClientName); chesspad.chessVictory(-1*chesspad.chessColor); controlpad.creatGameButton.setEnabled(true); controlpad.joinGameButton.setEnabled(true); controlpad.cancelGameButton.setEnabled(false); chesspad.statusText.setText("请建立游戏或者加入游戏"); } if(!isOnChess) { controlpad.creatGameButton.setEnabled(true); controlpad.joinGameButton.setEnabled(true); controlpad.cancelGameButton.setEnabled(false); chesspad.statusText.setText("请建立游戏或者加入游戏"); } isClient=isServer=false; } } public void keyPressed(KeyEvent e) { TextField inputWords=(TextField)e.getSource(); if(e.getKeyCode()==KeyEvent.VK_ENTER) { if(inputpad.userChoice.getSelectedItem().equals("所有人")) { try { out.writeUTF(inputWords.getText()); inputWords.setText(""); } catch(Exception ea) { chatpad.chatLineArea.setText("chessClient:KeyPressed无法连接,建议重新连接 \n"); userpad.userList.removeAll(); inputpad.userChoice.removeAll(); inputWords.setText(""); controlpad.connectButton.setEnabled(true); } } else { try { out.writeUTF("/"+inputpad.userChoice.getSelectedItem()+" "+inputWords.getText()); inputWords.setText(""); } catch(Exception ea) { chatpad.chatLineArea.setText("chessClient:KeyPressed无法连接,建议重新连接 \n"); userpad.userList.removeAll(); inputpad.userChoice.removeAll(); inputWords.setText(""); controlpad.connectButton.setEnabled(true); } } } } public void keyTyped(KeyEvent e) { } public void keyReleased(KeyEvent e) { } public static void main(String args[]) { chessClient chessClient=new chessClient(); } } /****************************************************************************************** 下面是:chessInteface.java ******************************************************************************************/ import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; class userPad extends Panel { List userList=new List(10); userPad() { setLayout(new BorderLayout()); for(int i=0;i<50;i++) { userList.add(i+"."+"没有用户"); } add(userList,BorderLayout.CENTER); } } class chatPad extends Panel { TextArea chatLineArea=new TextArea("",18,30,TextArea.SCROLLBARS_VERTICAL_ONLY); chatPad() { setLayout(new BorderLayout()); add(chatLineArea,BorderLayout.CENTER); } } class controlPad extends Panel { Label IPlabel=new Label("IP",Label.LEFT); TextField inputIP=new TextField("localhost",10); Button connectButton=new Button("连接主机"); Button creatGameButton=new Button("建立游戏"); Button joinGameButton=new Button("加入游戏"); Button cancelGameButton=new Button("放弃游戏"); Button exitGameButton=new Button("关闭程序"); controlPad() { setLayout(new FlowLayout(FlowLayout.LEFT)); setBackground(Color.pink); add(IPlabel); add(inputIP); add(connectButton); add(creatGameButton); add(joinGameButton); add(cancelGameButton); add(exitGameButton); } } class inputPad extends Panel { TextField inputWords=new TextField("",40); Choice userChoice=new Choice(); inputPad() { setLayout(new FlowLayout(FlowLayout.LEFT)); for(int i=0;i=1 && chessOptNum<=3) { chessOpt[chessOptNum-1]=chessToken; } chessOptNum++; } chesspad.netChessPaint(Integer.parseInt(chessOpt[0]),Integer.parseInt(chessOpt[1]),Integer.parseInt(chessOpt[2])); } else if(recMessage.startsWith("/yourname ")) { chesspad.chessSelfName=recMessage.substring(10); } else if(recMessage.equals("/error")) { chesspad.statusText.setText("错误:没有这个用户,请退出程序,重新加入"); } else { //System.out.println(recMessage); } } public void run() { String message=""; try { while(true) { message=chesspad.inData.readUTF(); acceptMessage(message); } } catch(IOException es) { } } } class chessPad extends Panel implements MouseListener,ActionListener { int chessPoint_x=-1,chessPoint_y=-1,chessColor=1; int chessBlack_x[]=new int[200]; int chessBlack_y[]=new int[200]; int chessWhite_x[]=new int[200]; int chessWhite_y[]=new int[200]; int chessBlackCount=0,chessWhiteCount=0; int chessBlackWin=0,chessWhiteWin=0; boolean isMouseEnabled=false,isWin=false,isInGame=false; TextField statusText=new TextField("请先连接服务器"); Socket chessSocket; DataInputStream inData; DataOutputStream outData; String chessSelfName=null; String chessPeerName=null; String host=null; int port=4331; chessThread chessthread=new chessThread(this); chessPad() { setSize(440,440); setLayout(null); setBackground(Color.pink); addMouseListener(this); add(statusText); statusText.setBounds(40,5,360,24); statusText.setEditable(false); } public boolean connectServer(String ServerIP,int ServerPort) throws Exception { try { 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); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值