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. python------函数嵌套及作用域链

    1.三元运算if条件成立的结果 if 条件 else 条件不成立的结果例如: a=20 b=10 c=a if a>b else b print(c) 2.命名空间 全局命名空间:创建的存储&q ...

  2. 剑指OFFER——顺时针打印矩阵

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8 ...

  3. IIS 发布 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”

    IIS上部署MVC网站,打开后500错误:处理程序"ExtensionlessUrlHandler-Integrated-4.0"在其模块列表中有一个错误模块"Manag ...

  4. postman参数为Json数据结构

    本文主要postman字段为Json结构时的操作说明 本文以订单发货为例,根据接口文档去设计 用户下单接口字段如图: 有两种方式可以将字段Json数据传递: 下图为接口字段规则: 接口为post请求方 ...

  5. C#高级编程:泛型优点和特性

    泛型是CLR 2.0的一个新特性,在CLR 1.0中,要创建一个灵活的类或方法,但该类或方法在编译期间不知道使用什么类,就得以Object类为基础.而Object在编译期间没有类型安全性,因此必须进行 ...

  6. MySQL 内建函数

    日期相关 mysql> select curdate(),curtime(),now(),unix_timestamp(),week('2017-07-24'),year('2017-07-24 ...

  7. vim 基本编辑操作

    一.光标跳转到指定行 1.在命令模式下,跳转到指定行  :n   (n为行号) 2.命令行加参数 vim +n fileName 3.命令行加参数 vim + fileName 光标移至文件底部 4. ...

  8. Shrio授权验证详解

    所谓授权,就是控制你是否能访问某个资源,比如说,你可以方位page文件夹下的jsp页面,但是不可以访问page文件夹下的admin文件夹下的jsp页面. 在授权中,有三个核心元素:权限,角色,用户. ...

  9. 阿里云ECS部署ES

    背景 最近越来越多的公司把业务搬迁到云上,公司也有这个计划,自己抽时间在阿里云和Azure上做了一些小的尝试,现在把阿里云上部署ES和kibana记录下来.为以后做一个参考,也希望对其他人有帮助. 这 ...

  10. Eclipse关闭项目

    Eclipse 关闭项目 为什么要关闭项目? Eclipse 工作空间包含了多个项目.一个项目可以是关闭或开启状态. 项目打开过多影响有: 消耗内存 占用编译时间:在删除项目.class 文件(Cle ...