java课程设计报告五子棋

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

..工作原理图2.2功能的规划1.建立一个棋盘类,绘制棋盘的样式,在棋盘面板上添加各种按钮及相应胡触发事件。同时注意面板的设计,使面板设计的尽量胡的合理美观。a.棋盘的绘制publicvoiddraw_qipan(GraphicsG)//画棋盘15*15{G.setColor(Color.lightGray);G.fill3DRect(10,10,300,300,true);G.setColor(Color.black);..for(inti=1;i16;i++){G.drawLine(20,20*i,300,20*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(执黑,ckgHB,false);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%2010){x1+=10;}if(y1%2010){y1+=10;}x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1);..}d.按钮的触发事件publicvoidactionPerformed(ActionEvente){Graphicsg=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.编写一个功能判断落子的位置及画出相应的黑白棋子publicvoidset_Qizi(intx,inty)//落子{if(intGame_Start==0)//判断游戏未开始{return;}if(intGame_Body[x/20][y/20]!=0){return;}Graphicsg=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.添加用户聊天功能NetchatClientchat=newNetchatClient();chat.frame();chat.setVisible(true);三具体实现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(开始);Buttonb2=newButton(重置游戏);LabellblWin=newLabel();CheckboxckbHB[]=newCheckbox[3];Buttonexist=newButton(退出);..CheckboxGroupckgHB=newCheckboxGroup();NetchatClientchat=newNetchatClient();publicvoidinit(){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]=newCheckbox(执白,ckgHB,false);ckbHB[0].setBounds(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);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);chat.frame();chat.setVisible(true);Game_start_csh();setSize(500,600);setVisible(true);}..publicvoiditemStateChanged(ItemEvente){if(ckbHB[0].getState())//选择黑子还是白子{color_Qizi=0;}else{color_Qizi=1;}}publicvoidmousePressed(MouseEvente){}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%2010){x1+=10;}if(y1%2010){y1+=10;}x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1);}publicvoidactionPerformed(ActionEvente){Graphicsg=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;}}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}publicvoidmouseReleased(MouseEvente){}publicvoidmouseDragged(MouseEvente){}publicvoidmouseMoved(MouseEvente){}publicvoidpaint(Graphicsg){draw_qipan(g);}3.2判断输赢功能实现if(Game_win_1(x/20,y/20)){//判断输赢1lblWin.setText(Get_qizi_color(color_Qizi)+赢了!);intGame_Start=0;}if(Game_win_2(x/20,y/20)){//判断输赢2lblWin.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;}//判断输赢程序实现在详细过程publicbooleanGame_win_1(intx,inty){//横向判断输赢intx1,y1,t=1;x1=x;y1=y;for(inti=1;i5;i++){if(x115){break;}if(intGame_Body[x1+i][y1]==intGame_Body[x][y]){t+=1;}else{break;}}for(inti=1;i5;i++){if(x11)break;}if(intGame_Body[x1-i][y1]==intGame_Body[x][y])t+=1;}else{break;}}..if(t4){returntrue;}else{returnfalse;}}publicbooleanGame_win_2(intx,inty){//纵向判断输赢intx1,y1,t=1;x1=x;y1=y;for(inti=1;i5;i++){if(x115){break;}if(intGame_Body[x1][y1+i]==intGame_Body[x][y]){t+=1;}else{break;}}for(inti=1;i5;i++){if(x11){break;}if(intGame_Body[x1][y1-i]==intGame_Body[x][y]){t+=1;}else{break;}}if(t4){returntrue;..}else{returnfalse;}}publicboolea

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功