13格的五子棋代码.doc_第1页
13格的五子棋代码.doc_第2页
13格的五子棋代码.doc_第3页
13格的五子棋代码.doc_第4页
13格的五子棋代码.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

package 作业;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;import javax.swing.JFrame;import javax.swing.JLabel;public class wuziqi extends JFrame int x = 0, y = 0; /初始化坐标的两个参数 /初始化棋盘九个落棋位置int chequer;chequer=new int1313;for(int i=0;i13;i+)for(int j=0;j13;j+) chequerij=0;int location = 0; /初始化坐标位置boolean start = true, redplay = true, success = false; /初始化重新开始,下棋,胜利 /初始化棋盘九个落棋位置int s = new int155, jj = new int155; /初始化棋局位置,棋子信息JButton jbutton1, jbutton2; /定义重新开始红队先下,重新开始蓝队先下两个按钮JLabel jlabel; /定义标签public wuziqi() Container c = getContentPane(); /给容器赋值 c.setLayout(new FlowLayout(); jbutton1 = new JButton(重新开始红队先下); c.add(jbutton1); jbutton2 = new JButton(重新开始蓝队先下); c.add(jbutton2); jlabel = new JLabel(); c.add(jlabel, BorderLayout.SOUTH); /增加鼠标监听器 addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent event) if (event.isAltDown() repaint(); /获得鼠标点击的坐标 x = event.getPoint().x; y = event.getPoint().y; System.out.println(坐标是:+x+,+y+; ); int location = location(x, y); /用a保存坐标的信息 System.out.println(location=+location); /一方胜利或平局就重新开始 if (success) jlabel.setForeground(Color.RED); jlabel .setText( +游戏已结束,请重新开始 + ); /棋局还没结束,继续下棋 else /如果先前一位置上已有一棋子,在此位置上再有一棋子就提醒另选位置重新下棋 if (slocation = 1) jlabel.setForeground(Color.RED); jlabel.setText( + 此位置有棋子,请另选位置重新下棋 + ); /如果此位置是第一次有棋,则改变棋盘相应的信息 if(slocation=0) start = false; System.out.println(slocation=s+location+=+slocation); for(int i=1;i13;i+) for(int j=1;j13;j+) if(location=(j-1)*12+i) chequerji=1; System.out.println(j=+j+;i=+i+;chequerji=+chequer+j+i+=+chequerji); jlabel.setText(); repaint(); /使刚下的棋子在棋盘上刻画出来 slocation = 1; System.out.println(slocation=s+location+=+slocation); ); /给按钮1添加监听器,当点击按钮1则红队先下 jbutton1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) for (int i = 1; i s.length; i+) si = 0; jji = 0; /红棋结果为1,蓝棋结果为2 System.out.println(s.length=+s.length); start = true; repaint(); /重画棋盘 success = false; redplay = true; jlabel.setForeground(Color.black); jlabel .setText( + 红队先下 ); ); / 给按钮2添加监听器,当点击按钮2则红队先下 jbutton2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) for (int i = 1; i s.length; i+) si = 0; jji = 0; System.out.println(s.length=+s.length); start = true; repaint(); /重画棋盘 success = false; redplay = false; jlabel.setForeground(Color.black); jlabel .setText( + 蓝队先下 ); ); setSize(800, 800); setVisible(true); public void paint(Graphics g) / 划棋盘 if (start) super.paint(g); int x = 100, y = 100, c = 600, k = 600; for (int i = 0; i 600; i += 50) g.drawRect(x, y + i, c, k - i); for (int i = 0; i 600; i += 50) g.drawRect(x + i, y, c - i, k); /画棋子 if(!start) jlabel.setForeground(Color.black); if (redplay) g.setColor(Color.red); /出现错误 for(int i=1;i13;i+) for(int j=1;j13;j+) if(chequerji=1) g.drawLine(100+(i-1)*50+10,100+(j-1)*50+10, 100+(i-1)*50+40, 100+(j-1)*50+40) ; g.drawLine(100+(i-1)*50+40,100+(j-1)*50+10, 100+(i-1)*50+10, 100+(j-1)*50+40) ; chequerji=0; jj(j-1)*12+i=1; System.out.println(j=+j+;i=+i+;(j-1)*12+i+(j-1)*12+i); System.out.println(jj(j-1)*12+i=jj+(j-1)*12+i)+=+jj(j-1)*12+i); redplay = false; jlabel .setText( + 蓝队下棋 ); /正确 if(!redplay)System.out.println(!redplay); if(!redplay) g.setColor(Color.blue); for(int i=1;i13;i+) for(int j=1;j13;j+) if(chequerji=1) g.drawOval(100+(i-1)*50+12,100+(j-1)*50+12, 25, 25) ; chequerji=0; jj(j-1)*12+i=2; System.out.println(j=+j+;i=+i+;(j-1)*12+i+(j-1)*12+i); System.out.println(jj(j-1)*12+i=jj+(j-1)*12+i)+=+jj(j-1)*12+i); redplay = true; jlabel .setText( + 红队下棋 ); result(); /调用result(),判断棋局的最终结果 public void result()int temp=new int1313;for(int i=1;i13;i+)for(int j=1;j13;j+)tempji=jj(j-1)*12+i; for(int i=1;i9;i+)for(int j=1;j13;j+) if(tempji=2&tempji+1=2&tempji+2=2&tempji+3=2&tempji+4=2) jlabel.setForeground(Color.RED); jlabel.setText( + 蓝方获胜,连接线+j+_+i+ ,+j+_+(i+1)+, +j+_+(i+2)+, +j+_+(i+3)+, +j+_+(i+4) + ); success = true; if(tempji=1&tempji+1=1&tempji+2=1&tempji+3=1&tempji+4=1) jlabel.setForeground(Color.RED); jlabel.setText( + 红方获胜,连接线+j+_+i+ ,+j+_+(i+1)+, +j+_+(i+2)+, +j+_+(i+3)+, +j+_+(i+4) + ); success = true; for(int i=1;i13;i+) for(int j=1;j9;j+) if(tempji=2&tempj+1i=2&tempj+2i=2&tempj+3i=2&tempj+4i=2) jlabel.setForeground(Color.RED); jlabel.setText( + 蓝方获胜,连接线+j+_+i+, +(j+1)+_+i+,+(j+2)+_+i+ ,+(j+3)+_+i+ ,+(j+4)+_+i + ); success = true; if(tempji=1&tempj+1i=1&tempj+2i=1&tempj+3i=1&tempj+4i=1) jlabel.setForeground(Color.RED); jlabel.setText( + 红方获胜,连接线+j+_+i+, +(j+1)+_+i+, +(j+2)+_+i+, +(j+3)+_+i+ ,+(j+4)+_+i + ); success = true; for(int i=1;i9;i+) for(int j=1;j9;j+) if(tempji=2&tempj+1i+1=2&tempj+2i+2=2&tempj+3i+3=2&tempj+4i+4=2) jlabel.setForeground(Color.RED); jlabel.setText( + 蓝方获胜,连接线+j+_+i+, +(j+1)+_+i+1+, +(j+2)+_+i+2+, +(j+3)+_+(i+3)+, +(j+4)+_+(i+4) + ); success = true; if(tempji=1&tempj+1i+1=1&tempj+2i+2=1&tempj+3i+3=1&tempj+4i+4=1) jlabel.setForeground(Color.RED); jlabel.setText( + 红方获胜,连接线+j+_+i+,+(j+1)+_+(i+1)+ ,+(j+2)+_+(i+2)+, +(j+3)+_+(i+3)+, +(j+4)+_+(i+4) + ); success = true; for(int i=5;i13;i+) for(int j=1;j9;j+) if(tempji=2&tempj+1i-1=2&tempj+2i-2=2&tempj+3i-3=2&tempj+4i-4=2) jlabel.setForeground(Color.RED); jlabel.setText( + 蓝方获胜,连接线+j+_+i+ ,+(j+1)+_+(i-1)+ ,+(j+2)+_+(i-2)+ ,+j+3+_+(i-3)+, +(j+4)+_+(i-4) + ); success = true; if(tempji=1&tempj+1i-1=1&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论