16,在读,初学,只整出个这?

#include<iostream>//已用编程时间(不算纸上规划):7h50min
using namespace std;
int main()
{
int c,win=0;//用try修正错误
cout << "输入棋盘长,应为三到十的整形" << endl;
cin >> c;
const int X=c+1;
cout << "输入棋盘宽,规则同上"<< endl;
cin >> c;
const int Y=c+1;
int ch [Y][X];
int ba [Y][X];
int j=0,i=0;
for(i=0;i<Y;i++)
for(j=0;j<X;j++)
ch [i][j]=0;
for(i=0;i<Y;i++)
for(j=0;j<X;j++)
ba [i][j]=0;
cout << "是否快速布棋?请输入对应整形代号,若无则直接进入手动布棋" << endl;//目前仅支持快速布棋
cout << "已支持:" << endl;
cout <<"1.经典中国象棋9*8" << endl;//拓展部分
label:
cin >> c;//此前应用try修正错误,此后应加入while判断
switch (c)
{
case 1://将来要改成为:" << c <<endl;
ch [0][0]=-7;//0123456789换行0123456789……
ch [0][3]=-2;
ch [0][X-4]=2;
ch [0][X-1]=7;
ch [1][0]=-3;
ch [1][2]=-4;
ch [1][X-3]=4;
ch [1][X-1]=3;
ch [2][0]=-5;
ch [2][3]=-2;
ch [2][X-4]=2;
ch [2][X-1]=5;
ch [3][0]=-6;
ch [3][X-1]=6;
ch [4][0]=-1;
ch [4][3]=-2;
ch [4][X-4]=2;
ch [4][X-1]=1;
ch [Y-1][0]=-7;
ch [Y-1][3]=-2;
ch [Y-1][X-4]=2;
ch [Y-1][X-1]=7;
ch [Y-2][0]=-3;
ch [Y-2][2]=-4;
ch [Y-2][X-3]=4;
ch [Y-2][X-1]=3;
ch [Y-3][0]=-5;
ch [Y-3][3]=-2;
ch [Y-3][X-4]=2;
ch [Y-3][X-1]=5;
ch [Y-4][0]=-6;
ch [Y-4][X-1]=6;
ba [4][1]=-1;
ba [4][X-2]=1;
cout << "成功" << endl;
goto label;
default:
int A,B,T;
cout << "角色表输入,行列任意一个为负数时退出" << endl;
do//异常数据未处理
{
cout << "输入种" << endl;
cin >> T;
cout << "输入行" << endl;
cin >> A;
cout << "输入列" << endl;
cin >> B;
ch [B][A]=T;
cout << "成功" << endl;
}
while(A>=0&&B>=0);
}
char op [Y][X];//未开发废弃
int s;//边,右先(算筹中负数为黑筹)
int x,y,t,a,b,ty,cheng;
s=1;
win=0;
lablee://从while改为for再改成label
//未被执行
op [Y][X]=ch [Y][X];//暂时废弃
for(i=0;i<Y;i++)//TM的这个累加器整了我近两半个小时
{
for(j=0;j<X;j++)
cout << ch [i][j] << "|";
cout << endl;
}
cout << "请输入选子横坐标" << endl;
cin >> x;
cout << "请输入选子纵坐标" << endl;
cin >> y;
if(x<=X && x>=0 && y<=Y && y>=0)
{
t=ch [y][x];
if((t>0 && s>0)||(t<0 && s<0))
{
cout << "请输入您的目标格横坐标" << endl;
cin >> a;
cout << "请输入您的目标格纵坐标" << endl;
cin >> b;
if(a!=x||b!=y)
{
if(a<=X && a>=0 && b<=Y && b>=0)
cheng=1;
else
cheng=0;//与后面的无意义链接
switch(cheng)
{
case 1://凭啥if可以正常用而swich非要常量表达式?
ty=ch [b][a];
if((ty<=0 && s>0)||(ty>=0 && s<0))
{
ch[b][a]=ch[y][x];
ch[y][x]=0;
cout << "移动!" << endl;
switch(s){
case 1:{
s=-1;
cout<<"左边"<<endl;
break;
}
default:{
s=1;
cout<<"右边"<<endl;
}
}
switch(ty)
{
case 1:
win=-1;
case -1:
win=1;
default:
cout << "游戏继续" << endl;
}
}
else
cout << "同类!" << endl;
// switch(1)
// {
// case(ty=t):
//
// }
break;
default://这里感觉怪怪的
cout << "坐标错误!强制换边" << endl;
}
}
// else
// cout << "范围错误!" << endl;
}
else{
cout << "阵营错误!" <<endl;
win=0;
}
}
else{
cout << "坐标错误" << endl;
win=0;
}//输出被埋伏笔了,这个do是真的烦,找不到问题但是多加一个框就好了也不知道是为啥
// if(win=0)
cout<<"边为"<<s<<endl;
if(win!=0){
cout << "胜利一方是" << win << endl;
cout << "Hello World!" << endl;//你还留着这一段呢?
return 0;
}
goto lablee;
//循环,摆烂了
}