java五子棋源代码.doc





《java五子棋源代码.doc》由会员分享,可在线阅读,更多相关《java五子棋源代码.doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、java五子棋源代码chessClient.java:客户端主程序。chessInterface.java:客户端的界面。chessPad.java:棋盘的绘制。chessServer.java:服务器端。可同时容纳50个人同时在线下棋,聊天。没有加上详细注释,不过绝对可以运行,j2sdk1.4下通过。Java培训/*1.chessClient.java*/import java.awt.*;import java.awt.event.*;import java.io.*;import .*;import java.util.*;class clientThread extends Threa
2、dchessClient 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
3、.inputpad.userChoice.removeAll();chessclient.inputpad.userChoice.addItem(所有人);while(userToken.hasMoreTokens()String user=(String)userToken.nextToken( );if(userNumber0 & !user.startsWith(inchess)chessclient.userpad.userList.add(user);chessclient.inputpad.userChoice.addItem(user);userNumber+;chessclie
4、nt.inputpad.userChoice.select(所有人);else if(recMessage.startsWith(/yourname )chessclient.chessClientName=recMessage.substring(10);chessclient.setTitle(Java五子棋客户端 +用户名:+chessclient.chessClientName);else if(recMessage.equals(/reject)trychessclient.chesspad.statusText.setText(不能加入游戏);chessclient.control
5、pad.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.setEnabl
6、ed(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
7、.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;el
8、se if(recMessage.equals(/OK)chessclient.chesspad.statusText.setText(创建游戏成功,等待别人加入.);else if(recMessage.equals(/error)chessclient.chatpad.chatLineArea.append(传输错误:请退出程序,重新加入 n);elsechessclient.chatpad.chatLineArea.append(recMessage+n);chessclient.chatpad.chatLineArea.setCaretPosition(chessclient.chat
9、pad.chatLineArea.getText().length();public void run()String message=;trywhile(true)message=chessclient.in.readUTF();acceptMessage(message);catch(IOException es)public class chessClient extends Frame implements ActionListener,KeyListeneruserPad userpad=new userPad();chatPad chatpad=new chatPad();cont
10、rolPad controlpad=new controlPad();chessPad chesspad=new chessPad();inputPad inputpad=new inputPad();Socket chatSocket;DataInputStream in;DataOutputStream out;String chessClientName=null;String host=null;int port=4331;boolean isOnChat=false; /在聊天?boolean isOnChess=false; /在下棋?boolean isGameConnected
11、=false; /下棋的客户端连接?boolean isServer=false; /如果是下棋的主机boolean isClient=false; /如果是下棋的客户端Panel southPanel=new Panel();Panel northPanel=new Panel();Panel centerPanel=new Panel();Panel westPanel=new Panel();Panel eastPanel=new Panel();chessClient()super(Java五子棋客户端);setLayout(new BorderLayout();host=contro
12、lpad.inputIP.getText();westPanel.setLayout(new BorderLayout();westPanel.add(userpad,BorderLayout.NORTH);westPanel.add(chatpad,BorderLayout.CENTER);westPanel.setBackground(Color.pink);inputpad.inputWords.addKeyListener(this);chesspad.host=controlpad.inputIP.getText();centerPanel.add(chesspad,BorderLa
13、yout.CENTER);centerPanel.add(inputpad,BorderLayout.SOUTH);centerPanel.setBackground(Color.pink);controlpad.connectButton.addActionListener(this);controlpad.creatGameButton.addActionListener(this);controlpad.joinGameButton.addActionListener(this);controlpad.cancelGameButton.addActionListener(this);co
14、ntrolpad.exitGameButton.addActionListener(this);controlpad.creatGameButton.setEnabled(false);controlpad.joinGameButton.setEnabled(false);controlpad.cancelGameButton.setEnabled(false);southPanel.add(controlpad,BorderLayout.CENTER);southPanel.setBackground(Color.pink);addWindowListener(new WindowAdapt
15、er()public void windowClosing(WindowEvent e)if(isOnChat)trychatSocket.close();catch(Exception ed)if(isOnChess | isGameConnected)trychesspad.chessSocket.close();catch(Exception ee)System.exit(0);public void windowActivated(WindowEvent ea);add(westPanel,BorderLayout.WEST);add(centerPanel,BorderLayout.
16、CENTER);add(southPanel,BorderLayout.SOUTH);pack();setSize(670,548);setVisible(true);setResizable(false);validate();public boolean connectServer(String serverIP,int serverPort) throws ExceptiontrychatSocket=new Socket(serverIP,serverPort);in=new DataInputStream(chatSocket.getInputStream();out=new Dat
17、aOutputStream(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.getSourc
18、e()=controlpad.connectButton)host=chesspad.host=controlpad.inputIP.getText();tryif(connectServer(host,port)chatpad.chatLineArea.setText();controlpad.connectButton.setEnabled(false);controlpad.creatGameButton.setEnabled(true);controlpad.joinGameButton.setEnabled(true);chesspad.statusText.setText(连接成功
19、,请创建游戏或加入游戏);catch(Exception ei)chatpad.chatLineArea.setText(controlpad.connectButton:无法连接,建议重新启动程序 n);if(e.getSource()=controlpad.exitGameButton)if(isOnChat)trychatSocket.close();catch(Exception ed)if(isOnChess | isGameConnected)trychesspad.chessSocket.close();catch(Exception ee)System.exit(0);if(e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 五子棋 源代码

限制150内