软件工程课程设计-面向对象(五子棋内容摘要:
port。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import .*。 public class FiveChessDemo { public static void main(String args[]) { ChessFrame cf = new ChessFrame()。 (true)。 } } /********************ChessFrame**************************/ class ChessFrame extends JFrame implements ActionListener,Runnable { public static boolean isCompute = true。 public static boolean checkComputer = true。 private String[] strmode={人机对战 ,人人对战 }。 private int width,height。 private ChessModel cm。 private MainPanel mp。 public int gameTime。 public boolean isComputerTime = true。 Thread t = new Thread(this)。 public ChessFrame() { (五子棋 )。 MapSize(20,15)。 cm = new ChessModel(1)。 mp = new MainPanel(cm)。 (false)。 Container con = ()。 (mp,Center)。 JMenuBar mbar = new JMenuBar()。 (mbar)。 JMenu gameMenu = new JMenu(游戏 )。 (makeMenu(gameMenu,new Object[]{ 开始 ,模式 ,计时 ,null,退出 },this))。 JMenu sizeMenu = new JMenu(棋盘 )。 (makeMenu(sizeMenu,new Object[]{ 20*15,null,30*20,null,40*30},this))。 JMenu aboutMenu = new JMenu(帮助 )。 (makeMenu(aboutMenu,new Object[]{ 帮助 ,关于 },this))。 ()。 ()。 //()。 ()。 } public void run(){ while(true){ //()。 //(gameTime)。 if(gameTime0 amp。 amp。 isComputerTime == false){ if(==true){。 if(==0){ (this,时间到,黑方输 ,提示,)。 ()。 } } else{。 if(==0){ (this,时间到,白方输 ,提示,)。 ()。 } } = ()+:+(*60)+:+(*60)。 = ()+:+(*60)+:+(*60)。 try{ (1000)。 } catch(Exception e){ } ( + + )。 repaint()。 } } } public void MapSize(int w,int h) { setSize(w * 20+50,h * 20+150)。 if(!){ =false。 }else{ =true。 } //(cm)。 //()。 } public void restart(){ int modeChess = ()。 = true。 if(isComputerTime == true){ = 无限制。 = 无限制。 gameTime = 0。 } if(modeChess = 3 amp。 amp。 modeChess = 1){ cm = new ChessModel(modeChess)。 MapSize((),())。 (cm)。 ()。 }else{ (\u81EA\u5B9A\u4E49)。 } } public JMenu makeMenu(Object parent,Object items[],Object target){ JMenu j = null。 if(parent instanceof JMenu){ j = (JMenu)parent。 } else if(parent instanceof String){ j = new JMenu((String)parent)。 } else{ return null。 } for(int i = 0。 i。 i++) { if(items[i]==null){ ()。 } else if(items[i] == 模式 ){ JMenu jm = new JMenu(模式 )。 ButtonGroup group=new ButtonGroup()。 JRadioButtonMenuItem rmenu。 for (int h=0。 h。 h++){ rmenu=makeRadioButtonMenuItem(strmode[h],target)。 if(h==0) (true)。 (rmenu)。 (rmenu)。 } (jm)。 } else{ (makeMenuItem(items[i],target))。 }}。 return j。 } public JMenuItem makeMenuItem(Object item,Object target){ JMenuItem r = null。 if(item instanceof JMenuItem) r = (JMenuItem)item。 else if(item instanceof String) r = new JMenuItem((String)item)。 else return null。 if(target instanceof ActionListener) ((ActionListener)target)。 return r。 } public JRadioButtonMenuItem makeRadioButtonMenuItem( Object item, Object target){ JRadioButtonMenuItem r = null。 if(item instanceof String) r = new JRadioButtonMenuItem((String)item)。 else if(item instanceof JRadioButtonMenuItem) r = (JRadioButtonMenuItem)item。 else return null。 if(target instanceof ActionListener) ((ActionListener)target)。 return r。 } public void actionPerformed(ActionEvent e){ String arg = ()。 if((开始 )){ (开始 )。 restart()。 } if((人机对战 )){ =true。 =true。 isComputerTime = true。 cm=new ChessModel(())。 MapSize((),())。 (this)。 } if((人人对战 )){ =false。 =false。 isComputerTime = false。 cm=new ChessModel(())。 MapSize((),())。 (this)。 } if((20*15)){ = 20。 = 15。 MapSize(,)。 cm = new ChessModel(1)。 (this)。 (cm)。 ()。 } if((30*20)){ = 30。 = 20。 cm = new ChessModel(2)。 MapSize(,)。 (this)。 (cm)。 ()。 } if((40*30)){ = 40。 = 30。 MapSize(,)。 cm = new ChessModel(3)。 (this)。 (cm)。 ()。 } if((关于 )){ (this,五子棋 , yangyang,)。 } if((帮助 )){ (this,连续五颗相同棋子者胜 ,帮助,)。 } if((计时 )){ String time = (this,请设置时间 (分钟 ),0为无限制 ,(只有人人模式才能设置时间 ))。 gameTime = (time)*60。 if(gameTime0 amp。 amp。 isComputerTime == false){ (this,设置完成,是否重新开始 ?)。 restart()。 = gameTime。 = gameTime。 = (gameTime/3600)+:+(gameTime/60gameTime/3600*60)+:+(gameTimegameTime/60*60)。 = (gameTime/3600)+:+(gameTime/60gameTime/3600*60)+:+(gameTimegameTime/60*60)。 repaint()。 ()。 } else if(gameTime==0 amp。 amp。 isComputerTime == false){ (this,设置完成,是否重新开始 ?)。 restart()。 = gameTime。 = gameTime。 // = (gameTime/3600)+:+(gameTime/60gameTime/3600*60)+:+(gameTimegameTime/60*60)。 // = (gameTime/3600)+:+(gameT。软件工程课程设计-面向对象(五子棋
相关推荐
和改正错误所花费的代价就会降低。 ( ) 3. 不存在质量很高但可靠性很差的产品。 ( ) 4. 软件测试员可以对产品说明书进行白盒测试。 (√ ) 5. 静态白盒测试可以找出遗漏之处和问题。 (√ ) 6. 总是首先设计白盒测试用例。 ( ) 7. 可以发布具有配置缺陷的软件产品。 (√ ) 8. 所有软件必须进行某种程度的兼容性测试。 ( ) 9. 所有软件都有一个用户界面
束的说明、合适的验收标准,给出对目标软件的各种需求。 需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用。 简述软件体系结构的概念及基于 B/S 体系结构的实现方式。 答:软件体系结构:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。 处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同 部分组组合连接起来
之间的关系是怎样的。 层次图 层次图是用来描述软件的层次结构的。 HIPO 图 HIPO 图 = 层次图 +输入 +处理 +输出 结构图 结构图和层次图类似,都是描述软件结构的图形工具。 类图 对象图 包图 状态图 活动图 顺序图 协作图 构件图 配置图 5 . 详细设计 详细设计阶段就是在总体设计的基础上要确定怎样具体的详细的实现系统所要求的功能,要对系统进行精确的描述。 程序流程图
..................................................... 33 对战界面 .......................................................................................................... 34 聊天界面 ......................
它的动态行 为 ,在面向对象 分析和面向 对象设计中 , 通常把对象 的操作称为 服务或方法 。 表示 为有助于读 者理解对象 的概念,图 形象地描 绘了具有 3个操作的对 象。 看了图 之后,读者可能会 联想到一台 录 音机。 确实 , 可以用一台 录音机比喻 一个对象, 通俗地说明 对象的某些 特点。 当使用一台 录音机的时 候,总是通过按 键来