已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- TCNIA 0160-2022 搭配砷物料铜熔池熔炼及烟气收砷技术标准
- GB 50284-2008 飞机库设计防火规范
- 绩效专员考试题及答案
- 河南仰韶酒业招聘试题及答案
- 物业记录管理协议
- 公务员面试纽扣面试题及答案
- 机器人算法工程师招聘题目及答案
- 后端开发校招面试题及答案
- 公务员面试冷门面试题及答案
- 国家融资担保基金秋招真题及答案
- 2025年6月黑吉辽蒙高考地理真题完全解读
- 2025电化学储能电站技术监督规程第2部分:储能系统技术监督
- 社工服务培训课件
- 智能体技术和应用研究报告(2025年)
- CJ/T 120-2016给水涂塑复合钢管
- T/CECS 10214-2022钢面镁质复合风管
- 茂名市电白区浪漫海岸小学-没有一朵花一开始便是一朵花-一年级语文期中家长会【课件】
- 青干班面试试题及答案
- T-CSEE 0394-2023 柔性光伏支架结构设计规程
- 宜兴市入湖河道综合整治工程报告书
- 管道清淤工程施工方案范本
评论
0/150
提交评论