
正文
java判断输赢的代码 java判断用户输入的数字是否为完数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
一段java五子棋判断输赢的代码,谁能帮我分析以下它是怎么判断的?
每一个for是一个方向java判断输赢的代码,横竖4个斜方向
然后数到一个指定颜色java判断输赢的代码的位置的话flag累加1java判断输赢的代码,如果数到5就说明赢了java判断输赢的代码,五子棋嘛
如果数到一个非指定颜色的位置(这时肯定没有数到5java判断输赢的代码,不然就返回了),就把flag清0,不然不连续的5个也判断为赢就搞笑了
相关问答
Q1: 我想知道用Java编写的五子棋怎么判断输赢
看坐标的位置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; }
希望能帮到你,给你启发。
还有什么疑问就自己去电驴上搜索 李兴华五子棋教学视频,里面吧方法和在一起写了一个简单的,不过这个很容易看懂。
Q2: 象棋绝杀java后端怎么判断
象棋绝杀java后端判断输赢的方法有很多java判断输赢的代码,可以使用搜索算法java判断输赢的代码,比如极大极小值算法、蒙特卡洛树搜索算法等。可以使用棋型判断java判断输赢的代码,比如五连子、六六长连等java判断输赢的代码,可以使用规则来判断,比如棋子落子后,如果有一方棋子被吃掉,则另一方获胜等。
Q3: 玩家先输入一个数字,确定后系统在输入,按照游戏规则判断输赢的java代码怎么
Scanner sc = new Scanner(System.in);//控制台输入数字
String i = sc.next();
int a = 0;
try {
a = Integer.parseInt(i);
System.out.println(a);
} catch (Exception e) {
System.out.println("输入的不是数字!请重新输入!");
}
double d = Math.random()*10;//随机生成0-10之间的数
System.out.println(d);
玩家输入一个数字使用控制台输入Scannerjava判断输赢的代码,系统输入则用Math随机生成数字java判断输赢的代码,既然数字都有java判断输赢的代码了,再根据需要的游戏规则去判断两个数字即可。
Q4: java程序设计,五子棋判断输赢
#define MAX_LINE 15
#define MAX_ROW 15
int Map[MAX_LINE][MAX_ROW];
int CheckWin() //返回0表示都没赢,返回1表示白棋赢,返回2表示黑棋赢
{
int i,j,k;
int tmp;
/* 判断所有横行 */
for(i=0;iMAX_LINE;i++)
{
for(j=0;jMAX_ROW-5;j++)
{
tmp=Map[i][j];
if( tmp != 0)
{
for(k=1;k5;k++)
if(Map[i][j+k] != tmp) /* 判断Map[i][j+0]到Map[i][j+4]是否都相等(且不等于0) */
break;
if(k==6)
return tmp;
}
}
}
/* 判断所有纵行 */
for(i=0;iMAX_LINE-5;i++)
{
for(j=0;jMAX_ROW;j++)
{
tmp=Map[i][j];
if( tmp != 0)
{
for(k=1;k5;k++) /* 判断Map[i+0][j]到Map[i+4][j]是否都相等(且不等于0) */
if(Map[i+k][j] != tmp)
break;
if(k==6)
return tmp;
}
}
}
/* 判断所有斜行(撇) */
for(i=5;iMAX_LINE;i++)
{
for(j=0;jMAX_ROW-5;j++)
{
tmp=Map[i][j];
if( tmp != 0)
{
for(k=1;k5;k++) /* 判断Map[i-0][j+0]到Map[i-4][j+4]是否都相等(且不等于0) */
if(Map[i-k][j+k] != tmp)
break;
if(k==6)
return tmp;
}
}
}
/* 判断所有斜行(捺) */
for(i=0;iMAX_LINE-5;i++)
{
for(j=0;jMAX_ROW-5;j++)
{
tmp=Map[i][j];
if( tmp != 0)
{
for(k=1;k5;k++)
if(Map[i+k][j+k] != tmp) /* 判断Map[i+0][j+0]到Map[i+4][j+4]是否都相等(且不等于0) */
break;
if(k==6)
return tmp;
}
}
}
return 0;
}
Q5: java五子棋源代码判断输赢,希望帮忙指出错误并完善
判断5子连珠的方法
1:X相同
Y等差1
2:Y相同
X等差1
3:XY都等差1
假设你你确实是按照XY做的,那么,你将黑子的XY放在数组(ListINT,INT)里,白子也是。
没落完一子
对数组里的进行排序,先按照X排,然后按照Y排。每次只需要排最后一个就好了(可以不用LIST,其他方式也行。)。
判断结果
1:是否有5个差为1/0的X
2:是否有5个差为1/0的Y
1
2都满足,即获胜。
关于java判断输赢的代码和java判断用户输入的数字是否为完数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








