java课设五子棋悔棋重玩计时.docx

上传人:b****3 文档编号:4143361 上传时间:2022-11-28 格式:DOCX 页数:13 大小:813.41KB
下载 相关 举报
java课设五子棋悔棋重玩计时.docx_第1页
第1页 / 共13页
java课设五子棋悔棋重玩计时.docx_第2页
第2页 / 共13页
java课设五子棋悔棋重玩计时.docx_第3页
第3页 / 共13页
java课设五子棋悔棋重玩计时.docx_第4页
第4页 / 共13页
java课设五子棋悔棋重玩计时.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

java课设五子棋悔棋重玩计时.docx

《java课设五子棋悔棋重玩计时.docx》由会员分享,可在线阅读,更多相关《java课设五子棋悔棋重玩计时.docx(13页珍藏版)》请在冰豆网上搜索。

java课设五子棋悔棋重玩计时.docx

java课设五子棋悔棋重玩计时

 

课程设计报告

 

课程名称:

java课程设计

设计题目:

五子棋课程设计

专业:

信息与计算科学

班级:

小组成员:

指导教师:

 

二零一四年五月

 

课程设计题目(问题)描述

本组成员情况

姓名

学号

承担的任务

成绩

主要负责课程设计和编程

主要负责调试及课程设计报告

一、本组设计的功能描述

设计简单的五子棋java小程序,实现基本的重玩、悔棋、游戏设置、游戏说明、人数、关于退出等功能。

二、系统分析与设计

通过java程序设计课程设计,进一步掌握java程序设计的理论和方法。

培养和锻炼开发小型五子棋系统的能力。

为今后相关系统开发打下良好的基础。

要求了解java系统开发的全过程,理解java程序设计课程相关的概念,掌握java程序设计的开发方法,巩固对java相关方法和概论的理解。

三、系统运行及调试

}packageorg.liky.game.frame;

importjava.awt.Color;

importjava.awt.Font;

importjava.awt.Graphics;

importjava.awt.Toolkit;

importjava.awt.event.MouseEvent;

importjava.awt.event.MouseListener;

importjava.awt.image.BufferedImage;

importjava.io.File;

importjava.io.IOException;

importjavax.imageio.ImageIO;

importjavax.swing.JFrame;

importjavax.swing.JOptionPane;

