ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:264.07KB ,
资源ID:2932443      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2932443.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机网络实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机网络实验报告.docx

1、计算机网络 实验报告工商学院 计算机网络 实验报告年级 2012级 学号 2012484306 姓名 王向磊 成绩 专业 网络工程 实验地点 B3-216 指导教师 常卓 实验项目 网络五子棋游戏 实验日期 2015年5月5 日 1、实验目的1 1使用Java编写五子棋程序 ,使其能正常运行。 12 掌握编写过程的一些类和类成员的使用,并且了解五子棋制作过 程的一些步骤和了解一些算法。二、实验原理2.1职业连珠规则 2.1.1 黑方先下子,白后下,从天元开始相互顺序落子。 2.1.2 最先在棋盘 横向、竖向、斜向形成连续的相同色五个棋子的一方为胜。 2.1.3 黑棋禁手判负,白棋无禁手。黑棋禁

2、手包括“三 三”(包括“四 三 三”)、“四四”(包括“四 四 三”)、“长连”。即黑棋只能以“四三”取胜。 有关术语解释请见图示说明。 2.1.4 如分不出胜负,则定为平局。对局中拔子、中途退场均判为负。 2.1.5 五连与禁手同时形成,判胜。 2.2比赛中的规定和特例 2.2.1对局开始前,双方猜子,大数减小数,单数交换,偶数不换。 2.2.2白棋第一手(即盘面第二着棋)应在天元为界自己一侧布子,主要以示尊重对方,之后双方可任意行子。 2.2.3 对局中双方应遵守“职业连珠五子棋规则”,如出现争议,应由裁判判定。 2.2.4 对局中掉子(棋子掉落在棋盘上)的一方判负。如遇推子或蹭子,以盘面

3、第一落点为准。用手将棋子扶正不算违规。 2.2.5对局中应礼貌行棋,防止不正常声音、动作影响对方思考。 2.2.6比赛结束后,双方应将各自棋子放回原处。 2.2.7对局中如黑方出现禁手,白方应立即指出禁手点,黑方即负。如白方在黑方出现禁手后,又下一步白子,黑棋禁手则不成立了。 2.2.8比赛对局时间,双方分别为15分钟、1小时、2小时、5小时四个等级标准,超时判负。 2.3特殊规定 职业五子棋虽然对黑棋采取了种种限制,但黑子先行的优势依然很大。因此,在高段位的职业比赛中,又出现了三种特殊的规定。 2.3.1指定打法:是指比赛双方按照约定好的开局进行对弈,由白棋先行。 2.3.2 三手可交换:是

4、指黑棋下盘面第3手棋后,白方在下第四手之前,如感觉黑方棋形不利于己方,可提出交换,即执白棋一方变为执黑棋一方,而黑方不可以不换。 2.3.3五手两打法:是指黑棋在下盘面上关键的第5手棋时,必须下两步棋,让白棋在这两步棋中拿掉一粒棋子,然后再继续对弈。一般说来,白棋肯定拿掉对白方不利的一点,而保留对黑方较为不利的那点让黑方行棋。3、实验要求编写一个五子棋程序。 程序主要实现以下功能:实现五子棋界面,要求人性化界面简洁美观; 2实现黑白色轮流下棋功能,能提示下棋方; 3实现连成五子自动判断功能; 4实现时间设置功能,认输功能;四、实验步骤 头部文件import java.awt.Color;imp

5、ort java.awt.Font; import java.awt.Graphics;import java.awt.Toolkit;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.image.BufferedImage; import java.io.File;import java.io.IOException;import javax.im

6、ageio.ImageIO;import javax.swing.JFrame; import javax.swing.JOptionPane; 第一步:设计界面代码如下:public class FiveChessFrame extends JFrame implements MouseListener, Runnable int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; Buffered

7、Image bgImage = null; int x, y; / 保存棋盘,0表示棋盘该点无棋子,表示黑子,表示白子 int allChess = new int1515; / 保存当前下子是黑子还是白字,true是黑子,false是白子 Boolean isBlack = true; / 标识当前游戏是否结束 Boolean canPlay = true; String message = 黑方先行; / 保存棋谱 int chessX = new int255; int chessY = new int255; int countX, countY; / 保存最大时间 int maxTi

8、me = 0; / 游戏时间设置的信息 String blackMessage = 无限制; String whiteMessage = 无限制; / 保存黑白方所剩余的时间 int blackTime = 0; int whiteTime = 0; / 游戏倒计时线程 Thread timer = new Thread(this); public FiveChessFrame() this.setTitle(五子棋游戏); this.setSize(500, 500); this.setLocation(width - 500) / 2, (height - 500) / 2); this.

9、setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); this.repaint(); this.addMouseListener(this); timer.start(); timer.suspend(); public void paint(Graphics g) try bgImage = ImageIO.read(new File(src/wzq/五子棋棋盘.jpg); catch (IOException e) e.printStackTrace(

10、); / 双缓冲 BufferedImage bi = new BufferedImage(500, 500, BufferedImage.TYPE_INT_RGB); Graphics g2 = bi.createGraphics(); g2.drawImage(bgImage, 43, 60, 375, 375, this); g2.setColor(new Color(0, 169, 158); g2.fill3DRect(43, 60, 375, 375, true); for(int i = 0; i = 15; i+) g2.setColor(Color.WHITE); g2.dr

11、awLine(43, i * 25 + 60, 375 + 43, 60 + i * 25); g2.drawLine(i * 25 + 43, 60, 43 + i * 25, 375 + 60); g2.setFont(new Font(黑体, Font.BOLD, 20); g2.drawString(游戏信息: + message, 50, 50); g2.drawRect(30, 440, 180, 40); g2.drawRect(250, 440, 180, 40); g2.setFont(new Font(宋体, 0, 12); g2.drawString(黑方时间: + bl

12、ackMessage, 40, 465); g2.drawString(白方时间: + whiteMessage, 260, 465); / 重新开始按钮 g2.drawRect(428, 66, 54, 20); g2.drawString(重新开始, 432, 80); / 游戏设置按钮 g2.drawRect(428, 106, 54, 20); g2.drawString(游戏设置, 432, 120); / 游戏说明按钮 g2.drawRect(428, 146, 54, 20); g2.drawString(游戏说明, 432, 160); / 退出游戏按钮 g2.drawRect

13、(428, 186, 54, 20); g2.drawString(退出游戏, 432, 200); / 悔棋 g2.drawRect(428, 246, 54, 20); g2.drawString(悔棋, 442, 260); / 认输 g2.drawRect(428, 286, 54, 20); g2.drawString(认输, 442, 300); for (int i = 0; i 15; i+) for (int j = 0; j 15; j+) / 黑子 if (allChessij = 1) int tempX = i * 25 + 55; int tempY = j * 2

14、5 + 72; g2.setColor(Color.BLACK); g2.fillOval(tempX - 8, tempY - 8, 16, 16); / 白子 if (allChessij = 2) int tempX = i * 25 + 55; int tempY = j * 25 + 72; g2.setColor(Color.WHITE); g2.fillOval(tempX - 8, tempY - 8, 16, 16); g2.setColor(Color.BLACK); g2.drawOval(tempX - 8, tempY - 8, 16, 16); g.drawImage(bi, 0, 0, this); 第二步:增加对mouse的点击和移动的处理,可以用来下。代码如下: Override public void mouseClicked(MouseEvent arg0) / TODO Auto-generated method stub Override public void mouseEntered(MouseEv

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1