五子棋游戏代码(Java语言)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五子棋游戏代码(Java语言)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class mypanel extends Panel implements MouseListener {
int chess[][] = new int[11][11];
boolean Is_Black_True;
mypanel()
{
Is_Black_True=true;
for(int i=0;i<11;i++)
{
for(int j=0;j<11;j++)
{
chess[i][j] = 0;
}
}
addMouseListener(this);
setBackground(Color.RED);
setBounds(0, 0, 360, 360);
setVisible(true);
}
public void mousePressed(MouseEvent e)
{
int x = e.getX();
int y = e.getY();
if(x < 25 || x > 330 + 25 ||y < 25 || y > 330+25)
{return;}
if(chess[x/30-1][y/30-1] != 0)
{return;}
if(Is_Black_True==true)
{
chess[x/30-1][y/30-1] = 1;
Is_Black_True=false;
repaint();
Justisewiner();
return;
}
if(Is_Black_True==false)
{
chess[x/30-1][y/30-1]=2;
Is_Black_True=true;
repaint();
Justisewiner();
return;
}
}
void Drawline(Graphics g)
{
for(int i=30;i<=330;i+=30)
{
for(int j = 30;j <= 330; j+= 30)
{
g.setColor(Color.GREEN);
g.drawLine(i, j, i, 330);
}
}
for(int j = 30;j <= 330;j+=30)
{
g.setColor(Color.GREEN);
g.drawLine(30, j, 330, j);
}
}
void Drawchess(Graphics g)
{
for(int i=0;i < 11;i++)
{
for(int j = 0;j < 11;j++)
{
if(chess[i][j] == 1)
{
g.setColor(Color.BLACK);
g.fillOval((i+1)*30-8, (j+1)*30-8, 16, 16);
}
if(chess[i][j]==2)
{
g.setColor(Color.WHITE);
g.fillOval((i+1)*30-8, (j + 1) * 30-8, 16, 16);
}
}
}
void Justisewiner()
{
int black_count = 0;
int white_count = 0;
int i = 0;
for(i=0;i<11;i++) //竖向判断
{
for(int j=0;j<11;j++)
{
if(chess[i][j]==1)
{
black_count++;
if(black_count==5)
{
JOptionPane.showMessageDialog(this, "黑棋胜利");
Clear_Chess();
return;
}
}
else
{
black_count=0;
}
if(chess[i][j]==2)
{
white_count++;
if(white_count==5)
{
JOptionPane.showMessageDialog(this, "白棋胜利");
Clear_Chess();
return;
}
}
else
{
white_count = 0;
}
}
for(i=0;i<11;i++) //横向判断
{
for(int j=0;j<11;j++)
{
if(chess[j][i] == 1)
{
black_count++;
if(black_count==5)
{
JOptionPane.showMessageDialog(this, "黑棋胜利");
Clear_Chess();
return;
}
}
else
{
black_count=0;
}
if(chess[j][i]==2)
{
white_count++;
if(white_count==5)
{
JOptionPane.showMessageDialog(this, "白棋胜利");
Clear_Chess();
return;
}
}
else
{
white_count = 0;
}
}
}
for(i=0;i<7;i++) //左向右斜判断
{
for(int j=0;j < 7;j++)
{