我想知道用Java编写的五子棋怎么判断输赢
1个回答
展开全部
看坐标的位置x轴不变Y轴++ 或-- 他们的颜色一样的 数量>=5 就赢了; //横向
Y轴不变X轴++ 或-- 他们的颜色一样的 数量>=5就赢了; //纵向
X轴++ Y轴-- 或X轴--Y轴++ 他们颜色一样 数量>=5就赢了;
X轴++ Y轴++ 或X轴--Y轴-- 他们颜色一样数量>=5就赢了;//斜向
我也才看完视频教程:
代码:先把每个点放入2维数组里 定义一个 chess[x][y]
//这里的x ,y是用mouseclick监听他的x,y 用arg0.getY() , arg0.getY() 方法取到的 值
定义一个boolean类判断是否赢 flag
// 横向
boolean flag = false; //一开始不赢
int i1 = 1; //用他来循环第几个棋子
int count1 = 1; //用它来计数有多少个棋子连起来
while(chess[x][y] == chess[x + i][y]){
i1++;
count1 ++;
}
while(chess[x][y] == chess[x - i][y]) {
i1++;
count1 ++;
}
if(count1 >= 5){ flag = true; } //棋子>=5就赢了 flag为true
//纵向
int i2 = 1;
int count2 = 1;
while(chess[x][y] == chess[x][y + i]){
i2++;
count2 ++;
}
while(chess[x][y] == chess[x][y - i]) {
i2++;
count2 ++;
}
if(count2 >= 5){ flag = true; }
//斜上
int i3 = 1;
int count3 = 1;
while(chess[x][y] == chess[x + i][y - i]){
i3++;
count3 ++;
}
while(chess[x][y] == chess[x - i][y + i]) {
i3++;
count3 ++;
}
if(count3 >= 5){ flag = true; }
//斜下
int i4 =1;
int count4 = 1;
while(chess[x][y] == chess[x + i][y + i]){
i4++;
count4 ++;
}
while(chess[x][y] == chess[x - i][y - i]) {
i4++;
count4 ++;
}
if(count4 >= 5){ flag = true; }
希望能帮到你,给你启发。
还有什么疑问就自己去电驴上搜索 李兴华五子棋教学视频,里面吧方法和在一起写了一个简单的,不过这个很容易看懂。
Y轴不变X轴++ 或-- 他们的颜色一样的 数量>=5就赢了; //纵向
X轴++ Y轴-- 或X轴--Y轴++ 他们颜色一样 数量>=5就赢了;
X轴++ Y轴++ 或X轴--Y轴-- 他们颜色一样数量>=5就赢了;//斜向
我也才看完视频教程:
代码:先把每个点放入2维数组里 定义一个 chess[x][y]
//这里的x ,y是用mouseclick监听他的x,y 用arg0.getY() , arg0.getY() 方法取到的 值
定义一个boolean类判断是否赢 flag
// 横向
boolean flag = false; //一开始不赢
int i1 = 1; //用他来循环第几个棋子
int count1 = 1; //用它来计数有多少个棋子连起来
while(chess[x][y] == chess[x + i][y]){
i1++;
count1 ++;
}
while(chess[x][y] == chess[x - i][y]) {
i1++;
count1 ++;
}
if(count1 >= 5){ flag = true; } //棋子>=5就赢了 flag为true
//纵向
int i2 = 1;
int count2 = 1;
while(chess[x][y] == chess[x][y + i]){
i2++;
count2 ++;
}
while(chess[x][y] == chess[x][y - i]) {
i2++;
count2 ++;
}
if(count2 >= 5){ flag = true; }
//斜上
int i3 = 1;
int count3 = 1;
while(chess[x][y] == chess[x + i][y - i]){
i3++;
count3 ++;
}
while(chess[x][y] == chess[x - i][y + i]) {
i3++;
count3 ++;
}
if(count3 >= 5){ flag = true; }
//斜下
int i4 =1;
int count4 = 1;
while(chess[x][y] == chess[x + i][y + i]){
i4++;
count4 ++;
}
while(chess[x][y] == chess[x - i][y - i]) {
i4++;
count4 ++;
}
if(count4 >= 5){ flag = true; }
希望能帮到你,给你启发。
还有什么疑问就自己去电驴上搜索 李兴华五子棋教学视频,里面吧方法和在一起写了一个简单的,不过这个很容易看懂。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询