Java.awt.event. *;
Javax.swing. *;
Mypanel 클래스 확장 panel 구현 MouseListener
{
Intchess [] [] = newint [11] [11];
부울 Is _ Black _ True
내 패널 ()
{
Is _ Black _ True = true
For(int I = 0;; 나< 1 1; I++)
{
For(int j = 0;; J< 1 1; J++)
{
Chess [I] [j] = 0;
}
}
Addmouse listener(this);) :
SetBackground (색상. 파란색);
Setbounds (0,0,360,360);
Setvisible (true);
}
공용 void mousePressed(MouseEvent e)
{
Int x = e.getx ();
Int y = e.gety ();
If(x & lt;; 25 25 || x >330+25 | | y<;; 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;; 나<= 330; I += 30)
{
For(int j = 30;; J<= 330; J+= 30)
{
G.setColor (색상. 흰색);
G.drawLine(i, j, I, 330);
}
}
For(int j = 30;; J<= 330; J += 30)
{
G.setColor (색상. 흰색);
G. 케이블 (30, j, 330, j);
}
}
빈그리기 체스 (그래픽 g)
{
For(int I = 0;; 나< 1 1; I++)
{
For(int j = 0;; J< 1 1; J++)
{
If(chess[i][j] == 1)
{
G.setColor (색상. 검정색);
G.fillOval((i+1) * 30-8, (j+1) * 30-8,/kloc-0
}
If (체스 [i][j] == 2)
{
G.setColor (색상. 흰색);
G.fillOval((i+1) * 30-8, (j+1) * 30-8,/kloc-0
}
}
}
}
Void Justisewiner ()
{
Intblack _ count = 0;
Intwhite _ count = 0;
Int I = 0;;
For(I = 0;; 나< 1 1; I++)// 수평 판단
{
For(int j = 0;; J< 1 1; 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;; 나< 1 1; I++)// 수직 판단
{
For(int j = 0;; J< 1 1; 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;; 나<7; I++)// 왼쪽에서 오른쪽으로 기울기 판단
{
For(int j = 0;; J<7; J++)
{
For(int k = 0;; K<5; 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;; 나< 1 1; I++)// 좌우 경사 판단
{
For(int j = 6;; J>= 0; J-)
{
For(int k = 0;; K<5; 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;; 나< 1 1; I++)
{
For(int j = 0;; J< 1 1; 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) {}
}
Frame 클래스 확장 프레임 구현 WindowListener
{
Mypanel 패널;
내 틀 ()
{
Setlayout (null);
Panel = new mypanel ();
추가 (패널);
Panel.setbounds (0,23,360,360);
SetTitle ("싱글 체스");
SetBounds(200, 200, 360, 383);
Setvisible (true);
Addwindowlistener (this);
}
공용 void 창 닫기 (WindowEvent e)
{
System.exit (0);
}
공용 void window deactivated (windowevent e) {}
공용 void window activated (windowevent e) {}
Public void window opened (윈도우 이벤트 e) {}
공용 void window closed (windowevent e) {}
공용 void window icon ified (window event e) {}
Public void window identified (윈도우 이벤트 e) {}
}
공용 클래스 mywindow
{
공용 정적 void main(String argc [])
{
Myframe f = new myframe ();
}
}