java五子棋实习报告_第1页
java五子棋实习报告_第2页
java五子棋实习报告_第3页
java五子棋实习报告_第4页
java五子棋实习报告_第5页
已阅读5页,还剩8页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

1、Java 程序设计基础实习报告课程名称Java 程序设计基础实习题目java 五子棋专业班级学号学生姓名指导教师Java 实习报告一、JAVA技术介绍:Java 技术是一门编程语言,也是一个平台,它基于Java 虚拟机技术,借助这个东西建立了跨平台的优势。Java 编程语言与众不同之处在于: Java 程序既是编译型的(转换为一种称为 Java 字节码的中间语言),又是解释型的( JVM对字节码进行解析和运行)。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对JVM 优化过的机器码形式;解释器是JVM 的实现。二、摘要五子棋作为一个棋类竞技运动,在民间十分流行,本课题

2、主要完成了五子棋人机对战和玩家之间联网对战2 个功能。网络连接部分为Socket编程应用,客户端和服务器端的交互用ClassMessage定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑 AI 方案,如递归算法、电脑学习等。算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考

3、作用。三、课题分析与设计1) 键盘上事先设定 8 个按键,分作两组,每组四个,分别代表两个人用来控制棋子的上下左右键。2) 绘制棋盘, 15 条横线, 15 条竖线,在直线交点处下棋子(实心圆形)。3) 黑子先行,黑白交替下子,在棋盘上设定一个与棋盘格大小边长相等的正方形,初始状态,正方形的中心位于期盼的中心点。当一方欲走棋的时候,应用四个按键来控制所要下棋的位置,每按一次按键,正方形都要向相应方向移动一个格,并且让喇叭发出某种声音,将要移出边界时,发出另一种警告声音并不让其移出边界。当按下回车键时,应在正方形所在位置放下一个棋子,然后此组按键不能操作,换另一个人下棋,用另一组按键,规则同前。

4、4) 当任何一方有五个棋子沿着横,竖,斜连在一起时,系统自动判断赢棋,并显示黑方或白方胜利。棋局结束后,任何一方均不能继续操作。四、流程图五、效果图五、详细代码设计/ 导入包importimportimport/ 构造 applet 程序public class 五子棋 extends Applet implements ActionListener,MouseListener Stringstr= 五子棋游戏! ;Dimension currentPos=new Dimension();/ 实例化 像素intzuobiao=newint1915;/ 声明一个 19*15 的棋盘intx=20

5、,y=20;boolean unfirstpaint=false;booleanone=false;/=publicvoidinit()/ 初始化(生存周期第一步)addMouseListener(this);/ 对鼠标添加监听for(inti=0;i=18;i+)/ 使整个棋盘设置为0for(intj=0;j=14;j+)zuobiaoij=0;/=publicvoidpaint(Graphicsg)/ 画图(生存周期第二步)intx0=30,y0=50,dx=30,dy=30,N=18,M=14;/x0,y0初始坐标, dx,dy 每格间距intx1,y1,x2,y2;g.setColor

6、(Color.green);y1=y0;y2=y0+M*dy;for(inti=0;i=N;i+)/ 用绿色画棋盘中纵向的线x1=x0+i*dx;g.drawLine(x1,y1,x1,y2);g.setColor(Color.red);x1=x0;x2=x0+N*dx;/ 设置成红色for(intj=0;j=M;j+)/ 用红色画棋盘中横向的线y1=y0+j*dy;g.drawLine(x1,y1,x2,y1);g.setColor(Color.red);/ 设置成红色g.setFont(newFont(TimesRoman,Font.BOLD,25);/ 设置字体g.drawString(

7、str,120,30);/ 在指定位置 (120,30)写入“五子棋游戏!”g.setColor(Color.red);/ 设置成红色g.fillOval(600,60,20,20)/ 用红色填充椭圆;g.drawString(:甲方,610,80);/ 在椭圆中写入字g.setColor(Color.blue);/ 设置成蓝色g.fillOval(600,100,20,20);/ 用蓝色填充椭圆;g.drawString(:乙方,610,120);/ 在椭圆中写入字if(unfirstpaint)/ 判断是否为第一次画棋子,如果不是第一次,执行for(inti=0;i=18;i+)/画棋子f

8、or(intj=0;j=14;j+)if(currentPos.width=(15+i*30)x=i;if(currentPos.height=(35+j*30)y=j;/=if(x!=20&y!=20)if(zuobiaoxy=0)if(one)zuobiaoxy=1;/ 等于 1 说明是红色棋子elsezuobiaoxy=2;/ 等于 2 说明是蓝色棋子/ 画点图=for(inti=0;i=18;i+)for(intj=0;j=14;j+)if(zuobiaoij=1)/ 如果为1,画红棋子g.setColor(Color.red);g.fillOval(20+i*30,40+j*30,2

9、0,20);if(zuobiaoij=2)/ 如果为2,画蓝棋子g.setColor(Color.blue);g.fillOval(20+i*30,40+j*30,20,20);五、总结体会课程设计是培养学生综合运用所学知识, 发现 , 提出 , 分析和解决实际问题 , 锻炼实践能力的重要环节, 是对学生实际工作能力的具体训练和考察过程 .回顾起课程设计,至今我仍感慨颇多,的确,在这一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过

温馨提示

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

最新文档

评论

0/150

提交评论