Java课程设计

课程设计——博客作业五子棋(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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 输出50—100间的所有素数,其中判断一个数是否为素数用函数完成。 2. 设计一个学生成绩管理系统,能输入学生的学号、姓名和成绩等数据,能按成绩从高到低进行排序,并能将排序的结果输出。 提示: 设计一个学生类student,包含三个私有数据成员,即学号sno、姓名sname和成员score; 在学生类student中再设计三个方法 setdata、display和getscore,分别用于完成输入学生信息、输出学生信息、返回某个学生成绩的功能; 定义一个manage类,它有一个student类型的私有数据成员s[num],其中num表示学生人数; 在manage类中分别定义三个方法input、output、sort,分别用于完成输入、输出和排序功能。 3.一个电子产品商店里卖各种电子产品,以下是几种产品类信息。 产品Product 的属性信息包括: 产品号(number) 种类(category) 名称(name) 价格(price ) 计算机Computer除具有产品基本信息外,还可能具有下面的属性: 内存(memory) 处理器(processorName)   笔记本电脑Laptop 除具有产品基本信息外,还可能具有下面的属性: 厚度(thickness) 重量(weight) 根据以上信息,首先抽象出类Product,它派生出子类Computer,Computer又派生出它的子类Laptop,实现以上三个类的定义,定义相应的构造方法,声明一个测试类,生成类对象,并把打印结果显示在屏幕上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值