以前写过一个java的井字棋 ,
创新互联是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:网站设计制作、成都网站设计、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。
其中的重点是要判断每走一步后,是否有比赛的结果(输,赢,平)
可以使用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判断, 比如人现在的情况是什么样的,有几个棋子连在一起了,电脑自己的情况是怎么样的)
我说下我的想法:
看坐标: 横坐标一致
或纵坐标一致
还有就是/.\两种情况下 固定的位置你事先固定好
当三个点都有了棋子就一直线
给你个我以前写的井字棋,不过是使用JPanel自己画的,你可以参考一下,判断算法什么的是一样的。
正好在学Java,用一维数组编的
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
int[] numbers=new int[100];
int mark=0;
Scanner in=new Scanner(System.in);
int digit=in.nextInt();
while(digit!=0)
{
int n=in.nextInt();
numbers[digit]=n;
digit=in.nextInt();
}
if(mark==0)
{
mark=1;
numbers[0]=in.nextInt();
digit=in.nextInt();
while(digit!=0)
{
int n=in.nextInt();
numbers[digit]=n+numbers[digit];
digit=in.nextInt();
}
numbers[0]=numbers[0]+in.nextInt();
if(mark==1)
{
for(int i=99;i1;--i)
{
if(numbers[i]!=0)
{
System.out.print(numbers[i]+"x"+i+"+");
}
}
System.out.print(numbers[1]+"x"+"+"+numbers[0]);
}
}
}
}
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();
}
}