用JAVA写一个小应用程序
-
导入Java . awt . *;
导入Java . awt . event . *;
导入javax . swing . *;
mypanel类扩展panel实现MouseListener
{
int chess[][]= new int[11][11];
布尔型Is _ Black _ True
我的面板()
{
Is _ Black _ True = true
for(int I = 0;我& lt11;i++)
{
for(int j = 0;j & lt11;j++)
{
chess[I][j]= 0;
}
}
addmouse listener(this);
setBackground(颜色。蓝色);
setBounds(0,0,360,360);
set visible(true);
}
公共void mousePressed(MouseEvent e)
{
int x = e . getx();
int y = e . gety();
if(x & lt;25 || x >330+25 | | y & lt;25 | | y & gt330+25)
{
返回;
}
if(象棋[x/30-1][y/30-1]!= 0)
{
返回;
}
if(Is_Black_True == true)
{
象棋[x/30-1][y/30-1]= 1;
Is _ Black _ True = false
repaint();
justisewiner();
返回;
}
if(Is_Black_True == false)
{
象棋[x/30-1][y/30-1]= 2;
Is _ Black _ True = true
repaint();
justisewiner();
返回;
}
}
空白绘制线(图形g)
{
for(int I = 30;我& lt= 330;i += 30)
{
for(int j = 30;j & lt= 330;j+= 30)
{
g.setColor(颜色。白色);
g.drawLine(i,j,I,330);
}
}
for(int j = 30;j & lt= 330;j += 30)
{
g.setColor(颜色。白色);
g .拉线(30,j,330,j);
}
}
空画图棋(图形g)
{
for(int I = 0;我& lt11;i++)
{
for(int j = 0;j & lt11;j++)
{
if(chess[i][j] == 1)
{
g.setColor(颜色。黑色);
g.fillOval((i + 1) * 30 - 8,(j + 1) * 30 - 8,16,16);
}
if(国际象棋[i][j] == 2)
{
g.setColor(颜色。白色);
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;我& lt11;I++)//横向判断
{
for(int j = 0;j & lt11;j++)
{
if(chess[i][j] == 1)
{
black _ count++;
if(black_count == 5)
{
Joption窗格。显示消息对话框(这个,“黑色胜利”);
clear _ Chess();
返回;
}
}
其他
{
black _ count = 0;
}
if(国际象棋[i][j] == 2)
{
white _ count++;
if(白色计数== 5)
{
Joption窗格。显示消息对话框(这个,“白棋胜利”);
clear _ Chess();
返回;
}
}
其他
{
white _ count = 0;
}
}
}
for(I = 0;我& lt11;I++)//垂直判断
{
for(int j = 0;j & lt11;j++)
{
if(chess[j][i] == 1)
{
black _ count++;
if(black_count == 5)
{
Joption窗格。显示消息对话框(这个,“黑色胜利”);
clear _ Chess();
返回;
}
}
其他
{
black _ count = 0;
}
if(国际象棋[j][i] == 2)
{
white _ count++;
if(白色计数== 5)
{
Joption窗格。显示消息对话框(这个,“白棋胜利”);
clear _ Chess();
返回;
}
}
其他
{
white _ count = 0;
}
}
}
for(I = 0;我& lt7;I++)//从左向右倾斜判断
{
for(int j = 0;j & lt7;j++)
{
for(int k = 0;k & lt5;k++)
{
if(chess[i + k][j + k] == 1)
{
black _ count++;
if(black_count == 5)
{
Joption窗格。显示消息对话框(这个,“黑色胜利”);
clear _ Chess();
返回;
}
}
其他
{
black _ count = 0;
}
if(国际象棋[i + k][j + k] == 2)
{
white _ count++;
if(白色计数== 5)
{
Joption窗格。显示消息对话框(这个,“白棋胜利”);
clear _ Chess();
返回;
}
}
其他
{
white _ count = 0;
}
}
}
}
for(I = 4;我& lt11;I++)//左右斜判断
{
for(int j = 6;j & gt= 0;j -)
{
for(int k = 0;k & lt5;k++)
{
if(chess[i - k][j + k] == 1)
{
black _ count++;
if(black_count == 5)
{
Joption窗格。显示消息对话框(这个,“黑色胜利”);
clear _ Chess();
返回;
}
}
其他
{
black _ count = 0;
}
if(国际象棋[i - k][j + k] == 2)
{
white _ count++;
if(白色计数== 5)
{
Joption窗格。显示消息对话框(这个,“白棋胜利”);
clear _ Chess();
返回;
}
}
其他
{
white _ count = 0;
}
}
}
}
}
void Clear_Chess()
{
for(int I = 0;我& lt11;i++)
{
for(int j = 0;j & lt11;j++)
{
chess[I][j]= 0;
}
}
repaint();
}
公共空白油漆(图形g)
{
拉线(克);
draw chess(g);
}
public void mouse exited(mouse event e){ }
public void mouse enter(mouse event e){ }
public void mouse released(mouse event e){ }
public void mouse clicked(mouse event e){ }
}
myframe类扩展frame实现WindowListener
{
mypanel面板;
我的框架()
{
set layout(null);
panel = new my panel();
添加(面板);
panel.setBounds(0,23,360,360);
SetTitle(“单人五子棋”);
setBounds(200,200,360,383);
set visible(true);
addWindowListener(this);
}
公共void窗口关闭(WindowEvent e)
{
system . exit(0);
}
公共void window deactivated(window event e){ }
公共void window activated(window event e){ }
public void window opened(window event e){ }
公共void window closed(window event e){ }
公共void window icon ified(window event e){ }
public void window identified(window event e){ }
}
公共类mywindow
{
公共静态void main(String argc [])
{
my frame f = new my frame();
}
}