初学java,今天做五子棋,棋盘已经做好了,但是下子后不能保存,每次点击那个圆都会跑到其他地方去,
初学java,今天做五子棋,棋盘已经做好了,但是下子后不能保存,每次点击那个圆都会跑到其他地方去,请教下大神如何点击后圆就保存在了那个地方?...
初学java,今天做五子棋,棋盘已经做好了,但是下子后不能保存,每次点击那个圆都会跑到其他地方去,请教下大神如何点击后圆就保存在了那个地方?
展开
1个回答
2016-01-13
展开全部
java swing这方面基本都还给老师了,只能给你提供思路了。
首先是存储点的问题,这个关系到你后期判断胜负和禁手。你用的是一个20*20的棋盘,那么你可以用一个map来存储,也可以用二维数组来做,二维数组就是int[][] a=new int[20][20]. 其中a[0][0]代表你鼠标的起始点,a[19][19]代表右下角的点。
然后是坐标以及绘图问题,我就假设你的坐标起点是0,0(如果不是0,0你在做判断的时候要先减去初始点的坐标,绘图时候要加上坐标,这个是你要写的代码)。那么我们现在假设你做的这个棋盘的每个格子的长是3. 那么你鼠标点击之后调用一个getx,gety的方法获得一个point(x.y)。用i=x/3,j=y/3(如果初始值不是0,0该怎么做?用x-初始值再除3).然后把这个数字四舍五入(Math.round)取整。这样求出的是存入上面的数组a[i][j]=颜色。画点的话就是还原上面的过程,在i*3,j*3的位置换一个点,颜色根据上面的值来画。
==》简单的说就是点击点---求出落点是棋盘上的哪个点---根据这个点的位置算出要画圆的位置,画园---把这个点的位置以及颜色存储到数组。
多给你说下吧。你做这个程序。
首先要布局,就是你上面的那个棋盘以及各个按钮。
其次,就是画点,上面我和你说了怎么画点。我记得应该是有个专门的鼠标点击的方法,上面的那些写到点击方法里面。
然后是判断胜负,胜负你要专门写个方法来判断胜利,这个要在鼠标点击方法里面调用,每次点击都要调用依次。
其他的一些功能,比如投降,缓旗你就别写了,期末作业你要自己写就是浪费时间,而且socket那一堆东西够你受的,要交作业的话真心劝你抄一份吧,自己好好改改。
首先是存储点的问题,这个关系到你后期判断胜负和禁手。你用的是一个20*20的棋盘,那么你可以用一个map来存储,也可以用二维数组来做,二维数组就是int[][] a=new int[20][20]. 其中a[0][0]代表你鼠标的起始点,a[19][19]代表右下角的点。
然后是坐标以及绘图问题,我就假设你的坐标起点是0,0(如果不是0,0你在做判断的时候要先减去初始点的坐标,绘图时候要加上坐标,这个是你要写的代码)。那么我们现在假设你做的这个棋盘的每个格子的长是3. 那么你鼠标点击之后调用一个getx,gety的方法获得一个point(x.y)。用i=x/3,j=y/3(如果初始值不是0,0该怎么做?用x-初始值再除3).然后把这个数字四舍五入(Math.round)取整。这样求出的是存入上面的数组a[i][j]=颜色。画点的话就是还原上面的过程,在i*3,j*3的位置换一个点,颜色根据上面的值来画。
==》简单的说就是点击点---求出落点是棋盘上的哪个点---根据这个点的位置算出要画圆的位置,画园---把这个点的位置以及颜色存储到数组。
多给你说下吧。你做这个程序。
首先要布局,就是你上面的那个棋盘以及各个按钮。
其次,就是画点,上面我和你说了怎么画点。我记得应该是有个专门的鼠标点击的方法,上面的那些写到点击方法里面。
然后是判断胜负,胜负你要专门写个方法来判断胜利,这个要在鼠标点击方法里面调用,每次点击都要调用依次。
其他的一些功能,比如投降,缓旗你就别写了,期末作业你要自己写就是浪费时间,而且socket那一堆东西够你受的,要交作业的话真心劝你抄一份吧,自己好好改改。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询