五子棋JAVA语言课程设计报告.docx

上传人:b****6 文档编号:13663411 上传时间:2023-06-16 格式:DOCX 页数:12 大小:16.94KB
下载 相关 举报
五子棋JAVA语言课程设计报告.docx_第1页
第1页 / 共12页
五子棋JAVA语言课程设计报告.docx_第2页
第2页 / 共12页
五子棋JAVA语言课程设计报告.docx_第3页
第3页 / 共12页
五子棋JAVA语言课程设计报告.docx_第4页
第4页 / 共12页
五子棋JAVA语言课程设计报告.docx_第5页
第5页 / 共12页
五子棋JAVA语言课程设计报告.docx_第6页
第6页 / 共12页
五子棋JAVA语言课程设计报告.docx_第7页
第7页 / 共12页
五子棋JAVA语言课程设计报告.docx_第8页
第8页 / 共12页
五子棋JAVA语言课程设计报告.docx_第9页
第9页 / 共12页
五子棋JAVA语言课程设计报告.docx_第10页
第10页 / 共12页
五子棋JAVA语言课程设计报告.docx_第11页
第11页 / 共12页
五子棋JAVA语言课程设计报告.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

五子棋JAVA语言课程设计报告.docx

《五子棋JAVA语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《五子棋JAVA语言课程设计报告.docx(12页珍藏版)》请在冰点文库上搜索。

五子棋JAVA语言课程设计报告.docx

五子棋JAVA语言课程设计报告

《Java语言程序设计》

课程设计报告

学院:

信息科学技术学院

班级:

软件技术2班

姓名:

王更新

学号:

指导教师:

郭韶升

课设时间:

2014-03-17至2014-03-26

二O一四年三月二十六日

一、设计要求…………………………………………....2

二、设计步骤…………………………………………....2

程序流程图………………………….…………...2

程序的功能分配……………………….………...3

三、设计正文…………………………………………....6

创建棋盘类……………………………………….6

判断输赢功能实现……………………………….9

测试结果……………………………………….....9

四、心得体会…………………………………………...12

五、参考文献…………………………………………...12

附录(源代码)……………………………………….13

一、课程设计要求

设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能:

1.选择落子的先后顺序

2.重置棋盘

3.刷新重新开始

4.退出提示

并且规定退出者判为负,但退出过程中要有提示。

以防不小心点错了。

最后判断某一方是否为五子连珠。

实现一个简单的多用户五子棋的游戏程序,包括如下两个界面

(1)选择对弈桌(执黑、执白)。

(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);

二、设计步骤

程序流程图

程序的功能分配

a.棋盘的绘制

publicvoiddraw_qipan(GraphicsG)添加按钮

Buttonb1=newButton("开始");

Buttonb2=newButton("重置游戏");

LabellblWin=newLabel("");

CheckboxckbHB[]=newCheckbox[3];

Buttonexist=newButton("退出");

publicvoidinit(){

ckbHB[0]=newCheckbox("执白",ckgHB,false);

ckbHB[1]=newCheckbox("执黑",ckgHB,false);

ckbHB[2]=newCheckbox("观看",ckgHB,false);

}

c.鼠标棋子的触发事件

publicvoidmouseClicked(MouseEvente){

Graphicsg=getGraphics();

intx1,y1;

x1=();

y1=();

if()<20||()>300||()<20||()>300){

return;

}

if(x1%20>10){

x1+=10;

}

if(y1%20>10){

y1+=10;

}

x1=x1/20*20;

y1=y1/20*20;

set_Qizi(x1,y1);

m*=(-1);

}

d.按钮的触发事件

publicvoidactionPerformed(ActionEvente){

Graphicsg=getGraphics();

if()==b1){

Game_start();

}

else{

Game_re();

}

