history
rules
expert advice
online challenge
game source
links
test yourself
board room
the last minute
about us




Chess.Java source file


import java.awt.*;
import java.applet.Applet;
import java.net.URL;
import Client;

public class Chess extends Frame
{
String player1;
String player2;
public int move;

public int qizi;

Label msg=new Label("Hello, This is the WeiQi game");

public int[][] bd=new int[20][20];

public int[][] rstct=new int[20][20];

Client cl;

int movedx,movedy;

Button quit=new Button(" Quit the Game ");

Chess(String name1,String name2,int can_move,Client mcl)
{
super(name1+" V.S. "+name2);

player1=name1;
player2=name2;
move=can_move;
qizi=can_move;
cl=mcl;
resize(440,500);

movedx=-1;
movedy=-1;

setLayout(new BorderLayout());

Panel p=new Panel();
p.add(msg);
p.add(quit);

add("North",p);
}

public void oppmove(int y,int x)
{
bd[y][x]=-qizi;
move=1;
movedx=x;
movedy=y;
repaint();
};

public void checkSurround(int qi)
{
int[][] temp=new int[20][20];
for (int i=1;i<=19;i++)
for (int j=1;j<=19;j++)
if (bd[i][j]==0)
temp[i][j]=1;

int counter=999;
while (counter!=0)
{
counter=0;
for (int i=1;i<=19;i++)
for (int j=1;j<=19;j++)
if ((temp[i][j]==1) && (bd[i][j]!=-qi))
{
if ((i>1) && (temp[i-1][j]!=1)) {temp[i-1][j]=1;counter++;};
if ((i<19) && (temp[i+1][j]!=1)) {temp[i+1][j]=1;counter++;};
if ((j>1) && (temp[i][j-1]!=1)) {temp[i][j-1]=1;counter++;};
if ((j<19) && (temp[i][j+1]!=1)) {temp[i][j+1]=1;counter++;};
};
}

for (int i=1;i<=19;i++)
for (int j=1;j<=19;j++)
if ((temp[i][j]==0) && (bd[i][j]==qi))
{
bd[i][j]=0;
rstct[i][j]=1;
};
};

public void paint(Graphics g)
{
if (move==-1)
msg.setText("Waiting for opponent's move...");
else
msg.setText("It is your turn to move !");

for (int i=1;i<=19;i++)
g.drawLine(40,(i+1)*20+40,400,(i+1)*20+40);
for (int j=1;j<=19;j++)
g.drawLine((j+1)*20,80,(j+1)*20,440);

for (int i=1;i<=19;i++)
for (int j=1;j<=19;j++)
if (bd[i][j]==1)
g.fillOval((j+1)*20-10,(i+1)*20+40-10,20,20);
else
if (bd[i][j]==-1)
{
g.setColor(Color.white);
g.fillOval((j+1)*20-10,(i+1)*20+40-10,20,20);
g.setColor(Color.black);
g.drawOval((j+1)*20-10,(i+1)*20+40-10,20,20);
};

if (movedx!=-1)
{
g.setColor(Color.green);
g.drawOval((movedx+1)*20-10,
(movedy+1)*20+40-10,20,20);
g.setColor(Color.black);
};

};

public boolean mouseDown(Event e,int x,int y)
{
if (move==1)
{
x=Math.round((float) x/20)-1;
y=Math.round((float) (y-40)/20)-1;
if ((y>=1) && (y<=19) && (x>=1) && (x<=19)
&& (bd[y][x]==0) && (rstct[y][x]==0))
{
bd[y][x]=qizi;
checkSurround(-qizi);
checkSurround(qizi);
move=-1;
cl.sendRequest("Move "+(y*100+x));
repaint();
}
else
msg.setText("Cannot make that move !");
}
else
msg.setText("Please wait for your opponent ...");
return super.mouseDown(e,x,y);
};

public boolean action(Event e,Object arg)
{
if (e.target==quit)
cl.sendRequest("Endgame");
return super.action(e,arg);
};

};

view the source file

By visiting the below links to the source code, you have agreed to our license agreement. The source codes are copyright and if you wish to use the source code or part of the engine of the game, you must obtain weiqi.com permission first. The final decision lies with weiqi.com .

Source for Board.Java

Source for Chess.Java

Source for Client.Java

Source for Server.Java

Source for ServerThread.Java

Source for User.Java

Source for Weiqi.Java

Source for WelcomeDialog.Java

top

©1999. weiqi.com Last updated on 14/08/99