没有合适的资源?快使用搜索试试~ 我知道了~
java课程设计报告五子棋.doc
资源推荐
资源详情
资源评论
.
工作原理图
2.2 功能的规划
1.建立一个棋盘类,绘制棋盘的样式,在棋盘面板上添加各种按钮及相应胡
触发事件。同时注意面板的设计,使面板设计的尽量胡的合理美观。
a.棋盘的绘制
public void draw_qipan(Graphics
G)
//画棋盘 15*15{
G.setColor(Color.
lightGray
);
G.fill3DRect(10,10,300,300,true);
.
.
G.setColor(Color.
black
);
for(int i=1;i<16;i++){
G.drawLine(20,20*i,300,20*i);
G.drawLine(20*i,20,20*i,300);
}
}
b.添加按钮与按钮胡规划
Button b1=new Button("开始");
Button b2=new Button("重置游戏");
Label lblWin
=
new Label(" ");
Checkbox ckbHB[]=new Checkbox[3];
Button exist = new Button("退出"
);
public void init(){
ckbHB[0]=
new
Checkbox("执白",ckgHB,false);
ckbHB[1]=
new
Checkbox("执黑",ckgHB,false);
ckbHB[2]=
new
Checkbox("观看",ckgHB, false);
}
C.鼠标棋子胡相应触发事件
public void
mouseClicked(MouseEvent
e)
{
Graphics g=getGraphics();
int x1,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>10) {
y1+=10;
}
x1=x1/20*20;
y1=y1/20*20;
set_Qizi(x1,y1);
.
.
m*=(-1);
}
d.按钮的触发事件
public
void
actionPerformed(ActionEvent e)
{
Graphics g=getGraphics();
if (e.getSource()==b1) {
Game_start();
}
else{
Game_re();
}
if(e.getSource()==exist){
Game_re();
lblWin.setText(Get_qizi_color(color_Qizi)+"
输
了!");
intGame_Start=0;
}
2.编写一个功能判断落子的位置及画出相应的黑白棋子
public
void
set_Qizi(int
x,int
y) //落子{
if (intGame_Start==0) //判断游戏未开始{
return;
}
if (intGame_Body[x/20][y/20]!=0) {
return;
}
Graphics g=getGraphics();
if (color_Qizi==1)//
判
断黑子还是白子
{ g.setColor(Color.black);
color_Qizi=0;
}
else{
g.setColor(Color.white);
color_Qizi=1;
}
g.fillOval(x-10,y-10,20,20);
.
.
intGame_Body[x/20][y/20]=color_Qizi+1;
}
3.判断胜负
if (Game_win_1(x/20,y/20)) //判断输赢 1{
lblWin.setText(Get_qizi_color(
color_Qizi
)+"赢了!"
);
intGame_Start
=0;
}
if (Game_win_2(x/20,y/20)) //判断输赢 2{
lblWin.setText(Get_qizi_color(
color_Qizi
)+"赢了!"
);
intGame_Start
=0;
}
if (Game_win_3(x/20,y/20)) //判断输赢 3{
lblWin.setText(Get_qizi_color(
color_Qizi
)+"赢了!"
);
intGame_Start
=0;
}
if (Game_win_4(x/20,y/20)) //判断输赢 4{
lblWin.setText(Get_qizi_color(
color_Qizi
)+"赢了!"
);
intGame_Start
=0;
} }
4.添加用户聊天功能
NetchatClient chat=new
NetchatClient();
chat.frame();
chat.setVisible(true);
三 具体实现
3.1
创建棋盘类
Public class WcyChess extends Applet
implements
ActionListener,MouseListener,MouseMotionListener,ItemListener{
int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子
int intGame_Start=0;//游戏开始标志 0
未开始 1
游戏中
int
intGame_Body[][]=new
int[16][16];
//设置棋盘棋子状态
int m=-1;
.
.
Button b1=new Button("
开
始"
);
Button b2=new Button("
重
置游戏"
);
Label
lblWin=new
Label("
");
Checkbox
ckbHB[]=new
Checkbox[3];
Button exist = new Button("退出");
CheckboxGroup
ckgHB=new
CheckboxGroup();
NetchatClient
chat=new
NetchatClient();
public
void
init(){
setLayout(null);
addMouseListener(this);
add(b1);
b1.setBounds(330,50,80,30);
b1.addActionListener(this);
add(b2);
b2.setBounds(330,90,80,30);
b2.addActionListener(this);
ckbHB[0]=new
Checkbox("执白",ckgHB,false);
ckbHB[0].setBounds(320,20,60,30);
ckbHB[1]=new
Checkbox("执黑",ckgHB,false);
ckbHB[1].setBounds(380,20,60,30);
ckbHB[2]=new
Checkbox("观看",ckgHB, false);
add(ckbHB[0]);
add(ckbHB[1]);
add(ckbHB[2]);
ckbHB[0].addItemListener(this);
ckbHB[1].addItemListener(this);
add(lblWin);
lblWin.setBounds(330,180,80,30);
lblWin.setBackground(Color.red);
lblWin.setText("
胜
利者!");//
没有显示?
ckbHB[2].setBounds(440, 20,60, 30);
add(exist);
exist.setBounds(330,130,80,30);
exist.addActionListener(this);
// add(chat);chat.setBounds(20, 500, 300,
300);
.
剩余36页未读,继续阅读
资源评论
omygodvv
- 粉丝: 504
- 资源: 2065
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功