java五子棋小程序

上传人:泽*** 文档编号:67439749 上传时间:2022-03-31 格式:DOC 页数:18 大小:263KB
返回 下载 相关 举报
java五子棋小程序_第1页
第1页 / 共18页
java五子棋小程序_第2页
第2页 / 共18页
java五子棋小程序_第3页
第3页 / 共18页
点击查看更多>>
资源描述
文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.Java 五子棋小程序简介: Java 五子棋小程序,送给Java 初学者学习提高兴趣与学习所用,希望能给大家带来一些帮助。此程序用 Java 语言编写,采用swing 技术开发界面,采用触发模式进行键盘事件监听, 原本设计与台式机全键盘使用,所以白棋选手落子采用数字键盘0 键,经过本人改进后,也可使用/ 键进行落子。如出现运行后无图案现象,请双击标题栏最大化后方可出现图案,然后再还原。最后感谢大家支持!1.程序运行效果1文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.2.Myeclipse 根目录3.所有应用图片1)black.png2)white.png3) space.gif4)num0.gif5)red.png6) mbi_user.gif7)mbi_D.gif8) mbi_L.gif9) mbi_R.gif10)mbi_U.gif11) qipan.jpg2文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.4.所有类1)运行类package;publicclassRunGame /* param args*/publicstaticvoidmain(String args) new Game(); 程序运行 );2)主程序类package ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;3文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.import ;public class Game extends JFrame implements KeyListener, ActionListener private JPanel mainPanel = null;private JLabel baizi = null;private JLabel heizi = null;private MyLabel biankuang = null;private Position pos = null;private JLabel user = null;private JPanel rightPanel = null;private JLabel hei, heiU, heiD, heiL, heiR, heiC;private JLabel bai, baiU, baiD, baiL, baiR, baiC;private JLabel timeL, time;/ 显示时间private Timer timer;private int mnt = 0, scd = 0;/ 分、秒private JMenuBar menuBar;private JMenu menuE, menuH;private JMenuItem menuItemCZ;/* 初始化主视窗*/private void InitLabel() Container con = this.getContentPane();con.setLayout(null);this.mainPanel = new MainPanel();, 0, 609, 608);con.add(this.mainPanel); this.rightPanel = new JPanel();, 0, 180, 608);con.add(this.rightPanel);this.user = new JLabel(new ImageIcon(./img/mbi_user.gif);4文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持., 25, 40, 40);/* 初始化所有点* 给每个点上都放置一个黑子、一个白子,设置棋子为不可见*/this.pos = new Position1313;this.heizi = new JLabel1313;this.baizi = new JLabel1313;for (int i = 0; i 13; i+) for (int j = 0; j = 60) scd = 0;mnt+;String str = ;if(mnt 10) str = 0 + mnt + :;elsestr = mnt + :;7文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.if(scd 10) str = str + 0 + scd;elsestr = str +scd;time.setText(str);this.timer = new Timer(1000, keepTime);/ 菜单初始化private void initMenu() this.menuBar = new JMenuBar(); this.menuE = new JMenu( 菜单 (E); this.menuH = new JMenu( 帮助 (H);this.menuItemCZ = new JMenuItem( 重置 );, InputEvent.CTRL_MASK);setJMenuBar(this.menuBar);/* 当从键盘得到响应时改变边框位置*/private void setBiankuang() +36*,64+36*;/* 重新初始化,隐藏所有棋子,所有位置状态清零,边框回到原来位置*/private void initAll() this.mnt = 0;this.scd = 0;8文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.for (int i = 0; i 13; i+) for (int j = 0; j 13; j+) posij.setLabel_Status(0);this.heiziij.setVisible(false);this.baiziij.setVisible(false);, 280, 45, 45); ; / 边框初始化, 25);/ 重新开始计时/* 胜利显示*/private void showOver() ;if( = 1) JOptionPane.showMessageDialog(this, 黑方获胜! ); else if( = 2) JOptionPane.showMessageDialog(this, 白方获胜! );int flag = JOptionPane.showConfirmDialog(this, 再 来 一 局 吧 ! , 消 息 , JOptionPane.YES_NO_OPTION);if(flag = JOptionPane.YES_OPTION) this.initAll();else this.dispose();/*9文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.* 判断游戏是否结束* param x当前落子x 坐标* param y当前落子y 坐标*/private void gameOver(int x, int y) int staNum = 0;/* 向右下方检查是否形成五连子*/for (int i = x - 4, j = y - 4; i = 0 & i = 0 & j = 12) if(this.posij.getLabel_Status() =staNum+; staNum = + staNum);if(staNum = 5) this.showOver();/;/if(this.posij.getLabel_Status() = 1) /JOptionPane.showMessageDialog(this, 黑方获胜! );/ 黑子获胜!);/if(this.posij.getLabel_Status() = 2) /JOptionPane.showMessageDialog(this, 白方获胜! );/ 白子获胜!);/ else staNum = 0;/*向右方检查是否形成五连子*/for (int i = x - 4, j = y ; i = 0 & i = 0 & j = 12) if(this.posij.getLabel_Status() =staNum+; staNum = + staNum);if(staNum = 5) this.showOver();10文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持./;/if(this.posij.getLabel_Status() = 1) /JOptionPane.showMessageDialog(this, 黑方获胜! );/ 黑子获胜!);/if(this.posij.getLabel_Status() = 2) /JOptionPane.showMessageDialog(this, 白方获胜! );/ 白子获胜!);/ else staNum = 0;/*向右上方检查是否形成五连子*/for (int i = x - 4, j = y + 4; i = 0 & i = 0 & j = 12) if(this.posij.getLabel_Status() =staNum+; staNum = + staNum);if(staNum = 5) this.showOver();/;/if(this.posij.getLabel_Status() = 1) /JOptionPane.showMessageDialog(this, 黑方获胜! );/ 黑子获胜!);/if(this.posij.getLabel_Status() = 2) /JOptionPane.showMessageDialog(this, 白方获胜! );/ 白子获胜!);/ else staNum = 0;/*11文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.*向下方检查是否形成五连子*/for (int i = x, j = y - 4 ; j = 0 & i = 0 & j 0) ;this.setBiankuang();break;case KeyEvent.VK_S:if( 0) ;this.setBiankuang();break;case KeyEvent.VK_D:if( 0) ;this.setBiankuang();break;case KeyEvent.VK_DOWN:if( 0) ;this.setBiankuang();break;case KeyEvent.VK_RIGHT:if( 12) ;this.setBiankuang();break;case KeyEvent.VK_NUMPAD0:if(this.pos = 0) this.baizi;this.repaint();this.pos;this.gameOver(, ;, 25);break;case KeyEvent.VK_SLASH:if(this.pos = 0) this.baizi;this.repaint();this.pos;this.gameOver(, ;, 25);break;14文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.default:break;public void keyReleased(KeyEvent e) / TODO Auto-generated method stubpublic void keyTyped(KeyEvent e) / TODO Auto-generated method stubpublic void actionPerformed(ActionEvent e) if(e.getSource() = menuItemCZ) this.initAll();3)JPanel 封装类package;import;import;import;import;publicclassMainPanelextendsJPanel privateImageIconwelcomImageIcon=null;publicMainPanel()this. welcomImageIcon=new ImageIcon(./img/qipan.jpg);15文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.publicvoidpaintComponent(Graphics g) g.drawImage(,0,0,this.getWidth(),this.getHeight(),this);4)JLabel 封装了package ;import ;import ;public class MyLabel extends JLabel private int xx;private int yy;private int Label_Status;public int getLabel_Status() return Label_Status;public void setLabel_Status(int label_Status) Label_Status = label_Status;public int getXX() return xx;public void moveXX(int xx) this.xx = this.xx + xx;public int getYY() return yy;16文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.public void moveYY(int yy) this.yy = this.yy + yy;public MyLabel() this.xx = 6;this.yy = 6;this.Label_Status = 1;this.setIcon(new ImageIcon(./img/red.png);/* 对边框重新初始化*/public void returnMyLabel() this.xx = 6;this.yy = 6;this.Label_Status = 1;5)位置处理类/* 设计一个位置类用来标记每个点的位置*/package;publicclassPositionprivateintx ;privateinty ;privateintLabel_Status;publicPosition() this. x = 0;this. y = 0;this. Label_Status= 0;publicintgetLabel_Status() returnLabel_Status;publicvoidsetLabel_Status(intLabel_Status) this. Label_Status= Label_Status;17文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.publicintgetX() returnx ;publicvoidsetX(intx) this. x = x;publicintgetY() returny ;publicvoidsetY(inty) this. y = y;18
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 各类标准


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!