初学java--五子棋
?? 其实五子棋呢主要包括三部分:五子棋棋盘和下棋子等关于Swing界面的应用;然后就是计算输赢的算法;最后就是人机对战的人工智能。刚刚开始做的时候是老老实实的画的棋盘,通过后来的学习知道了其实棋盘是可以找合适的棋盘图片粘贴的,目前还没找到想要的。。。。。。画棋盘就是一个循环画线的过程:
?然而这时的五子棋还有很多不完善,比如:重绘等等,所以我们在下棋子的时候一定要用一个东西来保存当前棋子的信息,这个东西可以是二维数组,也可以是自定义队列,有了保存棋子的东西,那么重绘也就很简单了。如果我们想保存某一局棋局的时候,就需要用到文件保存了,吧当前棋局的所有信息存入一个文件中,读取的按照信息进行重绘:
open.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String command=e.getActionCommand();if(command.equals("打开文件")){String s = "";//读取文件文件名String fielname="src\\cn\\tan\\lesson6\\chess";try {//新建输入流对象FileReader fr=new FileReader(fielname);BufferedReader br=new BufferedReader(fr);int [][] set=new int[12][12];for(int i=0;i<set.length;i++){ s=br.readLine(); String value[]=s.split("\t");// paint(g); for(int j=0;j<set.length;j++){//得到第i行j列的元素值 int m=Integer.parseInt(value[j]); data[i][j]=m; if(m==1){//设置颜色g.setColor(java.awt.Color.WHITE);//画棋子URL url=this.getClass().getResource("w.png");//根据url创建图片对象ImageIcon imagew=new ImageIcon(url);g.drawImage(imagew.getImage(),(Config.X + j * Config.SIZE) - Config.CHESS/ 2, (Config.Y + i * Config.SIZE)- Config.CHESS / 2, Config.CHESS, Config.CHESS,back);} if(m==2){//设置颜色//g.setColor(java.awt.Color.BLACK);//画棋子URL url=this.getClass().getResource("b.png");//根据url创建图片对象ImageIcon imageb=new ImageIcon(url);g.drawImage(imageb.getImage(),(Config.X + j * Config.SIZE) - Config.CHESS/ 2, (Config.Y + i * Config.SIZE)- Config.CHESS / 2, Config.CHESS, Config.CHESS,back);} } }fr.close();br.close();}catch (FileNotFoundException e1) {e1.printStackTrace();} catch (IOException e1) {e1.printStackTrace();}}}});?当然还有其他的比如重新开始、悔棋等功能就不再一一列举代码咯......至于人机对战仍在思索ing
?