如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
一、实践目标:1.掌握HYPERLINK"http://mxcyk.com/?tag=Java"JavaGHYPERLINK"http://mxcyk.com/?tag=UI"UI界面设计2.掌握鼠标响应事件(MouseMotionListener)二、实践内容:设计一个简单的HYPERLINK"http://mxcyk.com/?tag=五子棋"五子棋程序,能够实现五子棋下棋过程。如下图所示1.五子棋棋盘类HYPERLINK"http://mxcyk.com/?post=162"部分源代码如下:项目全部源代码http://mxcyk.com/?post=162packagecn.edu.ouc.fiveChess;HYPERLINK"http://mxcyk.com/?post=162"importjava.awt.Color;importjava.awt.Cursor;importjava.awt.Dimension;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Image;importjava.awt.RadialGradientPaint;importjava.awt.RenderingHints;importjava.awt.Toolkit;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjava.awt.event.MouseMotionListener;importjava.awt.geom.Ellipse2D;importjavax.swing.*;/***五子棋--棋盘类*/publicclassChessBoardextendsHYPERLINK"http://mxcyk.com/?tag=JPanel"JPanelimplementsMouseListener{publicstaticfinalintMARGIN=30;//边距publicstaticfinalintGRID_SPAN=35;//网格间距publicstaticfinalintROWS=15;//棋盘行数publicstaticfinalintCOLS=15;//棋盘列数Point[]chessList=newPoint[(ROWS+1)*(COLS+1)];//初始每个数组元素为nullbooleanisBlack=true;//默认开始是黑棋先booleangameOver=false;//游戏是否结束intchessCount;//当前棋盘棋子的个数intxIndex,yIndex;//当前刚下棋子的索引Imageimg;Imageshadows;Colorcolortemp;publicChessBoard(){//setBackground(Color.blue);//设置背景色为橘黄色img=Toolkit.getDefaultToolkit().getImage("board.jpg");shadows=Toolkit.getDefaultToolkit().getImage("shadows.jpg");addMouseListener(this);addMouseMotionListener(newMouseMotionListener(){publicvoidmouseDragged(MouseEvente){}publicvoidmouseMoved(MouseEvente){intx1=(e.getX()-MARGIN+GRID_SPAN/2)/GRID_SPAN;//将鼠标点击的坐标位置转成网格索引inty1=(e.getY()-MARGIN+GRID_SPAN/2)/GRID_SPAN;//游戏已经结束不能下//落在棋盘外不能下//x,y位置已经有棋子存在,不能下if(x1<0||x1>ROWS||y1<0||y1>COLS||gameOver||findChess(x1,y1))setCursor(newCursor(Cursor.DEFAULT_CURSOR));//设置成默认状态elsesetCursor(newCursor(Cursor.HAND_CURSOR));}});}//绘制publicvoidpaintComponent(Graphicsg){super.paintComponent(g);//画棋盘intimgWidth=