java五子棋小游戏.doc_第1页
java五子棋小游戏.doc_第2页
java五子棋小游戏.doc_第3页
java五子棋小游戏.doc_第4页
java五子棋小游戏.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

五子棋小游戏1.功能模块图开始游戏执棋子颜色五子棋游戏黑子先行判断胜负游戏结束图1.功能模块图2.游戏说明(1)黑棋先行,白棋随后。从第一个棋子开始相互顺序落子。(2)通过坐标索引算出最先在棋盘的横向、竖向、斜向形成连续的相同色五棋子的一方为胜利。(3)设定游戏界面大小。(4)在游戏过程中或下完时可选择开局重新开始。(5)赢家对话框提示。(6)游戏实现了基本的单机功能但为实现人机对战和人人对战。3.游戏界面(1)五子棋游戏的主界面,如图2所示。图2 程序主界面(2)五子棋游戏的结束界面,如图3所示。图3 游戏结束界面(3)游戏游戏栏中的各个选项,如图4所示。图4 Game栏中的选项(4)视图设置栏中的各个选项,如图5所示。图5 Configure栏中的各个选项(5)Help帮助栏中的选项,如图6所示。图6 Help栏中的选项(6)点击Help栏中的About选项弹出的界面,如图7所示。图7 About选项弹出时的界面4.设计任务与目的用java语言编程并检验一个学期以来学习java语言的成果,通过编写一个简单的五子棋游戏实践,检验在学习java语言的过程中的特点及不足,进行集资料、查阅文献、方案制定等实践,促进对所学知识应用能力的提高,灵活运用Java使用方法和编程语法,更好的熟练掌握java语言的特点,并及时反省和提高自己的知识和技术。 研究目标:该五子棋游戏应主要包括下述方面: 1.初始化界面时棋盘的规格; 2.响应鼠标点击并在相应位置画出棋子; 3.有一定的智能(可以判断胜负); 4.利用java语言中的panel放置棋盘显示棋子(注:其内包含鼠标响应)。 5.参考文献1耿祥义.JAVA大学实用教程北京:电子工业出版社.2005.3:85-1132朱战立,沈伟Java程序设计实用指南北京:电子工业出版社,2005.1:48-1353 唐大仕.Java程序设计M. 北京:北方交通大学出版社:2007.05:56-92 4叶核亚. JAVA2程序设计实用教程M北京:电子工业出版社;2008.4:64-985邢素萍. JAVA办公自动化项目方案精解M.北京:航空工业出版社, 2006.9:35-1206.方法见表方法名功能备注Draw()方法在Graphics类中,绘制一些具体的东西paint()方法重绘图形setColor()设置颜色repaint()一个具有刷新页面效果consume()销毁实例的方法Show()将所建窗口显示出来 show()方法 将所建窗口显示出来 WindowEvent()方法 用来处理点击窗体右上角关闭按钮的事件setSize ()方法 设定固定大小4.设计任务与目的通过这次五子棋的课程设计,进一步加深对JAVA基础理论的理解,扩大专业知识面,对收集资料、查阅文献、方案制定等实践方面得到了很好的锻练,促进对所学知识应用能力的提高。同时复习Java使用方法和编程语法.5.参考文献1耿祥义.JAVA大学实用教程北京:电子工业出版社.2005.3:85-1132朱战立,沈伟Java程序设计实用指南北京:电子工业出版社,2005.1:48-1353 唐大仕.Java程序设计M. 北京:北方交通大学出版社:2007.05:56-92 4叶核亚. JAVA2程序设计实用教程M北京:电子工业出版社;2008.4:64-985邢素萍. JAVA办公自动化项目方案精解M.北京:航空工业出版社, 2006.9:35-120/*类MainPanel主要完成如下功能:*1、构建一个面板,在该面板上画上棋盘;*2、处理在该棋盘上的鼠标事件(如鼠标左键点击、鼠标右键点击、鼠标拖动等)*/class MainPanel extends JPanel /这边的extend的意思是继承的意思 ,MainPanel类继承JPanel类implements MouseListener,MouseMotionListenerprivate int width,height;/棋盘的宽度和高度 私有类不可被继承private ChessModel cm;/根据棋盘模式设定面板的大小MainPanel(ChessModel mm)/有好几个模式,设置每个模式棋盘的大小 cm=mm; width=cm.getWidth(); height=cm.getHeight(); addMouseListener(this);/ /根据棋盘模式设定棋盘的宽度和高度public void setModel(ChessModel mm) cm = mm; width = cm.getWidth(); height = cm.getHeight();/根据坐标计算出棋盘方格棋子的信息(如白子还是黑子),/然后调用draw方法在棋盘上画出相应的棋子(根据坐标)public void paintComponent(Graphics g) super.paintComponent(g); for(int j = 0; j = height; j+) for(int i = 0; i = width; i+) int v = cm.getarrMapShow()ij; draw(g, i, j, v);/draw方法是在Graphics类中的,draw方法就是绘制一些具体的东西 /根据提供的棋子信息(颜色、坐标)画棋子public void draw(Graphics g, int i, int j, int v) int x = 20 * i+20; int y = 20 * j+20; /画棋盘 if(i!=width & j!=height) g.setColor(Color.white); g.drawRect(x,y,20,20); /利用IF语句根据判断是否为1来画黑色棋子 if(v = 1 ) g.setColor(Color.gray);/初始的都是灰色 g.drawOval(x-8,y-8,16,16); g.setColor(Color.black);/ setColor是设置颜色方法,后面再设置为黑色 g.fillOval(x-8,y-8,16,16); /等于2则画白色棋子 if(v = 2 ) g.setColor(Color.gray); g.drawOval(x-8,y-8,16,16); g.setColor(Color.white); g.fillOval(x-8,y-8,16,16); if(v =3) g.setColor(Color.cyan); g.drawOval(x-8,y-8,16,16); /响应鼠标的点击事件,根据鼠标的点击来下棋,/根据下棋判断胜负(根据坐标一一对应)public void mousePressed(MouseEvent evt)/根据鼠标点击的(坐标)来确定下棋的位置 int x = (evt.getX()-10) / 20; int y = (evt.getY()-10) / 20; System.out.println(x+ +y); if (evt.getModifiers()=MouseEvent.BUTTON1_MASK) cm.play(x,y); System.out.println(cm.getisOdd()+ +cm.getarrMapShow()xy); repaint(); if(cm.judgeSuccess(x,y,cm.getisOdd()/用了条件语句来判断胜负 cm.showSuccess(this);/如果有五个棋子相连,指针就指向.showSuccess这个函数来显示胜利 evt.consume();/销毁实例的方法 ChessFrame.iscomputer=false; /利用两个IF语句来判断是否为人机对弈 if(ChessFrame.iscomputer&!cm.getisExist() puterDo(cm.getWidth(),cm.getHeight(); repaint(); if(cm.judgeSuccess(cm.getX(),cm.getY(),cm.getisOdd() cm.showDefeat(this); evt.consume(); /以下是调用使用鼠标的函数public void mouseClicked(MouseEvent evt)/调用鼠标点击这个函数public void mouseReleased(MouseEvent evt)/调用鼠标释放这个函数public void mouseEntered(MouseEvent mouseevt)/调用鼠标进入这个函数public void mouseExited(MouseEvent mouseevent)/调用鼠标退出这个函数public void mouseDragged(MouseEvent evt)/调用鼠标拖动这个函数 /响应鼠标的拖动事件public void mouseMoved(MouseEvent moveevt) int x = (moveevt.getX()-10) / 20; int y = (moveevt.getY()-10) / 20; cm.readyplay(x,y); repaint()

温馨提示

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

评论

0/150

提交评论