五子棋java设计文档.doc_第1页
五子棋java设计文档.doc_第2页
五子棋java设计文档.doc_第3页
五子棋java设计文档.doc_第4页
五子棋java设计文档.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

安阳工学院JAVA课程综合项目报告项目题目:五子棋专业班级:12网工专升本学生姓名:阮营营学生学号:201203060042指导教师姓名:许研2012年12月安阳工学院计算机学院制目 录一、系统目标2二、系统设计思路2三、系统详细设计2四、系统实现9五、系统设计总结12六、参考文献12一、系统目标1、主要是介绍开发五子棋的整个过程,体现流程设计与类设计的基本方法,示范了数组的使用,使用了分支结构与循环结构的流程控制2、通过课程设计把课堂上讲的内容融会贯通,学会设计程序、开发应软件、开发系统软件等各项工作。3、通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。二、系统设计思路1、获取棋盘 设计一个1111围棋棋盘,由两玩家交替进行对战,并可以实现以下功能。五子棋的规则为:2、下棋方法 两人分别执黑白两色棋子。轮流在棋盘上选择一个无子的交叉点落子,无子的交叉点又被称为空点。3、输赢判断 每次下完一颗棋子,就通过程序从横、竖、斜各个方向扫描棋盘,如果在某个方向中,有同种颜色的棋子达到五连子,则此颜色的玩家为赢。如果没有相同颜色的棋子达到五连子,则继续游戏。三、系统详细设计3.1程序流程图3.2创建棋盘类,绘制棋盘的样式main方法创建了ChessFrame类的一个实例对象,并启动屏幕显示显示该实例对象。public static void main(String argc) myframe f = new myframe();构造五子棋的主窗体:class myframe extends Frame implements WindowListener mypanel panel;myframe() setLayout(null);panel = new mypanel();add(panel);panel.setBounds(0, 23, 360, 360);setTitle(单人版五子棋42阮营营);setBounds(200, 200, 360, 383);setVisible(true);addWindowListener(this);初始化棋盘:mypanel() Is_Black_True = true;for (int i = 0; i 11; i+) for (int j = 0; j 11; j+) chessij = 0;规定棋盘的宽度、高度、棋盘的模式:setBounds(0, 0,360 ,360);setVisible(true);窗体响应事件:public void windowDeactivated(WindowEvent e) public void windowActivated(WindowEvent e) public void windowOpened(WindowEvent e) public void windowClosed(WindowEvent e) public void windowIconified(WindowEvent e) public void windowDeiconified(WindowEvent e) 3.3 编写一个功能判断落子的位置及画出相应的黑白棋子定义鼠标响应事件,判断该坐标位置是否可下棋子:public void mousePressed(MouseEvent e) 判断该坐标位置是否可下棋子:void Drawchess(Graphics g) for (int i = 0; i 11; i+) for (int j = 0; j 11; j+) if (chessij = 1) g.setColor(Color.BLACK);g.fillOval(i + 1) * 30 - 8, (j + 1) * 30 - 8, 16, 16);if (chessij = 2) g.setColor(Color.WHITE);g.fillOval(i + 1) * 30 - 8, (j + 1) * 30 - 8, 16, 16);3.4判断输赢void Justisewiner() int black_count = 0;int white_count = 0;int i = 0;for (i = 0; i 11; i+)/ 横向判断for (int j = 0; j 11; j+) if (chessij = 1) black_count+;if (black_count = 5) JOptionPane.showMessageDialog(this, 黑棋胜利);Clear_Chess();return; else black_count = 0;if (chessij = 2) white_count+;if (white_count = 5) JOptionPane.showMessageDialog(this, 白棋胜利);Clear_Chess();return; else white_count = 0;for (i = 0; i 11; i+)/ 竖向判断for (int j = 0; j 11; j+) if (chessji = 1) black_count+;if (black_count = 5) JOptionPane.showMessageDialog(this, 黑棋胜利);Clear_Chess();return; else black_count = 0;if (chessji = 2) white_count+;if (white_count = 5) JOptionPane.showMessageDialog(this, 白棋胜利);Clear_Chess();return; else white_count = 0;for (i = 0; i 7; i+)/ 左向右斜判断for (int j = 0; j 7; j+) for (int k = 0; k 5; k+) if (chessi + kj + k = 1) black_count+;if (black_count = 5) JOptionPane.showMessageDialog(this, 黑棋胜利);Clear_Chess();return; else black_count = 0;if (chessi + kj + k = 2) white_count+;if (white_count = 5) JOptionPane.showMessageDialog(this, 白棋胜利);Clear_Chess();return; else white_count = 0;for (i = 4; i = 0; j-) for (int k = 0; k 5; k+) if (chessi - kj + k = 1) black_count+;if (black_count = 5) JOptionPane.showMessageDialog(this, 黑棋胜利);Clear_Chess();return; else black_count = 0;if (chessi - kj + k = 2) white_count+;if (white_count = 5) JOptionPane.showMessageDialog(this, 白棋胜利);Clear_Chess();return; else white_count = 0;四、系统实现4.1编译运行源程序4.2获取棋盘4.3下棋4.4判断输赢1.黑棋胜2.白棋胜五、系统设计总结这个课设题对我来说有一定的挑战性,因为我自己也不知道自己到底学到了一个什么样的境界。但可以肯定,这个课设题的要求绝对在我的能力范围以上。之所以选择这个题目是想逼着自己去查更多的资料,学到更多的东西。结果也确实是这样的,我在这次课设中学到了不少东西,也理解了许多原来不理解的东西。尽管这个系统做的并不是那么的完善。对于Java中的引用,初始化类等,开始我并不是非常的理解,知道就这么做就能实现相应的功能了,并没有很深刻的去理解它为什么要这么做。但是真正的要用Java去做一个东西不理解它是不行的,而且其间这课设涉及到了Java 中的绝大多数的知识点,如Java图形用户界面设计、Java的异常处理机制、Java中的多线程程序设计、Java输入输出流,要应用这些东西更要求我去好好理解Java的这些规则。但是理解了Java的规则要把这个课设做好也不是那么容易,最难的部分是如何实现各个功能的划分和类的通讯问题。我在这方面就遇到了不少的问题。总结这次课设,我还是收获不少。虽然界面也不是很美观,有点功能间的连接做的也不是特别的好,但是我能认识到自己的不足,并且在跟同学的交流中也学到了一

温馨提示

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

评论

0/150

提交评论