初学java写的简单五子棋代码,大神帮看看哪儿错了,用windows可以运行,但是边界会出错。

importjava.util.*;publicclass五子棋{publicstaticvoidmain(Stringargs[]){charqipan[][]=new... import java.util.*;
public class 五子棋
{
public static void main(String args[])
{
char qipan[][] = new char[11][11];
for(int i=0;i<11;i++)
{
for(int j=0;j<11;j++)
{
qipan[i][j] = '□';
System.out.print(qipan[i][j]);
}
System.out.println(' ');
}
Scanner X = new Scanner(System.in);
for(int m = 0;;m++)
{
System.out.print("请输入要放置棋子的行列数:");
int a=X.nextInt();
int b=X.nextInt();
if(qipan[a][b] =='□')
{
qipan[a][b] = '●' ;
}else
{
System.out.println("请重新放置");
continue;
}
Random rand = new Random();
int k=0;
while(k>=0)
{
int r1=rand.nextInt(11);
int r2=rand.nextInt(11);
if(qipan[r1][r2] == '□')
{
qipan[r1][r2] = '○';
break;
}else
{
k++;
}
}
for(int i=0;i<11;i++)
{
for(int j=0;j<11;j++)
{
System.out.print(qipan[i][j]);
}
System.out.println(' ');
}
for(int f=0;f<11;f++)
{
for(int g=0;g<11;g++)
{
if(qipan[f][g]!='□')
{
if(qipan[f][g]=='●')
{
int d=0;
while(qipan[f][g]=='●')
{
g++;
d++;
if(d==5)
{
System.out.println("黑棋胜");
return;
}
}
int z=0;
while(qipan[f][g-d]=='●')
{
f++;
z++;
if(z==5)
{
System.out.println("黑棋胜");
return;
}
}
int x=0;
int v=f-z,c=g-d;
while(qipan[v][c]=='●')
{
v++;
c++;
x++;
if(x==5)
{
System.out.println("黑棋胜");
return;
}
}
int s=0,h=v-x,o=c-x;
while(qipan[h][o]=='●')
{
h++;
o--;
s++;
if(s==5)
{
System.out.println("黑棋胜");
return;
}
}
}
}
}
}
}
}
}
就是用windows的cmd那个可以运行,但是棋子放边界会出错。
展开
 我来答
star96201
2012-11-25 · TA获得超过1261个赞
知道小有建树答主
回答量:863
采纳率:50%
帮助的人:599万
展开全部
是的,数组下标越界。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式