java__含类图__五子棋小游戏.wps
《java__含类图__五子棋小游戏.wps》由会员分享,可在线阅读,更多相关《java__含类图__五子棋小游戏.wps(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 2 2 说明:表 2.2 表 2.2 Chess方法名功能备注ChessPad()初始化棋盘设置棋盘颜色,Void paint(Graphics g)对棋子等图像进行初始化设置棋子大小,颜色等表 1.1 表 1.1 java 源文件及其功能序号文件名主要功能备注1Chess本程序的主函数初始化棋盘2Autoplay实现电脑可以自动下棋分为 8 种情况3Scan扫描整个棋盘记录连在一起的黑白棋子数为判断胜负服务4Sort实现人与电脑有次序的下棋黑棋白棋有序的下5Judge判断人与电脑的胜负可以在文本框中显示胜负结果6Evaluate电脑估计为电脑下棋提供帮助表 2.1 表 2.1 Chess成
2、员变量描述变量类型名称控制棋子颜色inti重新开局ButtonButton请黑棋下子TextFieldtext_1请白棋下子TextFieldtext_2这是第+i+步TextFieldtext_3public void mousePressed(MouseEvent e)鼠标的实践监听单击实践public void paint(Graphics g)画出图像控制图像的大小范围public void mousePressed(MouseEvent e)处理按下鼠标的事件选中下棋的位置public void mouseReleased(MouseEvent e)处理鼠标离开的事件本步下棋结束pu
3、blic void mouseExited(MouseEvent e)处理鼠标离开棋盘时鼠标离开组件不实现任何事件public void mouseClicked(MouseEvent e)处理发生单击的事件实现下棋以及重新开始游戏表 2.3 表 2.3 Autoplay成员变量描述变量类型名称统计玩家的连起来的棋子数intX电脑玩家的连起来的棋子数IntY表 2.4 表 2.4 Autoplay方法名功能备注void autoPlay(int chesspad,int a,int b)分情况实现电脑自动下棋使用 switch 语句分为 8 种情况来下棋表 2.5表 2.5Scan成员变量描述
4、变量类型名称统计棋盘种五个连起来的棋子数数组int shape控制行数inti控制列数intj表 2.6表 2.6 Scan方法名功能备注 void scan(int chesspad,int colour)判断棋盘上连在一起的黑白棋子个数。表 2.7 表 2.7 Sort成员变量描述变量类型名称保存临时变量 inttemp表 2.8 表 2.8 Sort方法名功能备注public void sort(int shape)实现黑白棋子的交替下数组为参数表 2.9 表 2.9 Judge成员变量描述变量类型名称控制行数inti控制列数intj记录连在一起的黑白棋子数intflag表 2.10 表
5、 2.10 Judge方法名功能备注static boolean judge(int a,int color)判断玩家与电脑的游戏胜负使用静态函数,分多钟情况判断表 2.11 表 2.11 Evaluate成员变量描述变量类型名称玩家最可能下的棋子的行数intmax_x玩家最可能下的棋子的列数intmax_y保存最大可能下棋的位置intmax控制行数inti控制列数intj表 2.12 表 2.12 Evaluate方法名功能备注public void evaluate(int shape)电脑用于估计玩家下步棋的走法三、运行结果:三、运行结果:四、源代码:四、源代码:import java.
6、awt.*;import java.awt.event.*;class ChessPad extends Panel implements MouseListener,ActionListener int array=new int1919;Scan scanp=new Scan();Scan scanc=new Scan();AutoPlay autoPlay=new AutoPlay();Evaluate evaluatep=new Evaluate();Evaluate evaluatec=new Evaluate();Sort sort=new Sort();int i=0;int x
7、=-1,y=-1,棋子颜色=1;Button button=new Button(重新开局);TextField text_1=new TextField(请黑棋下子),text_2=new TextField(),text_3=new TextField();ChessPad()setSize(440,440);setLayout(null);setBackground(Color.pink);addMouseListener(this);add(button);button.setBounds(10,5,60,26);button.addActionListener(this);add(t
8、ext_1);text_1.setBounds(90,5,90,24);add(text_2);text_2.setBounds(290,5,90,24);add(text_3);text_3.setBounds(200,5,80,24);for(int i=0;i19;i+)for(int j=0;j19;j+)arrayij=0;for(int i=0;i19;i+)for(int j=0;j19;j+)for(int h=0;h5;h+)scanp.shapeijh=0;scanc.shapeijh=0;text_1.setEditable(false);text_2.setEditab
9、le(false);public void paint(Graphics g)for(int i=40;i=400;i=i+20)g.drawLine(40,i,400,i);for(int j=40;j=400;j=j+20)g.drawLine(j,40,j,400);g.fillOval(97,97,6,6);g.fillOval(337,97,6,6);g.fillOval(97,337,6,6);g.fillOval(337,337,6,6);g.fillOval(217,217,6,6);public void mousePressed(MouseEvent e)int a=0,b
10、=0;if(e.getModifiers()=InputEvent.BUTTON1_MASK)x=(int)e.getX();y=(int)e.getY();ChessPoint_black chesspoint_black=new ChessPoint_black(this);ChessPoint_white chesspoint_white=new ChessPoint_white(this);i+;text_3.setText(这是第+i+步);if(x+5)/202|(y+5)/2019|(y-5)/2019)else a=(x+10)/20;b=(y+10)/20;if(arrayb
11、-2a-2=0&棋子颜色=1)this.add(chesspoint_black);chesspoint_black.setBounds(a*20-9,b*20-9,18,18);棋子颜色=棋子颜色*(-1);arrayb-2a-2=1;if(Judge.judge(array,1)text_1.setText(黑棋赢!);棋子颜色=2;removeMouseListener(this);else text_1.setText();if(i2&棋子颜色=-1)scanp.scan(array,1);scanc.scan(array,-1);sort.sort(scanp.shape);sort
12、.sort(scanc.shape);evaluatep.evaluate(scanp.shape);evaluatec.evaluate(scanc.shape);棋子颜色=棋子颜色*(-1);this.add(chesspoint_white);if(evaluatep.maxevaluatec.max)text_2.setText(evaluatep.max_x+evaluatep.max_y+evaluatep.max);chesspoint_white.setBounds(evaluatep.max_y+2)*20-9,(evaluatep.max_x+2)*20-9,18,18);
13、arrayevaluatep.max_xevaluatep.max_y=-1;text_1.setText(请黑棋下子);for(int i=0;i19;i+)for(int j=0;j19;j+)for(int h=0;h5;h+)scanp.shapeijh=0;scanc.shapeijh=0;else text_2.setText(evaluatec.max_x+evaluatec.max_y+evaluatec.max);chesspoint_white.setBounds(evaluatec.max_y+2)*20-9,(evaluatec.max_x+2)*20-9,18,18)
14、;arrayevaluatec.max_xevaluatec.max_y=-1;if(Judge.judge(array,-1)text_2.setText(白棋赢!);棋子颜色=2;removeMouseListener(this);else text_1.setText(请黑棋下子);for(int i=0;i19;i+)for(int j=0;j19;j+)for(int h=0;h5;h+)scanp.shapeijh=0;scanc.shapeijh=0;if(i=2&棋子颜色=-1)autoPlay.autoPlay(array,b-2,a-2);this.add(chesspoi
15、nt_white);棋子颜色=棋子颜色*(-1);chesspoint_white.setBounds(autoPlay.y+2)*20-9,(autoPlay.x+2)*20-9,18,18);arrayautoPlay.xautoPlay.y=-1;if(Judge.judge(array,-1)text_2.setText(白棋赢!);棋子颜色=2;removeMouseListener(this);else text_1.setText(请黑棋下子);text_2.setText(autoPlay.x+autoPlay.y);public void mouseReleased(Mous
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java_ 含类图 _ 五子棋 小游戏
限制150内