Java课程设计

课程设计——博客作业五子棋(201521123009 张晨晨)

•团队课程设计博客链接

JAVA课设--五子棋--团队博客

•个人负责模块或任务说明

  • 五子棋的绘制
  • 棋盘的绘制
  • 重新开始功能的实现
  • 悔棋功能的实现

•自己的代码提交记录截图

•自己负责模块或任务详细说明

(1)五子棋的绘制,棋盘的绘制

public void paint(Graphics g){
    	 setBackground(new Color(209, 167, 78));
    	for(int i=0;i<row;i++){
    		g.setColor(Color.BLACK);
    		g.drawLine(20, 20+i*gap, 640-20, 20+i*gap); 
    	}
    	for(int i=0;i<line;i++){
    		g.setColor(Color.BLACK);
    		g.drawLine(20+i*gap, 20, 20+i*gap, 640-20);
    	}
    	for(int i=0;i<Chess.length;i++){
    		for(int j=0;j<Chess[i].length;j++){
    			if(Chess[i][j]=='1'){
    				g.setColor(Color.WHITE);
    				g.fillOval(5+i*gap, 5+j*gap, 30, 30);
    				g.drawOval(5+i*gap, 5+j*gap, 30, 30);
    				//a++;
    				
    			}
    			if(Chess[i][j]=='2'){
    				g.setColor(Color.BLACK);
    				g.fillOval(5+i*40, 5+j*40, 30, 30);
    				g.drawOval(5+i*40, 5+j*40, 30, 30);
    				//a++;
    			}
    		}
    	}

我们棋盘的绘制选择直接绘制,棋子就是通过setColor,fillOval,.drawOval直接在棋盘上画出对应大小的圆
不过由于是直接绘制的,棋子的效果看起来并不大美观,而且有点空缺。

改进的话,希望可以把棋子改成棋子的图片,下棋的时候直接覆盖上去。
(2)重新开始功能的实现

public void restartGame(){    
		for(int i=0;i<Chess.length;i++){
			for(int j=0;j<Chess[i].length;j++){
				Chess[i][j]='0';
			}
		} 
	       isBlack=true;  
	       gameOver=false;  
	       repaint();  
	   } 

要重新开始,则使棋子清空,使初始值为黑子,gameOver为false,并通知系统重新绘制
具体效果如下


(3)悔棋功能的实现

 public void goback(){  
		 flag = true;
		 System.out.println("清除"+click_x+click_y);
		 int chess_x = Math.round((float)(click_x-20)/gap);
		 int chess_y = Math.round((float)(click_y-20)/gap);
		 click_X = chess_x;
		 click_Y = chess_y;
		 repaint();
		 Chess[chess_x][chess_y] = '0';
	  } 

建立flag来判断是否在悔棋过程中。
具体效果如下:

•课程设计感想

这次课程设计对我来说是一次很大的挑战,因为我能力有限,以前也只是仅限于在eclipse的运行界面直接运行。第一次尝试用JAVA程序做出一个五子棋游戏来,并且努力把它做完了。是一次很大的挑战,同时对我来说收获也很多。
我们在做出简单的棋盘后就会想要去更丰富自己的功能,让自己完善。添加联机对战,人机对战,选择自己的执子方等等。并且实现对界面的优化,使界面美观。

posted @ 2017-06-22 09:36  张晨晨  阅读(410)  评论(0编辑  收藏  举报