if()==exist){

Game_re();

(Get_qizi_color(color_Qizi)+"输了!

");

intGame_Start=0;

}

e.判断落子的位置及画出相应的黑白棋子

publicvoidset_Qizi(intx,inty)判断胜负

if(Game_win_1(x/20,y/20))etBounds(320,20,60,30);

ckbHB[1]=newCheckbox("执黑",ckgHB,false);

ckbHB[1].setBounds(380,20,60,30);

ckbHB[2]=newCheckbox("观看",ckgHB,false);

add(ckbHB[0]);

add(ckbHB[1]);

add(ckbHB[2]);

ckbHB[0].addItemListener(this);

ckbHB[1].addItemListener(this);

add(lblWin);

(330,180,80,30);

;

("胜利者!

");etBounds(440,20,60,30);

add(exist);

(330,130,80,30);

(this);

etState())进入游戏界面

游戏开始的界面有三个选择项,用户可以选择相应的角色,选择

完毕后点击开始进入游戏。

b.选择角色,开始下棋

首先达到五个棋子连在一块的赢了,并在红色区域显示谁赢了!

c.下完后,重新开始

下完一盘后游戏停止,点击重新开始,界面回到初始界面,选择角色继续游戏.

d.游戏中点退出,自动判输

在下棋的过程当中谁中途退出,即点击退出,系统自动判断谁输

四、课程设计心得体会

通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。

这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。

它还让我学会了在网上查阅那些无限的资料。

由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。

对于文中出现的不足和系统中出现的问题敬请老师指导。

五、参考文献

1.吴其庆编着.Java程序设计实例教程.北京:

冶金工业出版社

2.柳西玲.许斌编着.Java语言应用开发基础.北京:

清华大学出版社

3.丁振凡Java语言实用教程:

北京邮电大学出版社

附录(源代码)

import.*;

import.*;

import.*;

import.*;

PublicclasswuziqiextendsAppletimplementsActionListener,MouseListener,MouseMotionListener,ItemListener{

intcolor_Qizi=0;etBounds(320,20,60,30);

ckbHB[1]=newCheckbox("执黑",ckgHB,false);

ckbHB[1].setBounds(380,20,60,30);

ckbHB[2]=newCheckbox("观看",ckgHB,false);

add(ckbHB[0]);

add(ckbHB[1]);

add(ckbHB[2]);

ckbHB[0].addItemListener(this);

ckbHB[1].addItemListener(this);

add(lblWin);

(330,180,80,30);

;

("胜利者!

");etBounds(440,20,60,30);

add(exist);

(330,130,80,30);

(this);

Game_start_csh();

setSize(500,600);

setVisible(true);

}

publicvoiditemStateChanged(ItemEvente){

if(ckbHB[0].getState())etState(true);

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

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

intGame_Body[i][j]=0;

}

}

("");

}

publicvoidGame_re(){etEnabled(e);

ckbHB[1].setEnabled(e);

}

publicbooleanGame_win_1(intx,inty){//横向判断输赢

intx1,y1,t=1;

x1=x;

y1=y;

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

if(x1>15){

break;

}

if(intGame_Body[x1+i][y1]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

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

if(x1<1){

break;

}

if(intGame_Body[x1-i][y1]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

if(t>4){

returntrue;

}

else{

returnfalse;

}

}

publicbooleanGame_win_2(intx,inty){//纵向判断输赢

intx1,y1,t=1;

x1=x;

y1=y;

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

if(x1>15){

break;

}

if(intGame_Body[x1][y1+i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

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

if(x1<1){

break;

}

if(intGame_Body[x1][y1-i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

if(t>4){

returntrue;

}

else{

returnfalse;

}

}

publicbooleanGame_win_3(intx,inty){//左斜判断输赢

intx1,y1,t=1;

x1=x;

y1=y;

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

if(x1>15){

break;

}

if(intGame_Body[x1+i][y1-i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

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

if(x1<1){

break;

}

if(intGame_Body[x1-i][y1+i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

if(t>4){

returntrue;

}

else{

returnfalse;

}

}

publicbooleanGame_win_4(intx,inty){//左斜判断输赢

intx1,y1,t=1;

x1=x;

y1=y;

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

if(x1>15){

break;

}

if(intGame_Body[x1+i][y1+i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

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

if(x1<1){

break;

}

if(intGame_Body[x1-i][y1-i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

if(t>4){

returntrue;

}

else{

returnfalse;

}

}

}

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2