java课设 五子棋代码编写(团队)

1. 团队课程设计博客链接

http://www.cnblogs.com/yzb123/p/7063424.html

2.个人责模块或任务说明

1.主函数编写,设置图形界面
2,设置功能按钮
3.使用CheckboxGroup对下棋顺序设置
4.对功能按钮的使用进行限制

3.自己的代码提交记录截图

4.自己负责模块或任务详细说明

public class FivChese  extends JFrame{
    CheseGame CG;
    FivChese ()
    {
        this.CG= new CheseGame();
        addMouseListener(CG);
        add(CG);
    }
    public static void main(String[] args) {
        FivChese  fivechese= new FivChese ();
        fivechese.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fivechese.setSize(900, 700);
        fivechese.setTitle("五子棋");
        fivechese.setVisible(true);//可以画图
        fivechese.setResizable(true);//可以改变大小
    }
}
class CheseGame extends JPanel  implements MouseListener,ItemListener
{
    int [][]map = new int[20][20];
    Color []color = {Color.BLACK,Color.WHITE,Color.LIGHT_GRAY};
    //棋子坐标
    int x = -1;
    int y = -1;
    //判定是白棋还是黑棋
    int flag = 1;
    //判定胜负
    int winner = 3;
    JButton btn1 = new JButton("开始"); //游戏开始
    JButton btn2 = new JButton("再来一局");//游戏重置
    //确定白棋先还是黑棋先
    CheckboxGroup cbg = new CheckboxGroup();//复选框
    Checkbox  chb1 = new Checkbox("黑棋先开始",cbg,true);
    Checkbox  chb2 = new Checkbox("白棋先开始",cbg,false);
    @Override
    public void itemStateChanged(ItemEvent ie) {
      //  throw new UnsupportedOperationException("Not supported yet.");
        if(chb1.getState())
        {
            flag = 1;
        }
        else
        {
            flag = 2;
        }
    }
    class GameStart implements ActionListener
    {
        public void actionPerformed(ActionEvent ae)
        {
             if(ae.getSource() == btn1)//str.equals("Start")
             {
                 start();
                 repaint();
                 btn1.setEnabled(false);
                 btn2.setEnabled(true);
                 chb1.setEnabled(false);
                 chb2.setEnabled(false);
             }
             if(ae.getSource() == btn2)
             {
                 start();
                 repaint();
                 chb1.setEnabled(true);
                 chb2.setEnabled(true);
             }
        }
    }
CheseGame()
    {  
        this.setLayout(null);
        chb1.setBounds(650, 50, 100, 30);
        chb2.setBounds(650, 100, 100, 30);
        chb1.addItemListener(this);
        chb2.addItemListener(this);
        btn1.setBounds(650,150,100,30);
        btn1.addActionListener(new GameStart()); 
        btn2.setBounds(650, 200, 100, 30);
        btn2.addActionListener(new GameStart());
        btn2.setEnabled(false);
        this.add(btn1);
        this.add(btn2);
        this.add(chb1);
        this.add(chb2);
    }
    void start()
    {
        for(int i = 0;i < 20;i++)
            for(int j = 0;j < 20;j++)
                map[i][j] = 0;
        winner = 0;
    }

5.课程设计感想

选择了这个以后,发现对自己难度太大,几乎对图形界面一无所知,所以就只能临时学习。因为时间有限,所以程序的功能实现的不全面, 但是还是有收获的。对于网络对战和悔棋的要求并没有达成,所以还是要对java进一步学习。

posted @ 2017-06-22 10:36  lsl321  阅读(665)  评论(0编辑  收藏  举报