deckarlc 发表于 2013-1-26 15:49:55

Java初上手,实现一个小小的五子棋

最近开始学习Java,为了初步的熟悉Java,所以编写了一个五子棋的小程序来练手,接下来就先上图了

http://dl.iteye.com/upload/attachment/430531/a4d9a267-5808-3ca7-8a4e-ed651d76dd3c.jpg

http://dl.iteye.com/upload/attachment/430533/21984f88-083f-34e6-8cf5-6135e545f9ed.jpg
 这是工程截图,接下来是程序运行的截图

http://dl.iteye.com/upload/attachment/430535/c010b463-7901-3c8d-946a-c82fdadcbccc.jpg

http://dl.iteye.com/upload/attachment/430537/2de15528-cee9-36db-ab9e-874dacc33d4e.jpg
 
http://dl.iteye.com/upload/attachment/430539/336f0415-fd46-3890-9565-7ebe315ef8e4.jpg
 程序的界面十分简单,棋盘和棋子都是自己画的,现在也只有这个水平了。。。
已经实现了五子棋的基本功能,如可以轮流下子、判断输赢等。但是还
 是有很多缺陷的,但毕竟我还是个初学者,实现多少是多少吧。。。
近期对于界面的话不会做太多改变,现在最大的缺陷是还不能人机对战(这可不是想做就做得好的),这几天和同学一起研究机器人下子的算法可真是想破了头,要考虑的实在太多。。。
希望可以尽快写出可以接受的算法

public class wziUI extends JFrame{private int[][] chesse = new int;public static void main(String[] args){wziUI W = new wziUI();W.showUI();}public void showUI() {this.setTitle("简单五子棋");this.setSize(600, 600);this.setDefaultCloseOperation(3);this.setVisible(true);Graphics g = this.getGraphics();wziListener lis = new wziListener(g,chesse,this);this.addMouseListener(lis);} public class wziListener implements java.awt.event.MouseListener{private Graphics g;private int[][] chesse;private int count = 0;private int jud = 0;private JFrame wzi;public wziListener(Graphics g,int[][] chesse,JFrame wzi){this.g = g;this.chesse = chesse;this.wzi = wzi;}@Overridepublic void mouseReleased(MouseEvent e) {int x = e.getX();int y = e.getY();for(int i = 0;i<Num.H;i++){for(int j = 0;j<Num.L;j++){int x1 = Num.X0+Num.SIZE*j;int y1 = Num.Y0+Num.SIZE*i;if(Math.abs(x-x1)<Num.C_SIZE/3&&Math.abs(y-y1)<Num.C_SIZE/3){drawQZ(x1,y1,i,j);judge(chesse,wzi);return;}}}}public void drawQZ(int x1,int y1,int i,int j){if(count == 0){chesse = Num.BLACK_C;g.setColor(java.awt.Color.BLACK);count++;}else{chesse = Num.WHITE_C;g.setColor(java.awt.Color.WHITE);count--;}g.fillOval(x1-Num.C_SIZE/2, y1-Num.C_SIZE/2, Num.C_SIZE, Num.C_SIZE);}public void judge(int[][] chesse,JFrame wzi){for(int i= 0;i<Num.H;i++){for(int j = 0;j<Num.L-4;j++){if(chesse==Num.BLACK_C&&chesse==Num.BLACK_C&&chesse==Num.BLACK_C&&chesse==Num.BLACK_C&&chesse==Num.BLACK_C){//wzi.dispose();JFrame win = new JFrame("结果判定");win.setSize(150,100);win.setDefaultCloseOperation(3);win.setVisible(true);JLabel la = new JLabel("黑子获胜!");win.add(la);win.setLocation(260, 260);}else if(chesse==Num.WHITE_C&&chesse==Num.WHITE_C&&chesse==Num.WHITE_C&&chesse==Num.WHITE_C&&chesse==Num.WHITE_C){//wzi.dispose();JFrame win = new JFrame("结果判定");win.setSize(150,100);win.setDefaultCloseOperation(3);win.setVisible(true);JLabel la = new JLabel("白子获胜!");win.add(la);win.setLocation(260, 260);}}}
页: [1]
查看完整版本: Java初上手,实现一个小小的五子棋