/*
* 五子棋.java
*
* Created on 2006年10月24日, 上午8:12
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
/**
*
* @author 05040045
*/
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class 五子棋 extends Applet implements ActionListener,MouseListener
{
String str="谢立锋五子棋游戏!";
Dimension currentPos=new Dimension();
int zuobiao[][]=new int[19][15];
int x=20,y=20;
boolean unfirstpaint=false;
boolean one=false;
//======================================================================
public void init()
{
addMouseListener(this);
for(int i=0;i<=18;i++)
{
for(int j=0;j<=14;j++)
zuobiao[i][j]=0;
}
}
//======================================================================
public void paint(Graphics g)
{
int x0=30,y0=50,dx=30,dy=30,N=18,M=14;
int x1,y1,x2,y2;
g.setColor(Color.green);
y1=y0;
y2=y0+M*dy;
for(int i=0;i<=N;i++)
{
x1=x0+i*dx;
g.drawLine(x1,y1,x1,y2);
}
g.setColor(Color.red);
x1=x0;
x2=x0+N*dx;
for(int j=0;j<=M;j++)
{
y1=y0+j*dy;
g.drawLine(x1,y1,x2,y1);
}
g.setColor(Color.red);
g.setFont(new Font("TimesRoman",Font.BOLD,25));
g.drawString(str,120,30);
g.setColor(Color.red);
g.fillOval(600,60,20,20); g.drawString(" : 甲方",610,80);
g.setColor(Color.blue);
g.fillOval(600,100,20,20); g.drawString(" : 乙方",610,120);
//======================================================================
if(unfirstpaint)
{
for(int i=0;i<=18;i++)//画棋子
{
for(int j=0;j<=14;j++)
{
if(currentPos.width<=(45+i*30)&¤tPos.width>=(15+i*30))
x=i;
if(currentPos.height<=(65+j*30)&¤tPos.height>=(35+j*30))
y=j;
}
}
}
//=====================================================================
if(x!=20&&y!=20)
if(zuobiao[x][y]==0)
{
if(one)
zuobiao[x][y]=1;
else
zuobiao[x][y]=2;
}
//画点图=====================================================================
for(int i=0;i<=18;i++)
for(int j=0;j<=14;j++)
{
if(zuobiao[i][j]==1)
{
g.setColor(Color.red);
g.fillOval(20+i*30,40+j*30,20,20);
}
if(zuobiao[i][j]==2)
{
g.setColor(Color.blue);
g.fillOval(20+i*30,40+j*30,20,20);
}
}
//判输赢======================================================================
for(int i=0;i<15;i++)
for(int j=0;j<=14;j++)
{
if(zuobiao[i][j]!=0&&zuobiao[i][j]==zuobiao[i+1][j]&&zuobiao[i][j]==zuobiao[i+2][j]&&zuobiao[i][j]==zuobiao[i+3][j]&&zuobiao[i][j]==zuobiao[i+4][j])
{
if(one)
{
g.setColor(Color.red);
g.drawString("甲方胜利!恭喜你!",200,250);
g.setColor(Color.yellow);
g.drawString("甲方胜利!恭喜你!",202,249);
}
//g.drawString("甲方胜利!恭喜你!",200,200);
else
{
g.setColor(Color.red);
g.drawString("乙方胜利!恭喜你!",200,250);
g.setColor(Color.yellow);
g.drawString("乙方胜利!恭喜你!",202,249);
}
}
}
for(int i=0;i<=18;i++)
for(int j=0;j<12;j++)
{
if(zuobiao[i][j]!=0&&zuobiao[i][j]==zuobiao[i][j+1]&&zuobiao[i][j]==zuobiao[i][j+2]&&zuobiao[i][j]==zuobiao[i][j+3]&&zuobiao[i][j]==zuobiao[i][j+4])
{
if(one)
{
g.setColor(Color.red);
g.drawString("甲方胜利!恭喜你!",200,250);
g.setColor(Color.yellow);
g.drawString("甲方胜利!恭喜你!",202,249);
}
else
{
g.setColor(Color.red);
g.drawString("乙方胜利!恭喜你!",200,250);
g.setColor(Color.yellow);
g.drawString("乙方胜利!恭喜你!",202,249);
}
}
}
//======================================================================
for(int i=0;i<15;i++)
for(int j=0;j<12;j++)
{
if(zuobiao[i][j]!=0&&zuobiao[i][j]==zuobiao[i+1][j+1]&&zuobiao[i][j]==zuobiao[i+2][j+2]&&zuobiao[i][j]==zuobiao[i+3][j+3]&&zuobiao[i][j]==zuobiao[i+4][j+4])
{
if(one)
{
g.setColor(Color.red);
g.drawString("甲方胜利!恭喜你!",200,250);
g.setColor(Color.yellow);
g.drawString("甲方胜利!恭喜你!",202,249);
}
else
{
g.setColor(Color.red);
g.drawString("乙方胜利!恭喜你!",200,250);
g.setColor(Color.yellow);
g.drawString("乙方胜利!恭喜你!",202,249);
}
}
}
for(int i=0;i<15;i++)
for(int j=14;j>3;j--)
{
if(zuobiao[i][j]!=0&&zuobiao[i][j]==zuobiao[i+1][j-1]&&zuobiao[i][j]==zuobiao[i+2][j-2]&&zuobiao[i][j]==zuobiao[i+3][j-3]&&zuobiao[i][j]==zuobiao[i+4][j-4])
{
if(one)
{
g.setColor(Color.red);
g.drawString("甲方胜利!恭喜你!",200,250);
g.setColor(Color.yellow);
g.drawString("甲方胜利!恭喜你!",202,249);
}
else
{
g.setColor(Color.red);
g.drawString("乙方胜利!恭喜你!",200,250);
g.setColor(Color.yellow);
g.drawString("乙方胜利!恭喜你!",202,249);
}
}
}
}
//======================================================================
public void actionPerformed(ActionEvent e)
{
}
public void mouseClicked(MouseEvent e)
{
currentPos.width=e.getX();
currentPos.height=e.getY();
if(currentPos.width>15&¤tPos.width<585&¤tPos.height>35&¤tPos.height<485)
{
x=y=20;
unfirstpaint=true;
if(one)
one=false;
else
one=true;
repaint();
}
}
public void mousePressed(MouseEvent e)
{ }
public void mouseReleased(MouseEvent e)
{ }
public void mouseEntered(MouseEvent e)
{ }
public void mouseExited(MouseEvent e)
{ }
}