




免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
陕西国际商贸学院Java程序设计集践 实训报告 二 级 学 院:信息与工程学院专 业 名 称:计算机科学与技术学 生 学 号:132703学 生 姓 名:李哲指 导 教 师:程瑶 二一五年六月 - 2 - / 16前 言电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。Java语言作为一种面向对象的编程语言,具有分布式,可移植,高性能,多线程等特点。如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。 五子棋游戏是使用Java语言开发的一款游戏。这款游戏无论是服务器还是客户端的实现都相对容易。随着计算机技术的发展,游戏已经成为计算机技术中最具潜力的热点领域,随着联众世界、腾讯游戏等游戏平台的拓展,越来越多的人参与到游戏中。特别是其中一些休闲益智类的棋牌游戏,集趣味性、娱乐性、互动性和益智性于一体,拥有大量的用户。因此使用Java开发网络五子棋游戏是一个实用性很强的毕业设计项目。 五子棋游戏的总体功能是要设计出具有精美界面的,具备人工智能的,支持对弈的五子棋游戏。本系统最终的目的是建立一个有具体规则的五子棋平台,使两台不同计算机的使用者通过一定操作的,达到游戏目的,以及单机上的人机对战。 2015年6月23日目录1 实训目的- 2 -2 概述- 2 -3项目需求- 2 -3.1系统实现的目标分析- 3-3.2设计内容- 3-3.3整体流程图- 4 -3.4循环流程图- 4-4设计要求- 5-5实现的功能- 5-5.1整个游戏能实现的功能- 5-5.2测试数据及运行结果- 6 -5.2.1操作界面- 6 -5.2.2测试- 7-7程序功能的评价- 7 -8总结- 8-8.1遇到的问题及解决的方法- 8 -9源程序(部分代码)- 8 -1.目的在java中,图形界面设计与交互体现于窗口之上,是软件开发中程序设计非常重要的一个项目与重要部分。这次实训是对图形用户界面的那一章内容里的知识进行实际操作实际训练与对知识的温习巩固,也涉及到了很前面的java课程的基础知识,也拓展了部分知识点。这次实训也是锻炼编写程序要严格按照Java编程规范进行代码编写的习惯。这次的实践也是对Java中图形用户界面中零散的知识点的整合,在了解各个知识点的同时,并熟练的掌握图形组件的使用,加深对理论教学内容的理解和掌握,使学生能较系统地掌握程序设计及其在开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,并在实践应用方面打下一定的基础。要求学生全面深入理解和熟练掌握的基础下,能够分析和解决类似的问题,具有良好的编程风格。此次实训同时也考查了学生的综合运用能力和逻辑分析能力,还提高了学生自学的能力和独立工作的能力,并培养了严谨的态度和遇到问题努力解决不退缩的精神。是对学生进行设计分析、操作、理解、观察、归纳能力的一个提高。对本课程的学习能力和知识的掌握起到了一个积极的推进作用。2.概述通过Swing组件的应用,事件监听器的使用进行实现,来完成人人对战的功能的一个应用程序,可以任意两个用户的对战棋盘。此系统为智力游戏,适合于各类游戏爱好者。由于其经典性及其游戏的简单性,进行简单的操作后就可以进行游戏。人们在享受娱乐的同时,也会体会到自己的智力也会有所提升。在学习了Java语言之后,经常用它搞一些小程序。这次java实训,正好将学过的Java语言中的各种知识综合起来,用eclipse开发工具编写一个小游戏,既对自己学过的技能进行一次检验,也能系统地将学过的知识复习巩固。3.项目需求本实训中的五子棋具有普通的游戏功能外,还具有显示游戏过程、提示游戏之功能。 (1)单击“五子棋”上的开始按钮可以进入游戏。 (2)单击“五子棋”上的新游戏按钮可以选择放弃本次游戏。 (3)单击“五子棋”上的重新开始按钮可以重新进入新游戏。 (4)单击“五子棋”上的退出按钮可以退出游戏界面。 (5)在一个文本框中显示当前的游戏过程,在一个文本区中显示以往的计算过程。 (6)单击“保存”按钮可以将文本区中的全部游戏过程保存到文件;单击“复制”按钮可以将文本区中选中的文本复制到剪贴板;单击“清除”按钮可以清除文本区中的全部内容。3.1 系统实现的目标分析为了熟悉五子棋规则及技巧,以及研究简单的人工智能,用Java开发五子棋游戏。主要完成人人对战的功能。并且没有网络连接部分编程应用,实现了任意两个对战用户的棋盘功能。3.2设计内容(1)、题目:五子棋游戏。 (2)、具体实现绘制棋盘,横竖线实现,在直线交点处下黑白棋子(实心圆形)。(3)、然后对棋子的设计是,颜色分为黑色和白色,形状为实心圆形。3.3整体流程图开始3.4循环流程图4 设计要求(1)设计面要简洁。 (2)设计功能明确。 (3)熟悉JAVA开发环境,掌握JAVA程序的编译和运行; (4)掌握JAVA基本编程技术和方法; (5)了解异常处理机制。 (6)说明书、流程图要清楚; (7)要求采用模块化程序设计方法,要求上机调试通过和按设计报告格式; (8)设计上交内容:设计报告一份(按格式书写);源程序文件。5 实现的功能根据上面的系统的设计要求,可以将此五子棋游戏分为以下几个模块:初始化模块:建立棋盘数组并清零以备使用;初始化键盘/鼠标等输入输出设备并在屏幕上画出棋盘。玩家落子模块:即用户在指定落子区域单击后,程序会计算该子的坐标,并且将棋盘数组中坐标处记录棋子的颜色,1代表黑色,2代表白色,以表明是哪方下的棋子。5.1整个游戏能实现的功能1、 悔棋2、 认输3、 变棋盘背景4、 放弃一手5、 显示黑子先走6、 显示该哪个棋子走了 5.2测试数据及运行结果5.2.1操作界面开局时双方还未落棋子的运行界面,如下图所示。 5.2.2 测试(1)可以实现胜负的判断,并终止游戏6程序功能的评价本程序主要实现简单的五子棋对战功能,游戏界面简单,操作简易。开局后由系统默认分配先下棋的一方,黑白方先实现五子连珠的一方则取得胜利。本程序由6个基本功能模块构成,各模块的详细分析如下: 1.主函数GameMain本程序的主函数,初始化棋盘。2. BlackWin实现黑方获胜,WhiteWin实现白方获胜。3. Draw 双方平局。4. GameFrame setTitle(五子棋);setSize(400, 420);4. PaintPanel 游戏界面。7 总结7.1遇到的问题及解决的方法问题:设计的游戏没有游戏界面。 解决方法:进行界面设计。去网上查找资料,准备需要的图片文件等;设计图形界面。 如创建键盘 for(int i=0; i16; i+) g2.draw(new Line.Double(startX, startY+20*i, startX+300, startY+20*i); /创建盘面 g2.draw(new Line.Double(startX+20*i, startY, startX+20*i, startY+300); 8 源程序(部分代码)import java.awt.*;import java.awt.event.*;/import java.lang.*;import javax.swing.*;public class chessGame extends JFrame chessBoard b=new chessBoard();public chessGame() setBackground(Color.lightGray);setLayout(new BorderLayout();add(Center,b);Panel panel=new Panel();Button passButton=new Button(放弃一手);Button colorButton=new Button(变棋盘背景);Button failButton=new Button(认输);Button backButton=new Button(悔棋); panel.setLayout(new GridLayout(8, 1,10,10);panel.add(new Label();panel.add(passButton);panel.add(colorButton);panel.add(failButton);panel.add(backButton);add(East,panel);setSize(500,450);setVisible(true);public static void main(String args) new chessGame();class chessBoard extends Canvasint chess=new int1919;int sx=20,sy=20,w=20,cx=50,cy=50,player=1;public chessBoard() this.addMouseMotionListener(new MouseMotionAdapter()public void mouseMoved(MouseEvent e) Graphics g=getGraphics();g.setXORMode(chessBoard.this.getBackground();g.setColor(Color.red);g.fillRect(cx-w/4, cy-w/4, w/2, w/2);cx=sx+(int)(e.getX()/w)*w;cy=sy+(int)(e.getY()/w)*w;g.fillRect(cx-w/4, cy-w/4, w/2, w/2););this.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) Graphics g=getGraphics(); if (chess(cx-sx)/w(cy-sy)/w=0) if (player=1) g.setColor(Color.black);chess(cx-sx)/w(cy-sy)/w=1;else g.setColor(Color.white);chess(cx-sx)/w(cy-sy)/w=2;g.fillOval(cx-w/2+1,cy-w/2+1,w-2,w-2);player=(player+1)%2;g.setXORMode(chessBoard.this.getBackground();g.setColor(Color.red);g.fillRect(cx-w/2, cy-w/4, w/2, w/2);)public void paint(Graphics g) for (int k = 0; k 19; k+) g.drawLine(sx, sy+k*w, sx+w*18, sy+k*w);for (int k = 0; k 19; k+) g.drawLine(sx+k*w, sy, sx+k*w, sy+w*18);for (int i = 0; i chess.length; i+)for (int j = 0; j chess0.length; j+) if (chessij=1) g.setColor(Col
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年济宁市兖州区事业单位公开招聘工作人员(教育类)(9人)考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年家庭教育指导服务市场潜力与供给策略深度解析报告
- 2025年文化创意产品数字化展示技术应用前景展望报告
- 2025年甘肃省定西市临洮二中楼宇管理人员招聘模拟试卷(含答案详解)
- 好老公保证书
- 浙江国企招聘2025湖州莫干山国有资本控股集团有限公司招聘7人笔试参考题库附带答案详解
- 第4课《灯笼》任务式教学设计 统编版语文八年级下册
- 2025年西咸新区秦汉新城就业见习招聘(50人)笔试参考题库附带答案详解
- 2025年安庆港航中拓供应链有限公司公开招聘1名笔试历年参考题库附带答案详解
- 2025年滁州南谯城市投资控股集团有限公司招聘10人考前自测高频考点模拟试题及答案详解(典优)
- Ice-O-Matic CIM登峰系列制冰机培训手册
- 《穴位埋线疗法》课件
- 【大型集装箱船舶港口断缆事故预防应急处理及案例探析7500字(论文)】
- 发展汉语-初级读写-第一课-你好
- 律师事务所人事管理制度
- 高中英语完形填空高频词汇300个
- 2023-2025年世纪公园综合养护项目招标文件
- 脑梗塞并出血护理查房
- 男朋友男德守则100条
- 医院感染科室院感管理委员会会议记录
- 鲁班锁制作技术
评论
0/150
提交评论