五子棋JAVA语言毕业课程设计报告Word文档格式.docx
- 文档编号:19277372
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:23
- 大小:130.66KB
五子棋JAVA语言毕业课程设计报告Word文档格式.docx
《五子棋JAVA语言毕业课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《五子棋JAVA语言毕业课程设计报告Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
3.2判断输赢功能实现……………………………….9
3.3测试结果……………………………………….....9
四、心得体会…………………………………………...12
五、参考文献…………………………………………...12
附录(源代码)……………………………………….13
一、课程设计要求
设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能:
1.选择落子的先后顺序
2.重置棋盘
3.刷新重新开始
4.退出提示
并且规定退出者判为负,但退出过程中要有提示。
以防不小心点错了。
最后判断某一方是否为五子连珠。
实现一个简单的多用户五子棋的游戏程序,包括如下两个界面
(1)选择对弈桌(执黑、执白)。
(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);
二、设计步骤
2.1程序流程图
2.2程序的功能分配
a.棋盘的绘制
publicvoiddraw_qipan(GraphicsG)画棋盘15*15{
G.setColor(Color.lightGray);
G.fill3DRect(0,true);
G.setColor(Color.black);
for(inti=1;
i<
16;
i++){
G.drawLine(20,20*i*i);
G.drawLine(20*i,20,20*i,300);
}
}
b.添加按钮
Buttonb1=newButton("
开始"
);
Buttonb2=newButton("
重置游戏"
LabellblWin=newLabel("
"
CheckboxckbHB[]=newCheckbox[3];
Buttonexist=newButton("
退出"
publicvoidinit(){
ckbHB[0]=newCheckbox("
执白"
ckgHB,false);
ckbHB[1]=newCheckbox("
执黑"
ckbHB[2]=newCheckbox("
观看"
ckgHB,false);
}
c.鼠标棋子的触发事件
publicvoidmouseClicked(MouseEvente){
Graphicsg=getGraphics();
intx1,y1;
x1=e.getX();
y1=e.getY();
if(e.getX()<
20||e.getX()>
300||e.getY()<
20||e.getY()>
300){
return;
if(x1%20>
10){
x1+=10;
if(y1%20>
y1+=10;
x1=x120*20;
y1=y120*20;
set_Qizi(x1,y1);
m*=(-1);
d.按钮的触发事件
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==b1){
Game_start();
else{
Game_re();
if(e.getSource()==exist){
lblWin.setText(Get_qizi_color(color_Qizi)+"
输了!
"
intGame_Start=0;
}
e.判断落子的位置及画出相应的黑白棋子
publicvoidset_Qizi(intx,inty)落子{
if(intGame_Start==0)判断游戏未开始{
if(intGame_Body[x20][y20]!
=0){
if(color_Qizi==1)判断黑子还是白子{
g.setColor(Color.black);
color_Qizi=0;
g.setColor(Color.white);
color_Qizi=1;
g.fillOval(x-10,y);
intGame_Body[x20][y20]=color_Qizi+1;
}
f.判断胜负
if(Game_win_1(x20,y20))判断输赢1{
赢了!
}
if(Game_win_2(x20,y20))判断输赢2{
if(Game_win_3(x20,y20))判断输赢3{
if(Game_win_4(x20,y20))判断输赢4{
三、设计正文
3.1创建棋盘类
PublicclassWcyChessextendsAppletimplementsActionListener,MouseListener,MouseMotionListener,ItemListener{
intcolor_Qizi=0;
旗子的颜色标识0:
白子1:
黑子
intintGame_Start=0;
游戏开始标志0未开始1游戏中
intintGame_Body[][]=newint[16][16];
设置棋盘棋子状态
intm=-1;
Buttonb1=newButton("
CheckboxGroupckgHB=newCheckboxGroup();
NetchatClientchat=newNetchatClient();
setLayout(null);
addMouseListener(this);
add(b1);
b1.setBounds();
b1.addActionListener(this);
add(b2);
b2.setBounds();
b2.addActionListener(this);
ckbHB[0].setBounds();
ckbHB[1].setBounds();
add(ckbHB[0]);
add(ckbHB[1]);
add(ckbHB[2]);
ckbHB[0].addItemListener(this);
ckbHB[1].addItemListener(this);
add(lblWin);
lblWin.setBounds(0);
lblWin.setBackground(Color.red);
lblWin.setText("
胜利者!
没有显示?
ckbHB[2].setBounds(440,20,60,30);
add(exist);
exist.setBounds(0);
exist.addActionListener(this);
add(chat);
chat.setBounds(20,500,300,300);
chat.frame();
chat.setVisible(true);
Game_start_csh();
setSize();
setVisible(true);
publicvoiditemStateChanged(ItemEvente){
if(ckbHB[0].getState())选择黑子还是白子{
publicvoidmousePressed(MouseEvente){}
publicvoidmouseClicked(MouseEvente){
y1+=10;
else{
publicvoidmouseEntered(MouseEvente){}
publicvoidmouseExited(MouseEvente){}
publicvoidmouseReleased(MouseEvente){}
publicvoidmouseDragged(MouseEvente){}
publicvoidmouseMoved(MouseEvente){}
publicvoidpaint(Graphicsg){
draw_qipan(g);
}
3.2判断输赢功能实现
if(Game_win_1(x20,y20)){判断输赢1
if(Game_win_2(x20,y20)){判断输赢2
3.3测试结果
a.进入游戏界面
游戏开始的界面有三个选择项,用户可以选择相应的角色,选择
完毕后点击开始进入游戏。
b.选择角色,开始下棋
首先达到五个棋子连在一块的赢了,并在红色区域显示谁赢了!
c.下完后,重新开始
下完一盘后游戏停止,点击重新开始,界面回到初始界面,选择角色继续游戏.
d.游戏中点退出,自动判输
在下棋的过程当中谁中途退出,即点击退出,系统自动判断谁输
四、课程设计心得体会
通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。
这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。
它还让我学会了在网上查阅那些无限的资料。
由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。
对于文中出现的不足和系统中出现的问题敬请老师指导。
五、参考文献
1.吴其庆编著.Java程序设计实例教程.北京:
冶金工业出版社
2.柳西玲.许斌编著.Java语言应用开发基础.北京:
清华大学出版社
3.丁振凡Java语言实用教程:
北京邮电大学出版社
附录(源代码)
import.*;
importjava.io.*;
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.applet.Applet;
importjava.awt.Color;
PublicclasswuziqiextendsAppletimplementsActionListener,MouseListener,MouseMotionListener,ItemListener{
重新开始"
publicvoiditemStateChanged(ItemEvente){
if(ckbHB[0].getState())选择黑子还是白子
{
else
publicvoidmouseClicked(MouseEvente){
300){
10){
m*=(-1)
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==b1){
color_Qizi=m;
lblWin.setText(Get_qizi_color(color_Qizi)+"
publicvoidpaint(Graphicsg){
publicvoidset_Qizi(intx,inty){落子
if(intGame_Start==0){判断游戏未开始
=0){
if(color_Qizi==1){判断黑子还是白子
if(Game_win_1(x20,y20)){判断输赢1
if(Game_win_2(x20,y20)){判断输赢2{
if(Game_win_3(x20,y20)){判断输赢3
if(Game_win_4(x20,y20)){判断输赢4
publicStringGet_qizi_color(intx)
{
if(x==0)
return"
黑子"
;
白子"
publicvoiddraw_qipan(GraphicsG){画棋盘15*15
G.drawL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 五子棋 JAVA 语言 毕业 课程设计 报告