1.团队博客地址:

http://www.cnblogs.com/yzb123/p/7063424.html

2.个人负责模块或任务说明

  • 游戏初始化,清除棋盘上的棋子
  • 鼠标监听器
  • 棋子落棋
  • 判断胜负

3.自己的代码提交记录截图

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

鼠标监听器:
this.CG= new CheseGame();
addMouseListener(CG);
add(CG);
鼠标点击:
public void mouseClicked(MouseEvent me) { //throw new UnsupportedOperationException("Not supported yet.");}//鼠标点击
public void mouseEntered(MouseEvent me) { // throw new UnsupportedOperationException("Not supported yet.");}//鼠标刚进入组件的时候调用(只调用一次)
鼠标释放(获取鼠标x,y的坐标且确定黑白子):
public void mousePressed(MouseEvent me) {//鼠标释放
// throw new UnsupportedOperationException("Not supported yet.");
if(winner == 0)
{
x = me.getX();//获取鼠标的X坐标位置
y = me.getY();//获取鼠标的y坐标位置
chb1.setEnabled(false);
chb2.setEnabled(false);
}
x = (int)(x/30)-1;
y = (int)((y-15)/30)-1;
if(x>=0&&x<=19&&y>=0&&y<=19)
{
if(flag == 1&&map[x][y] == 0)
{
map[x][y] = 1;
if(win(x,y))
winner = 1;
flag = 2;
}
else
if(flag == 2&&map[x][y] == 0)
{
map[x][y] = 2;
if(win(x,y))
winner = 2;
flag = 1;
}//在当前位子构造棋子
}
repaint();
}
public void mouseReleased(MouseEvent me) {//当鼠标释放的时候,调用该函数
// throw new UnsupportedOperationException("Not supported yet.");
}
public void mouseExited(MouseEvent me) {//当鼠标离开的时候,调用该函数
// throw new UnsupportedOperationException("Not supported yet.");
}
判断胜负:
Boolean win(int x,int y)
{
int score = 1;
for(int i = x;i < x+4;)//横向x++
{
if(i == 19)
break;
if(map[i][y] != map[++i][y])
break;
score++;
}
for(int i = x;i > x-4;)//横向x--
{
if(i == 0)
break;
if(map[i][y] != map[--i][y])
break;
score++;
}
if(score >= 5)
return true;
else
score = 1;
for(int j = y; j < y+4;)//纵向y++
{
if(j == 19)
break;
if(map[x][j] != map[x][++j])
break;
score++;
}
for(int j = y; j > y-4;)//纵向y--
{
if(j == 0)
break;
if(map[x][j] != map[x][--j])
break;
score++;
}
if(score >= 5)
return true;
else
score = 1;
for(int i = x;i < x+4;)//斜向x++、y++
for(int j = y;j < y+4;)
{
if(i == 19 || y == 19)
{i = x+4; break;}
if(map[i][j] != map[++i][++j])
{
i = x+4;
break;
}
score++;
}
for(int i = x;i > x-4;)//斜向x--、y--
for(int j = y;j > y-4;)
{
if(i == 0||j==0)
{i = x-4; break;}
if(map[i][j] != map[--i][--j])
{
i = x-4;
break;
}
score++;
}
if(score >= 5)
return true;
else
score = 1;
for(int i = x;i > x-4;)//斜向x--、y++
for(int j = y;j < y+4;)
{
if(i==0 || j==19)
{ i = x-4;break;}
if(map[i][j] != map[--i][++j])
{
i = x-4;
break;
}
score++;
}
for(int i = x;i < x+4;)//斜向x++、y--
for(int j = y;j > y-4;)
{
if(i==19||j==0)
{ i = x+4;break;}
if(map[i][j] != map[++i][--j])
{
i = x + 4;
break;
}
score++;
}
if(score >= 5)
return true;
else
return false;
}

5.课程设计感想

在编程时无法实现悔棋与网络连接功能的实现。在设计悔棋时想用另一个数组储存棋子的位置,然后再写一个back函数进行返回,尝试过多次还是没有实现。感觉水平不够还是选低等级的题目来写,高等级的难度太大了。

JAVA课程设计+五子棋(个人博客)的更多相关文章

  1. JAVA课程设计+购物车 个人博客

    1. 团队课程设计博客链接 2.个人负责模块或任务说明 将数据库中已经存在的商品取出,用表格显示到页面中. 实现在商品页面的购买,直接弹出消息框,输出价格,实现购买. 实现在商品页面进行添加购物车,并 ...

  2. Java课程设计——计算器团队博客

    1.团队名称.团队成员介绍(需要有照片) 1.1团队名称 707 1.2团队成员介绍 谢元将:组长 罗登宇:组员 王华俊:组员 2. 项目git地址 谢元将 罗登宇 王华俊 3. 项目git提交记录截 ...

  3. JAVA课程设计-----加减法测试博客

    1.团队成员介绍(一个人做的) 谢季努:网络1513 201521123079 2.项目git地址 3.项目git提交截图 4.项目运行截图 输入答案后点击确认就会出现本次的得分 如果觉得成绩不理想点 ...

  4. Java课程设计 ————五子棋 (个人博客)

    JAVA课程设计 五子棋(博客个人版) •团队课程设计博客链接 http://www.cnblogs.com/mz201521044152/p/7065575.html •个人负责模块或任务说明 1. ...

  5. JAVA课程设计+五子棋(团队博客)

    JAVA课程设计 利用所学习的JAVA知识设计一个五子棋小游戏 1.团队名称.团队成员介绍(菜鸟三人组) 杨泽斌[组长]:201521123049 网络1512 叶文柠[组员]:20152112305 ...

  6. JAVA课程设计+五子棋游戏

    1. 团队课程设计博客链接 http://www.cnblogs.com/yzb123/p/7063424.html 2. 个人负责模块或任务说明 1.在同伴构建好初始框图的情况下,编写一个继承JPa ...

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

    1 团队名称.团队成员介绍 徐璐琳 网络1511班 201521123010 祁泽文 网络1511班 201521123011 张晨晨 网络1511班 201521123009 2 项目git地址 团 ...

  8. JAVA课程设计--------五子棋

    1.团队课程设计博客链接 http://www.cnblogs.com/mz201521044152/p/7065575.html 2.个人负责模块或任务说明 1.重新开始:写一个restartgam ...

  9. java课程设计——算术运算测试个人博客

    1.团队课程设计链接 团队博客:http://www.cnblogs.com/yytx/p/7064790.html 2.个人负责模块 有关排行榜的界面设计和代码编写 3.自己的代码提交记录截图 4. ...

随机推荐

  1. QT server服务端如何判断客户端断开连接

    在QT编程中有时会用到server服务端与客户端进行TCP网络通信,服务端部分代码如下: 1.创建server用于监听客户端套接字 this->server = new QTcpServer(t ...

  2. python----------装饰器应用练习

    1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码注意:从文件中读出字符串形式的字典,可以用eval('{"name& ...

  3. 【每天一道算法题】Lucky String

    A string s is LUCKY if and only if the number of different characters in s is a fibonacci number. Gi ...

  4. Discuz 7.2 faq.php漏洞分析

    漏洞发生在页面faq.php中,源码如下: elseif($action == 'grouppermission') {ksort($gids); $groupids = array(); forea ...

  5. Java企业微信开发_07_素材管理之上传本地临时素材文件

    一.本节要点 1.临时素材有效期 media_id是可复用的,同一个media_id可用于消息的多次发送(3天内有效) 2.上传文件时的http请求里都有啥 具体原理可参看: 为什么上传文件的表单需要 ...

  6. 关于Filter

    [1].关于Filter Filter简介: Filter翻译为中文是过滤器的意思. Filter是JavaWeb的三大web组件之一Servlet.Filter.Listener Filter的作用 ...

  7. python selenium无法最大化窗口

    问题原因:报错提示cannot get automation extension根据各种调试,发现是对应版本不对,上图发现selenium的版本是57.0.2987.133,需要driver为2.29 ...

  8. 基于spring mvc的图片验证码实现

    本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) publ ...

  9. Spring同mybatis整合讲义(事物)

    1.mybatis的作用. 它是一个数据持久化的解决方案,它是一个ORM的框架. 2.Spring的作用? 备注:将本地jar包拷贝至本地的maven仓库里:oracle的jar包需自己发布到mave ...

  10. [2017-08-21]Abp系列——如何使用Abp插件机制(注册权限、菜单、路由)

    本系列目录:Abp介绍和经验分享-目录 Abp的模块系统支持插件机制,可以在指定目录中放置模块程序集,然后应用程序启动时会搜索该目录,加载其中所有程序集中的模块. 如何使用这套机制进行功能插件化开发? ...