publicclassFiveChessFrameextendsJFrameimplementsMouseListener,Runnable{

privatestaticfinallongserialVersionUID=1L;

//取得屏幕的宽度

intwidth=Toolkit.getDefaultToolkit().getScreenSize().width;

//取得屏幕的高度

intheight=Toolkit.getDefaultToolkit().getScreenSize().height;

 

//背景图片

BufferedImagebgImage=null;

//保存棋子的坐标

intx=0;

inty=0;

//保存之前下过的全部棋子的坐标

//其中数据内容0:

表示这个点并没有棋子,1:

表示这个点是黑子,2:

表示这个点是白子

int[][]allChess=newint[19][19];

//标识当前应该黑棋还是白棋下下一步

booleanisBlack=true;

//标识当前游戏是否可以继续

booleancanPlay=true;

//保存显示的提示信息

Stringmessage="黑房先行";

//保存最多拥有多少时间】

intmaxTime=0;

//做倒计时的线程类

Threadt=newThread(this);

//保存黑房与白方的剩余时间

intblackTime=0;

intwhiteTime=0;

//保存双方的剩余时间的显示信息

StringblackMessage="无限制";

StringwhiteMessage="无限制";

//privateintx1;

 

//publicFiveChessFrame()throwsHeadlessException{

//@SuppressWarnings("deprecation")

 

@SuppressWarnings("deprecation")

publicFiveChessFrame(){

//设置标题

this.setTitle("我的五子棋");

//设置窗体的大小

this.setSize(500,500);

//设置窗体处出现的位置

//this.setLocation(500/2,500/2);

this.setLocation((width-500)/2,(height-500)/2);

//将窗体设置为不可见

//this.setResizable(false);

//将窗体的关闭方式设置为默认关闭后程序结束

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.addMouseListener(this);

//将窗体显示出来

this.setVisible(true);

t.start();

t.suspend();

//刷新屏幕,防止开始游戏时出现无法显示的情况

//this.repaint();

//StringimagePath="";

try{

//imagePath=System.getProperty("user.dir")+"/bin/image/background.jpg";

StringimagePath="D:

/mywokspace"+File.separator+"psbaaaa.jpg";

bgImage=ImageIO.read(newFile(imagePath.replaceAll("\\\\","/")));

}catch(IOExceptione){

//TDDOAuto-generatedcatchblock

e.printStackTrace();

}

this.repaint();

}

publicvoidpaint(Graphicsg){

//双缓冲技术防止屏幕闪烁

BufferedImagebi=newBufferedImage(500,500,

BufferedImage.TYPE_INT_RGB);

Graphicsg2=bi.createGraphics();

//g2.setColor(Color.BLACK);

g2.setColor(Color.RED);

//绘制背景

g2.drawImage(bgImage,1,20,this);

//输出标题信息

g2.setFont(newFont("黑体",Font.BOLD,20));

g2.drawString("游戏信息:

"+message,130,60);

//输出时间信息

g2.setFont(newFont("宋体",0,14));

g2.drawString("黑方时间:

"+blackMessage,30,470);

g2.drawString("白方时间:

"+whiteMessage,260,470);

g2.drawRect(400,70,70,30);

g2.drawString("重玩",420,90);

 

/*

g2.setColor(BLACK);//setColor(BLACK);

g2.fillRect(400,70,70,30);

g2.setColor(BLACK);

g2.drawString("重玩",420,90);

*/

//buttonbuta=newbutton();

g2.drawRect(400,120,70,30);

g2.drawString("游戏设置",410,140);

 

g2.drawRect(400,270,70,30);

g2.drawString("认输",420,290);

g2.drawRect(400,170,70,30);

g2.drawString("游戏说明",410,190);

g2.drawRect(400,320,70,30);

g2.drawString("关于",420,340);

 

g2.drawRect(400,370,70,30);

g2.drawString("退出",420,390);

//绘制棋盘

for(inti=1;i<19;i++){

g2.drawLine(10,70+20*i,370,70+20*i);

g2.drawLine(10+20*i,70,10+20*i,430);

}

//g2.setFont(newFont("宋体",0,14));

//g2.drawString("游戏信息:

"+message,)

//标注标点

//可能是无用的

g2.fillOval(68,128,4,4);

g2.fillOval(308,128,4,4);

g2.fillOval(308,368,4,4);

g2.fillOval(68,368,4,4);

g2.fillOval(308,248,4,4);

g2.fillOval(188,128,4,4);

g2.fillOval(68,248,4,4);

g2.fillOval(188,366,4,4);

g2.fillOval(188,248,4,4);

 

/*

*绘制棋子x=(x-10)/20*20+10;y=(y-70)/20*20+70;

*黑子g.fillOval(x-7,y-7,14,14);白子g.setColor(Color.WHITE);

*g.fillOval(x-7,y-7,14,14);g.setColor(Color.BLACK);

*g.drawOval(x-7,y-7,14,14);

*/

//绘制全部棋子

for(inti=0;i<19;i++){

for(intj=0;j<19;j++){

if(allChess[i][j]==1){

//黑子

inttempX=i*20+10;

inttempY=j*20+70;

g2.setColor(Color.BLACK);

g2.fillOval(tempX-7,tempY-7,14,14);

//g2.drawOval(tempX-7,tempY-7,14,14);

}

if(allChess[i][j]==2){

//白子

inttempX=i*20+10;

inttempY=j*20+70;

g2.setColor(Color.WHITE);

g2.fillOval(tempX-7,tempY-7,14,14);

//g2.setColor(Color.BLACK);

//g2.drawOval(tempX-7,tempY-7,14,14);

 

}

}

}

g.drawImage(bi,0,0,this);

 

}

//(@Override

publicvoidmouseClicked(MouseEvente){

//TODOAuto-generatedmethodstub

//注释下面一行

//JOptionPane.showMessageDialog(this,this.getX());

//JOptionPane.showMessageDialog(this,this.getY());

//JOptionPane.showMessageDialog(this,"落子");

 

}

@SuppressWarnings("deprecation")

@Override

publicvoidmousePressed(MouseEvente){

//TODOAuto-generatedmethodstub

/*

*System.out.println("X:

"+e.getX());

*System.out.println("Y:

"+e.getY());

*/

if(canPlay==true){

x=e.getX();

y=e.getY();

//JOptionPane.showMessageDialog(this,x+"+++++"+y);

if(x>=10&&x<370&&y>=70&&y<=430){

//判断棋子连接的数量

privateintcheckCount(intxChange,intyChange,intcolor){

intcount=1;

inttempX=xChange;

inttempY=yChange;

while(x+xChange>=0&&x+xChange<=18&&y+yChange>=0

&&y+yChange<=18

&&y+yChange<=18

&&color==allChess[x+xChange][y+yChange]){

count++;

if(xChange!

=0)

xChange++;

if(yChange!

=0){

if(yChange!

=0)

yChange++;

else{

yChange--;

}

}

}

xChange=tempX;

yChange=tempY;

while(x-xChange>=0&&x-xChange<=18&&y-yChange>=0

&&y-yChange<=18

&&color==allChess[x-xChange][y-yChange]){

count++;

if(xChange!

=0)

xChange++;

if(yChange!

=0){

if(yChange>0)

yChange++;

else{

yChange--;

}

}

}

returncount;

}

//没有下两个只有run

@Override

publicvoidmouseEntered(MouseEvente){

//TODOAuto-generatedmethodstub

//e.getX();

//e.getY();

//JOptionPane.showMessageDialog,e.getX());

}

@Override

publicvoidmouseExited(MouseEvente){

//TODOAuto-generatedmethodstub

}

@Override

publicvoidrun(){

//TODOAuto-generatedmethodstub

//判断是否有时间限制

if(maxTime>=0){

while(true){

if(isBlack){

blackTime--;

if(blackTime==0){

JOptionPane.showMessageDialog(this,"黑方时间超时,游戏结束!

");

}

}else{

whiteTime--;

if(whiteTime==0){

JOptionPane.showMessageDialog(this,"白方时间超时,游戏结束!

");

}

}

 

 

 

 

四、总结

通过java的课程设计,是我进一步掌握了java的各项功能作用,熟练了java的运行方法,对于将来从事java行业打下了一定的基础,在课程设计的过程中,我们组遇到了各种各样的问题,通过参考相关书籍和文献使我们对java有了更深一步的了解,克服困难后,使我们有了前所未有的满足感,真正投入到设计中,才会真正感受到快乐和成就。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

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

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