⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 five.java.txt

📁 java网络五子棋 可同时容纳50个人同时在线下棋
💻 TXT
📖 第 1 页 / 共 2 页
字号:
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<50;i++) 
{ 
userChoice.addItem(i+"."+"没有用户"); 
} 
userChoice.setSize(60,24); 
add(userChoice); 
add(inputWords); 
} 
} 



/********************************************************************************************** 
下面是:chessPad.java 
**********************************************************************************************/ 
import java.awt.*; 
import java.awt.event.*; 
import java.io.*; 
import java.net.*; 
import java.util.*; 

class chessThread extends Thread 
{ 
chessPad chesspad; 

chessThread(chessPad chesspad) 
{ 
this.chesspad=chesspad; 
} 

public void sendMessage(String sndMessage) 
{ 
try 
{ 
chesspad.outData.writeUTF(sndMessage); 
} 
catch(Exception ea) 
{ 
System.out.println("chessThread.sendMessage:"+ea); 
} 
} 


public void acceptMessage(String recMessage) 
{ 
if(recMessage.startsWith("/chess ")) 
{ 
StringTokenizer userToken=new StringTokenizer(recMessage," "); 
String chessToken; 
String[] chessOpt={"-1","-1","0"}; 
int chessOptNum=0; 

while(userToken.hasMoreTokens()) 
{ 
chessToken=(String)userToken.nextToken(" "); 
if(chessOptNum>=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); 
} 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -