java五子棋源代码.docx
- 文档编号:2797855
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:19
- 大小:18.87KB
java五子棋源代码.docx
《java五子棋源代码.docx》由会员分享,可在线阅读,更多相关《java五子棋源代码.docx(19页珍藏版)》请在冰豆网上搜索。
java五子棋源代码
java五子棋源代码
chessClient.java:
客户端主程序。
chessInterface.java:
客户端的界面。
chessPad.java:
棋盘的绘制。
chessServer.java:
服务器端。
可同时容纳50个人同时在线下棋,聊天。
没有加上详细注释,不过绝对可以运行,j2sdk1.4下通过。
Java培训
/*********************************************************************************************
1.chessClient.java
**********************************************************************************************/
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
import.*;
importjava.util.*;
classclientThreadextendsThread
{
chessClientchessclient;
clientThread(chessClientchessclient)
{
this.chessclient=chessclient;
}
publicvoidacceptMessage(StringrecMessage)
{
if(recMessage.startsWith("/userlist"))
{
StringTokenizeruserToken=newStringTokenizer(recMessage,"");
intuserNumber=0;
chessclient.userpad.userList.removeAll();
chessclient.inputpad.userChoice.removeAll();
chessclient.inputpad.userChoice.addItem("所有人");
while(userToken.hasMoreTokens())
{
Stringuser=(String)userToken.nextToken("");
if(userNumber>0&&!
user.startsWith("[inchess]"))
{
chessclient.userpad.userList.add(user);
chessclient.inputpad.userChoice.addItem(user);
}
userNumber++;
}
chessclient.inputpad.userChoice.select("所有人");
}
elseif(recMessage.startsWith("/yourname"))
{
chessclient.chessClientName=recMessage.substring(10);
chessclient.setTitle("Java五子棋客户端"+"用户名:
"+chessclient.chessClientName);
}
elseif(recMessage.equals("/reject"))
{
try
{
chessclient.chesspad.statusText.setText("不能加入游戏");
chessclient.controlpad.cancelGameButton.setEnabled(false);
chessclient.controlpad.joinGameButton.setEnabled(true);
chessclient.controlpad.creatGameButton.setEnabled(true);
}
catch(Exceptionef)
{
chessclient.chatpad.chatLineArea.setText("chessclient.chesspad.chessSocket.close无法关闭");
}
chessclient.controlpad.joinGameButton.setEnabled(true);
}
elseif(recMessage.startsWith("/peer"))
{
chessclient.chesspad.chessPeerName=recMessage.substring(6);
if(chessclient.isServer)
{
chessclient.chesspad.chessColor=1;
chessclient.chesspad.isMouseEnabled=true;
chessclient.chesspad.statusText.setText("请黑棋下子");
}
elseif(chessclient.isClient)
{
chessclient.chesspad.chessColor=-1;
chessclient.chesspad.statusText.setText("已加入游戏,等待对方下子...");
}
}
elseif(recMessage.equals("/youwin"))
{
chessclient.isOnChess=false;
chessclient.chesspad.chessVictory(chessclient.chesspad.chessColor);
chessclient.chesspad.statusText.setText("对方退出,请点放弃游戏退出连接");
chessclient.chesspad.isMouseEnabled=false;
}
elseif(recMessage.equals("/OK"))
{
chessclient.chesspad.statusText.setText("创建游戏成功,等待别人加入...");
}
elseif(recMessage.equals("/error"))
{
chessclient.chatpad.chatLineArea.append("传输错误:
请退出程序,重新加入\n");
}
else
{
chessclient.chatpad.chatLineArea.append(recMessage+"\n");
chessclient.chatpad.chatLineArea.setCaretPosition(
chessclient.chatpad.chatLineArea.getText().length());
}
}
publicvoidrun()
{
Stringmessage="";
try
{
while(true)
{
message=chessclient.in.readUTF();
acceptMessage(message);
}
}
catch(IOExceptiones)
{
}
}
}
publicclasschessClientextendsFrameimplementsActionListener,KeyListener
{
userPaduserpad=newuserPad();
chatPadchatpad=newchatPad();
controlPadcontrolpad=newcontrolPad();
chessPadchesspad=newchessPad();
inputPadinputpad=newinputPad();
SocketchatSocket;
DataInputStreamin;
DataOutputStreamout;
StringchessClientName=null;
Stringhost=null;
intport=4331;
booleanisOnChat=false;//在聊天?
booleanisOnChess=false;//在下棋?
booleanisGameConnected=false;//下棋的客户端连接?
booleanisServer=false;//如果是下棋的主机
booleanisClient=false;//如果是下棋的客户端
PanelsouthPanel=newPanel();
PanelnorthPanel=newPanel();
PanelcenterPanel=newPanel();
PanelwestPanel=newPanel();
PaneleastPanel=newPanel();
chessClient()
{
super("Java五子棋客户端");
setLayout(newBorderLayout());
host=controlpad.inputIP.getText();
westPanel.setLayout(newBorderLayout());
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,BorderLayout.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);
controlpad.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(newWindowAdapter()
{
publicvoidwindowClosing(WindowEvente)
{
if(isOnChat)
{
try
{
chat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 五子棋 源代码