五/25
三
类及对象设计
publicvoidinit()/////////////////////////////////程序初始化publicvoidactionPerformed(ActionEvente)///////按钮实现作用publicvoidqipan(GraphicsG)/////////////////画棋盘15*15
publicvoidGame_btn_enable(booleane////////设置组件初始状态publicvoidstart()///////////////////////////游戏开始初始化
publicvoidGame_start()///////////////////////////游戏开始publicvoidmouseClicked(MouseEvente)//////////////鼠标点击publicvoidset_Qizi(intx,inty)/////////////////////落子
publicvoiditemStateChanged(ItemEvente)////////判断落子顺序publicStringGet_qizi_color(intx)//////////////返回棋子颜色
publicvoidGame_re()///////////////////////////游戏重新开始publicvoidGame_stop()/////////////////////////////退出游戏classMyFrameextendsFrameimplementsActionListener//////////////////////////////////////////////弹出对话框并判断退出者为负publicbooleanGame_win_1(intx,inty)publicbooleanGame_win_2(intx,inty)publicbooleanGame_win_3(intx,inty)publicbooleanGame_win_4(intx,inty)//////////判断输赢横//////////判断输赢竖//////////判断输赢左斜//////////判断输赢右斜
六/25
四
具体实现(程序源代码)具体实现(程序源代码)
packagewuziqi1;importjava.applet.*;importjava.applet.Applet;importjava.awt.*;importjava.awt.Color;importjava.awt.event.*;publicclasswuziqiextendsAppletimplementsActionListener,MouseListener,MouseMotionListener,ItemListener{intcolor_Qizi=0;/////////////////////////////旗子的颜色标识0:白子1:黑子intgamestart=0;///////////////////////////////游戏开始标志0未开始1游戏中intgamebody[][]=newint[16][16];////设置棋盘棋子状态0无子1白子2黑子Buttonb1=newButton("游戏开始");Buttonb2=newButton("重置游戏");Buttonb3=newButton("退出游戏");LabellblWin=newLabel("");////////////////////状态标签CheckboxckbHB[]=newCheckbox[2];/////////////起始复选框CheckboxGroupckgHB=newCheckboxGroup();////////复选框组publicvoidinit(){resize(420,360);setLayout(null);addMouseListener(this);add(b1);b1.setBounds(330,100,70,30);b1.addActionListener(this);add(b2);b2.setBounds(330,140,70,30);b2.addActionListener(this);add(b3);b3.setBounds(330,180,70,30);b3.addActionListener(this);ckbHB[0]=newCheckbox("白子先",ckgHB,false);ckbHB[0].setBounds(330,30,70,30);ckbHB[1]=newCheckbox("黑子先",ckgHB,false);ckbHB[1].setBounds(330,60,70,30);
七/25
add(ckbHB[0]);add(ckbHB[1]);ckbHB[0].addItemListener(this);ckbHB[1].addItemListener(this);add(lblWin);lblWin.setBounds(330,280,70,30);setBackground(Color.gray);setBounds(100,100