Java课程设计

原文链接:http://www.cnblogs.com/z1450429983/p/7052856.html

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

•团队课程设计博客链接

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

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

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

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

    1110007-20170622091145929-1821892570.png

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

    (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直接在棋盘上画出对应大小的圆
不过由于是直接绘制的,棋子的效果看起来并不大美观,而且有点空缺。
1110007-20170622094327695-1013067043.png
改进的话,希望可以把棋子改成棋子的图片,下棋的时候直接覆盖上去。
(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,并通知系统重新绘制
具体效果如下
1110007-20170622093108007-1723824940.png
1110007-20170622093154960-891971795.png
(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来判断是否在悔棋过程中。
具体效果如下:
1110007-20170622122004976-230898579.png
1110007-20170622122019570-1062506284.png

•课程设计感想

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

转载于:https://www.cnblogs.com/z1450429983/p/7052856.html

展开阅读全文
博主设置当前文章不允许评论。

没有更多推荐了,返回首页