十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
以前写过一个java的井字棋 ,
创新互联主要从事网站建设、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务西湖,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
其中的重点是要判断每走一步后,是否有比赛的结果(输,赢,平)
可以使用swing 来作为外观进行显示.
表示棋盘如下
0 1 2
3 4 5
6 7 8
定义一个二维数组,每次走完后,匹配该数组, 如果匹配成功就赢了
int[][] WIN = { { 0, 1, 2 }, { 3, 4, 5 }, { 6, 7, 8 }, { 0, 3, 6 }, { 1, 4, 7 }, { 2, 5, 8 }, { 0, 4, 8 },
{ 2, 4, 6 } };
效果图
当然了,因为井字棋比较简单, 可以写一个比较简单的判断局势,然后自动下棋的AI .
(AI使用了很多的if else判断, 比如人现在的情况是什么样的,有几个棋子连在一起了,电脑自己的情况是怎么样的)
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class NinePannel extends JFrame{
public NinePannel(){
this.setSize(320,340);
this.setLayout(new GridLayout(3,3));
for(int i=0;i9;i++){
this.add(new MyPanel());
}
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
class MyPanel extends JPanel{
int i=-1;
public MyPanel(){
this.setSize(100,100);
this.addMouseListener(new MyListener(this));
}
public void paint(Graphics arg0) {
super.paint(arg0);
arg0.drawRect(0, 0, 100, 100);
if(i!=-1){
if(i%2==0){
arg0.drawOval(0, 0, 100, 100);
}else{
arg0.drawLine(0, 0, 100, 100);
arg0.drawLine(100, 0, 0, 100);
}
}
i++;
}
class MyListener extends MouseAdapter{
MyPanel myPanel;
public MyListener(MyPanel myPanel){
this.myPanel = myPanel;
}
public void mousePressed(MouseEvent arg0) {
myPanel.repaint();
}
}
}
public static void main(String[] args){
new NinePannel();
}
}
我说下我的想法:
看坐标: 横坐标一致
或纵坐标一致
还有就是/.\两种情况下 固定的位置你事先固定好
当三个点都有了棋子就一直线