체스판을 구현하기 위해 Java에서 tic-tac-toe를 어떻게 사용합니까?
//?온라인 버전이 필요하시면 제 공간에 가서 보시면 됩니다.
/282919088/blog/item/a080f9f8cebc1808d8f9fdd8.html
import?java .awt.BorderLayout;
import?java.awt.Color;
import?java.awt.Container;
import ?java.awt.FlowLayout;
import?java.awt.Graphics;
import?java.awt.event.ActionEvent;
import?java. awt.event.ActionListener;
import?java.awt.event.MouseAdapter;
import?java.awt.event.MouseEvent;
import?javax .swing.JButton;
p>
import?javax.swing.JFrame;
import?javax.swing.JLabel;
public?class ?playingchess?extends?JFrame?{ int?x ?=?0, ?y?=?0; int?a?=?0, ?y1?=?0, ?x2?= ?0, ?y2?=?0,? x3?=?0, ?y3?=?0, ?x4?=?0, ?y4?=?0;; 부울?fa?=?true, ?huatu? =?true, ?yin?=?false; int?a1?=?0, ?a2?=?0, ?a3?=?0, ?a4?=?0, ?a5?=?0, ?a6? =?0, ?a7?=?0, ?a8?=?0,?a9?=?0, int?s[]?=?new?int[10], ?jj[]?=?new?int [10]; JButton?congxin,?huanse; public?Play chess()?{ Container?c?=?getContentPane(); c.setLayout(new?FlowLayout()); JButton("먼저 빨간색 팀을 다시 시작하세요") ; c.add(congxin); ?JLabel(); c.add(jl,? BorderLayout.SOUTH); addMouseListener(new?MouseAdapter()?{
public?void?mousePressed(MouseEvent?event)?{
if?(event.isAltDown())? { repaint();
}
x?=?event.getPoint().x;
y?=?event.getPoint().y ;
int?a?=?mm(x,?y);
if?(yin)?{ jl. setForeground(Color.RED)
>
.setText("게임이 끝났습니다. 다시 시작하시겠습니까?");
}
else?{ if?(s[a]?==?1 ) ?{ jl.setForeground(Color.RED); jl.setText("이 위치에 체스 말이 있습니다. 다시 플레이하려면 다른 위치를 선택하십시오."); a?==?1)
a1?=?1; if?(a?==?2)
a2?=?1; ?3)
p>a3?=?1; if?(a?==?4)
a4?=?1; )
a5?=?1; if?(a?==?6)
a6?=?1; if?(a?==?7)
a7?= ?1; if?(a?==?8)
a8?=?1; if?(a?==?9)
a9?=?1; jl .setText(""); }
}
s[a]?=?1; } }); congxin.addActionListener (new?ActionListener()?{
public?void?actionPerformed(ActionEvent?arg0)?{
for?(int?i?=? 0;?i?lt; ?s.length;?i )?{ s[i]?=?0;
}
fa?=?true;
repaint();
yin?=?false;
huatu?=?true;
jl.setForeground(Color.black );
jl.setText("빨간 팀이 먼저 가나요?")
} }); {
public?void?actionPerformed(ActionEvent?arg0)?{
for?(int?i?=?0;?i?lt;?s.length;?i )?{ s[i] ?=?0; jj[i]?=?0;
}
fa?=?true;
다시 그리기 ();
yin?=?false;
huatu?=?false;
jl.setForeground(Color.black);
jl .setText(" 파란색 팀이 먼저 플레이하나요?");
} }); setSize(500,?500) setVisible(true) } public?void?paint(Graphics?g )?{ if?(fa) ?{
super.paint(g);
int?x?=?100,?y?=?100,?c?= ?300,?k?=?300;
for?(int?i?=?0;?i?lt;?300;?i? =?100)
g.drawRect(x,?y ? ?i, ?c, ?k?-?i);
for?(int?i?=?0; ?i?lt; ?300; ? 나?
=?100)
g.drawRect(x? ?i, ?y, ?c?-?i, ?k) }?else?{
jl.setForeground( Color.black);
if?(huatu)?{
g.setColor(Color.red);
if?(a1?==? 1)?{ g.drawLine(120,?120,?180,?180); g.drawLine(180,?120,?120,?180); ;
}
if?(a2?==?1)?{ g.drawLine(220,?120,?280,?180); ?120, ?220, ?180); a2?=?0; jj[2]?=?1;
}
if?(a3?==?1) ?{ g.drawLine(320, ?120, ?380, ?180); g.drawLine(380, ?120, ?320, ?180) a3?=?0;
}
if?(a4?==?1)?{ g.drawLine(120,?220,?180,?280); g.drawLine(180,?220) ,?120,?280); a4?=?0; jj[4]?=?1;
}
if?(a5?==?1)? g.drawLine(220,?220,?280,?280); g.drawLine(280,?220,?220,?280) a5?=?0;
}
if?(a6?==?1)?{ g.drawLine(320,?220,?380,?280); g.drawLine(380,?220,? 320,?280); a6?=?0; jj[6]?=?1;
}
if?(a7?==?1)?{ g. drawLine(120,?320,?180,?380); g.drawLine(180,?320,?120,?380) a7?=?0;
}
if?(a8?==?1)?{ g.drawLine(220,?320,?280,?380); g.drawLine(280,?320,?220, ?380); a8?=?0; jj[8]?=?1;
}
if?(a9?==?1)?{ g.drawLine( 320,?320,?380,?380); g.drawLine(380,?320,?320,?380) a9?=?0;
}
huatu?=?false;
jl .setText("?파란 팀이 체스를 칩니다");
}?else?{
g.setColor(Color.blue);
if?(a1?==?1)?{ g.drawOval(125,?125,?50,?50); ?0; jj[1]?=?2;
}
if?(a2?==?1)?{ g.drawOval(225,?12
5,?50,?50); a2?=?0; jj[2]?=?2;
}
if?(a3?==?1)? { g.drawOval(325,?125,?50,?50); a3?=?0; jj[3]?=?2;
}
if?( a4?==?1)?{ g.drawOval(125,?225,?50,?50) a4?=?0;
} p>
if?(a5?==?1)?{ g.drawOval(225,?225,?50,?50) a5?=?0; p>
}
if?(a6?==?1)?{ g.drawOval(325,?225,?50,?50) a6?=?0; ]?=?2;
}
if?(a7?==?1)?{ g.drawOval(125,?325,?50,?50); ?=?0; jj[7]?=?2;
}
if?(a8?==?1)?{ g.drawOval(225,?325, ?50,?50); a8?=?0; jj[8]?=?2;
}
if?(a9?==?1)?{ g .drawOval(325,?325,?50,?50); a9?=?0; jj[9]?=?2;
}
huatu?=?true ;
jl .setText("?레드 팀이 체스를 칩니다.");
}
dd() } } public?int?mm(int? x,?int?y)?{ if?(x?gt;=?100?amp;amp;?x?lt;?200?amp;amp;?y?gt;=?100?amp;amp;? y?lt;?200)
a?=?1; else?if?(x?gt;=?200?amp;amp;?x?lt;?300?amp;amp;? y?gt;=?100?amp;amp;?y?lt;?200)
a?=?2; else?if?(x?gt;=?300?amp;amp; ?x?lt;?400?amp;amp;?y?gt;=?100?amp;amp;?y?lt;?200)
a?=?3;if? (x?gt;=?100?amp;amp;?x?lt;?200?amp;amp;?y?gt;=?200?amp;amp;?y?lt;?300)
a?=?4; else?if?(x?gt;=?200?amp;amp;?x?lt;?300?amp;amp;?y?gt;=?200?amp;amp ;?y?lt;?300)
a?=?5; else?if?(x?gt;=?300?amp;amp;?x?lt;?400?amp;amp ;?y?gt;=?200?amp;amp;?y?lt;?300)
a?=?6; else?if?(x?gt;=?100?amp; amp;?x?lt;?200?amp;amp;?y?gt;=?300?amp;amp;?y?lt;?400)
a?=?7; if?(x?gt;=?200?amp;amp;?x?lt;?300?
amp;amp;?y?gt;=?300?amp;amp;?y?lt;?400)
a?=?8;if?(x?gt;=?300 ?amp;amp;?x?lt;?400?amp;amp;?y?gt;=?300?amp;amp;?y?lt;?400)
a?=?9 ; else
a?=?0; return?a; } public?void?dd()?{ if?(jj[1]?==?1?amp;amp;?jj[2 ]?==?1?amp;amp;?jj[3]?==?1)?{
jl.setForeground(Color.RED);
jl .setText ("?빨간색 쪽이 승리합니다. 라인 1, 2, 3을 연결합니다.");
yin?=?true; } if?(jj[4]?==?1?amp;amp;? jj [5]?==?1?amp;amp;?jj[6]?==?1)?{
jl.setForeground(Color.RED);
jl .setText("?빨간색 쪽이 승리하며 4, 5, 6번 라인을 연결합니다.");
yin?=?true; } if?(jj[7]?==?1?amp; amp; ?jj[8]?==?1?amp;amp;?jj[9]?==?1)?{
jl.setForeground(Color.RED);
jl .setText("?빨간색 쪽이 승리하여 7, 8, 9번 라인을 연결합니다.");
yin?=?true; } if?(jj[1]?==?1 ?amp;?jj[5]?==?1?amp;amp;?jj[9]?==?1)?{
jl.setForeground(Color.RED);
jl .setText("?빨간 쪽이 승리하며 1, 5, 9번 라인을 연결합니다.");
yin?=?true } if?(jj[3]?= =?1 ?amp;amp;?jj[5]?==?1?amp;amp;?jj[7]?==?1)?{
jl.setForeground(Color.RED );
jl .setText("?빨간색 쪽이 승리하여 3, 5, 7행을 연결합니까?");
yin?=?true } if?(jj[ 1]?= =?1?amp;amp;?jj[4]?==?1?amp;amp;?jj[7]?==?1)?{
jl.setForeground (Color.RED );
jl .setText("?빨간색 쪽이 승리하여 1, 4, 7선을 연결합니까?");
yin?=?true } if ?(jj[2 ]?==?1?amp;amp;?jj[5]?==?1?amp;amp;?jj[8]?==?1)?{
jl.setForeground( Color.RED);
jl .setText("?빨간색 쪽이 승리하며 라인 2, 5, 8을 연결합니다");
yin?=?true ; } if?(jj [3]?==?1?amp;amp;?jj[6]?==?1?amp;amp;?jj[9]?==?1)?{
jl.setForeground(Color.RED);
jl .setText("?빨간색 쪽이 승리하여 라인 3, 6을 연결합니다.
9");
yin?=?true; } if?(jj[1]?==?2?amp;amp;?jj[2]?==?2?amp;amp; ?jj[3]?==?2)?{
jl.setForeground(Color.RED);
jl .setText("라인 1과 라인을 연결하여 파란색 팀이 승리합니다. 2 ,3");
yin?=?true; } if?(jj[4]?==?2?amp;amp;?jj[5]?==?2?amp; amp ;?jj[6]?==?2)?{
jl.setForeground(Color.RED);
jl .setText("파란색 팀이 승리합니다, 연결선 4, 5, 6");
yin?=?true; } if?(jj[7]?==?2?amp; ?jj[8]?==?2?amp; amp;?jj[9]?==?2)?{
jl.setForeground(Color.RED);
jl .setText("?파란 팀이 승리합니다. 연결하세요. 7, 8, 9행");
yin?=?true; } if?(jj[1]?==?2?amp;amp;?jj[5]?==? 2? amp;amp;?jj[9]?==?2)?{
jl.setForeground(Color.RED);
jl .setText("?Blue 승리 , 연결선 1, 5, 9");
yin?=?true; } if?(jj[3]?==?2?amp; amp;?jj[5]?== ? 2?amp;amp;?jj[7]?==?2)?{
jl.setForeground(Color.RED);
jl .setText("?Blue square Win, 라인 3, 5, 7 연결");
yin?=?true; } if?(jj[1]?==?2?amp;amp;?jj[4]? = =?2?amp;amp;?jj[7]?==?2)?{
jl.setForeground(Color.RED);
jl.setText(" 파란색 라인 1, 4, 7을 연결하여 파티가 승리합니다.");
yin?=?true; } if?(jj[2]?==?2?amp;amp;?jj[5 ]? ==?2?amp;amp;?jj[8]?==?2)?{
jl.setForeground(Color.RED);
jl .setText (" ?라인 2, 5, 8을 연결하여 파란색 팀이 승리합니다.");
yin?=?true } if?(jj[3]?==?2?amp;amp;? jj[6 ]?==?2?amp;amp;?jj[9]?==?2)?{
jl.setForeground(Color.RED);
jl .setText ("?파란색 팀이 승리하여 라인 3, 6, 9를 연결합니까?");
yin?=?true } if?(s[1]?==?1?amp ;amp;?s[2]?==?1?amp;amp;?s[3]?==?1?amp;amp;?s[4]?==?1?amp;amp;?s [5]? ==?1
amp;amp;?s[6]?==?1?amp;amp;?s[7]?==?1?amp;amp;? s[8] ?==?1?
amp;amp;?s[9]?==?1)?{
jl.setForeground(Color.RED);
jl .setText("?어느 쪽도 승리하지 못했습니다. 게임 종료");
yin?=?true; } System.out.println(jj[2]); } public?static?void?main(String[]?args)?{ 다음 체스 ?s?=?new?play chess() s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) }
}