JAVA课程设计+五子棋(个人博客)
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课程设计+五子棋(个人博客)的更多相关文章
- JAVA课程设计+购物车 个人博客
1. 团队课程设计博客链接 2.个人负责模块或任务说明 将数据库中已经存在的商品取出,用表格显示到页面中. 实现在商品页面的购买,直接弹出消息框,输出价格,实现购买. 实现在商品页面进行添加购物车,并 ...
- Java课程设计——计算器团队博客
1.团队名称.团队成员介绍(需要有照片) 1.1团队名称 707 1.2团队成员介绍 谢元将:组长 罗登宇:组员 王华俊:组员 2. 项目git地址 谢元将 罗登宇 王华俊 3. 项目git提交记录截 ...
- JAVA课程设计-----加减法测试博客
1.团队成员介绍(一个人做的) 谢季努:网络1513 201521123079 2.项目git地址 3.项目git提交截图 4.项目运行截图 输入答案后点击确认就会出现本次的得分 如果觉得成绩不理想点 ...
- Java课程设计 ————五子棋 (个人博客)
JAVA课程设计 五子棋(博客个人版) •团队课程设计博客链接 http://www.cnblogs.com/mz201521044152/p/7065575.html •个人负责模块或任务说明 1. ...
- JAVA课程设计+五子棋(团队博客)
JAVA课程设计 利用所学习的JAVA知识设计一个五子棋小游戏 1.团队名称.团队成员介绍(菜鸟三人组) 杨泽斌[组长]:201521123049 网络1512 叶文柠[组员]:20152112305 ...
- JAVA课程设计+五子棋游戏
1. 团队课程设计博客链接 http://www.cnblogs.com/yzb123/p/7063424.html 2. 个人负责模块或任务说明 1.在同伴构建好初始框图的情况下,编写一个继承JPa ...
- JAVA课设--五子棋--团队博客
1 团队名称.团队成员介绍 徐璐琳 网络1511班 201521123010 祁泽文 网络1511班 201521123011 张晨晨 网络1511班 201521123009 2 项目git地址 团 ...
- JAVA课程设计--------五子棋
1.团队课程设计博客链接 http://www.cnblogs.com/mz201521044152/p/7065575.html 2.个人负责模块或任务说明 1.重新开始:写一个restartgam ...
- java课程设计——算术运算测试个人博客
1.团队课程设计链接 团队博客:http://www.cnblogs.com/yytx/p/7064790.html 2.个人负责模块 有关排行榜的界面设计和代码编写 3.自己的代码提交记录截图 4. ...
随机推荐
- c# 函数简述
函数是具有独立功能,并且能够重复使用的代码块.函数必须先声明后调用,使用函数使代码更简洁易读. 一.函数的声明与调用 1.声明格式: static 返回类型 函数名(参数类型 参数名称,参数类型 参数 ...
- 【物联网云端对接-3】通过MQTT协议与微软Azure IoT Hub进行云端通信
在上一篇文章<通过MQTT协议与阿里云物联网套件进行云端通信>中,我们介绍了通过MQTT对接阿里云的物联网套件.其实同样的代码,稍加调整也可以对接到微软Azure IoT hub上,不过需 ...
- 高级映射,查询缓存和与spring整合
一.高级映射 -------一对一 这里以订单查询为例,其中有一个外键为user_id,通过这个关联用户表.这里要实现的功能是这个两个表关联查询,得到订单的信息和部分user的信息.order表结构如 ...
- 【学习笔记】深入理解超时调用(setTimeout)和间歇调用(setInterval)
超时调用(setTimeout):在指定的毫秒数后调用函数或计算表达式. setTimeout(func, 1000); // func执行的函数,1000毫秒 间歇调用(setInterval):按 ...
- MySQl数据库常用的DOS命令
MySQl数据库常用的DOS命令.. 这是第一部分.. 数据库的连接信息:jdbc:mysql://localhost:3306/shxtcom.mysql.jdbc.Driver /*jdbc:sq ...
- 关于springmvc接受简单参数和List集合数据的实现
首先要创建一个搭建一个springmvc的工程,至于如何搭建这里就不说了.给出比较重要的配置,项目目录结构如下,弄的比较简单,因为最近遇到一个需要传递List集合数据的问题,所以就当做实验. web. ...
- zetcode :: First programs in PyQt5
练习代码,详见网站 http://zetcode.com/gui/pyqt5/firstprograms/ import sys from PyQt5 import QtWidgets from Py ...
- 浅谈服务器对SEO的影响,该如何选择服务器?
对于SEO,很多人想的都是怎么做好网站的内部优化,做好外部推广.其实SEO没什么技术含量,到网上搜别人的心得看,千篇一律,都是翻来覆去的说一样的东西,就像吃不同人做的馒头,吃来吃去就是一个味道.笔者经 ...
- python+selenium自动化软件测试(第12章):Python读写XML文档
XML 即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进 行定义的源语言.xml 有如下特征: 首先,它是有标签对组成:<aa></aa> ...
- mysql的索引问题分析
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545 } span. ...