zoukankan      html  css  js  c++  java
  • Pair Project

    以前只是一个人完成一个项目,不论什么都是,现在突然要两个人一起来写, 听上去挺稀奇的,也挺简单的,可惜了就是“听上去”而已。我认为这也是一种技术啊~

    我跟我的搭档研究了好久好久,选择了好久,然后也选了各种语言,最后决定了用Java。本来我打算做一个数独的小项目,可惜搭档说还是做五子棋的(主要我觉得做五子棋的人太多了),所以最后还是做了五子棋的,这是源码的github链接。

    我们用Java编写了一个五子棋游戏,实现了实现了人人对战,人机对战。其中人机对战使用了很简单的AI,使棋子随机出现在棋盘的各个位置。在整个过程中,我有我的活儿,我的搭档(cnblongs)也有他的任务。

    一、分工情况:

    崔琪:GUI设计以及代码规范

    孙明东:负责棋子胜负判断部分

    二、过程分析:

    这次我主要负责的是GUI设计以及代码规范,我来大概说说GUI吧。

    GUI编程规范总结:

    1、一般情况下对话框第一栏都是菜单栏,因此首先就是建立菜单栏。在GUI控件使用时所有的控件都是层层嵌套的,就是控件依托,最终整合到面板上,进而再添加事件监听器,已响应事件的发生;

    建立菜单:

    public MenuBar getMB(){//创建菜单栏
            MenuBar mb = new MenuBar();
            
            Menu file = new Menu("文件");//文件菜单
            MenuItem open = new MenuItem("打开");//打开菜单项
            file.add(open);
            MenuItem save = new MenuItem("保存");//保存菜单项
            file.add(save);
            file.addSeparator();
            MenuItem exit = new MenuItem("退出");//退出菜单项
            file.add(exit);
            
            
            Menu game = new Menu("游戏");
            
            MenuItem begin = new MenuItem("开始游戏");//开始游戏菜单项
            game.add(begin);
            game.addSeparator();
            MenuItem mantoman = new MenuItem("人人对战");
            game.add(mantoman);
            MenuItem mantocpu = new MenuItem("人机对战");
            game.add(mantocpu);
            
            
            Menu have = new Menu("执子颜色");
            MenuItem haveblcak = new MenuItem("黑色");
            have.add(haveblcak);
            MenuItem havewhite = new MenuItem("白色");
            have.add(havewhite);
            
            game.addSeparator();
            game.add(have);
            
            
            Menu help = new Menu("帮助");//帮助菜单
            MenuItem about = new MenuItem("关于");//打开菜单项
            help.add(about);
            
            mb.add(file);
            mb.add(game);
            mb.add(help);
            
            MenuAction al = new MenuAction();
            open.addActionListener(al);
            save.addActionListener(al);
            about.addActionListener(al);
            exit.addActionListener(al);
            begin.addActionListener(al);
            mantoman.addActionListener(al);
            mantocpu.addActionListener(al);
            haveblcak.addActionListener(al);
            havewhite.addActionListener(al);
            return mb;
        }

    在这里举一例。

    GUI框架的设计步骤:

    ①首先要建立主框架:JFrame f=new JFrame();

    ②取得框架的内容窗格 Container contentPane=f.getContentPane();

    ③在制作复杂的用户界面时,常常需要使用多个JPanel将复杂的界面分解为先对建大的子界面,然后再对每个JPanel进行布局:

    Menu file = new Menu("文件");//文件菜单
      MenuItem open = new MenuItem("打开");//打开菜单项
      file.add(open);
      MenuItem save = new MenuItem("保存");//保存菜单项
      file.add(save);
      file.addSeparator();
      MenuItem exit = new MenuItem("退出");//退出菜单项
      file.add(exit);

    ④将面板添加到框架的内容窗格中,如:

    Menu have = new Menu("执子颜色");
            MenuItem haveblcak = new MenuItem("黑色");
            have.add(haveblcak);
            MenuItem havewhite = new MenuItem("白色");
            have.add(havewhite);
            
            game.addSeparator();
            game.add(have);

    ⑤处理控件的依赖关系,及消息的定义,各种细节的设计

    ⑥控件的逐级加入

    JSSFMenu.add(DBJFItem);//将下拉子菜单加入到主菜单中去

    menuBar.add(DBJFItem);//将主菜单加入到主菜单工具条中

    ⑦将面板加入到框架的内容窗格中

    contentPanel.add(P); 

    三、设计结果:

    运行界面

    接下来是运行的结果

    以上是项目的过程

    四、收获

    在这次的结对项目中,我体会到了两人在一起工作时的状态,好处总要比弊处多。首先两个人在一起做一个项目会节省很多的时间,分工合作要比一个人瞎忙来得好;还有,一个人的思维往往是受局限的,有了伙伴之后总会让你在思维上有所启发。相互的交流学习是非常重要的,往往有所经验才有所收获。很高兴和搭档的这次合作!

  • 相关阅读:
    第一个SWT程序
    稀疏数组
    算法与数据结构
    《Java核心技术》学习笔记 第1-3章
    算术运算符
    5.11 rw zip file
    5.10 gob序列化
    5.9 piping between writer and reader
    5.7 io.MultiWriter(buf, f)
    5.7 读写 二进制数据
  • 原文地址:https://www.cnblogs.com/chitty/p/4508821.html
Copyright © 2011-2022 走看看