?? 1.cpp
字號:
#include<iostream.h>
#include<string.h>
/*struct ge{
int cell;
int visit;
};*/
class Fshell
{
public:
Fshell();
//struct ge a[4][4];
int x;
int a[4][4][2];
//int b[4][4][5];
//char c[4][4][4];
input(int a);
char zuijian[40];
void print();
void printstr();
void add();
int ecell(int i,int j);
int fcell(int i,int j);
int tcell(int i,int j);
int ocell(int i,int j);
//void quan(char &b;const ge &a);
};
void Fshell::printstr ()
{
x--;
zuijian[x]='\0';
cout<<zuijian<<endl;
}
void Fshell::add()
{
zuijian[x]='+';
x++;
}
int Fshell::ecell(int i,int j)
{
int p=1,q=1,m=i,n=j;
for(m=0;m<4;m++)
{if (a[m][j][0]==0)
p=0;
}
for(m=0,n=(n+1)%4;m<4;m++)
{if (a[m][n][0]==0)
q=0;
}
if(p&&q)
{for(m=0;m<4;m++)
a[m][j][1]=1;
for(m=0,n=(j+1)%4;m<4;m++)
a[m][n][1]=1;
switch(j)
{
case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='B';x++;break;
case(2):zuijian[x]='A';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}
return 1;//執行存儲結果
}
p=q=1;
for(m=0;m<4;m++)
{if (a[m][j][0]==0)
p=0;
}
for(m=0,n=(j-1+4)%4;m<4;m++)
{if (a[m][j][0]==0)
q=0;
}
if(p&&q)
{for(m=0;m<4;m++)
a[m][j][1]=1;
for(m=0,n=(j-1+4)%4;m<4;m++)
a[m][n][1]=1;
switch(j)
{
case(0):zuijian[x]='B';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='A';x++;zuijian[x]='\'';x++;break;
case(2):zuijian[x]='B';x++;break;
case(3):zuijian[x]='A';x++;break;
default:cout<<"error !"<<endl;
}
return 1;//執行存儲結果
}
p=q=1;
for(n=0;n<4;n++)
{if (a[i][n][0]==0)
p=0;
}
for(n=0,m=(i+1)%4;n<4;n++)
{if (a[i][n][0]==0)
q=0;
}
if(p&&q)
{for(n=0;n<4;n++)
a[i][n][1]=1;
for(n=0,m=(i+1)%4;n<4;n++)
a[i][n][1]=1;
switch(i)
{
case(0):zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='D';x++;break;
case(2):zuijian[x]='C';x++;break;
case(3):zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}
return 1;//執行存儲結果
}
p=q=1;
for(n=0;n<4;n++)
{if (a[i][n][0]==0)
p=0;
}
for(n=0,m=(i-1+4)%4;n<4;n++)
{if (a[m][n][0]==0)
q=0;
}
if(p&&q)
{for(n=0;n<4;n++)
a[i][n][1]=1;
for(n=0,m=(i-1+4)%4;n<4;n++)
a[m][n][1]=1;
switch(i)
{
case(0):zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(2):zuijian[x]='D';x++;break;
case(3):zuijian[x]='C';x++;break;
default:cout<<"error !"<<endl;
}
return 1;//執行存儲結果
}
else
return 0;
}
int Fshell::fcell(const int i,const int j)
{
int p=1,q=1,m=i,n=j;
for(m=0;m<4;m++)//縱行情況
{if (a[m][n][0]==0)
p=0;
}
if(p==1)
{
switch(n)
{
case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='B';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='B';x++;break;
case(2):zuijian[x]='A';x++;zuijian[x]='B';x++;break;
case(3):zuijian[x]='A';x++;zuijian[x]='B';x++;
zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}
for(m=0;m<4;a[m][j][1]=1,m++);
return 1;//執行存儲結果
}
p=1;
for(n=0;n<4;n++)//橫行情況
{if (a[i][n][0]==0)
p=0;
}
if(p==1)
{for(n=0;n<4;n++)
a[i][n][1]=1;
switch(i)
{
case(0):zuijian[x]='C';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='C';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;break;
case(2):zuijian[x]='C';x++;zuijian[x]='D';x++;break;
case(3):zuijian[x]='C';x++;zuijian[x]='D';x++;
zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}
return 1;//執行存儲結果
}
if (a[i][j][0]&&a[(i+1)%4][j][0]&&
a[(i+1)%4][(j+1)%4][0]&&a[i][(j+1)%4][0])//右下方方塊
{ a[i][j][1]=a[(i+1)%4][j][1]=
a[(i+1)%4][(j+1)%4][1]=a[i][(j+1)%4][1]=1;
switch(i)
{
case(0):switch(j)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}break;
case(1):switch(j)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='D';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='D';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;break;
default:cout<<"error !"<<endl;
}break;
case(2):switch(j)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='C';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='C';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;break;
default:cout<<"error !"<<endl;
}break;
case(3):switch(j)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}break;
default:cout<<"error !"<<endl;
}
return 1;
}
if (a[i][j][0]*a[(i+3)%4][j][0]*
a[(i+3)%4][(j+3)%4][0]*a[i][(j+3)%4][0])//左上方方塊
{ a[i][j][1]=a[(i+3)%4][j][1]=
a[(i+3)%4][(j+3)%4][1]=a[i][(j+3)%4][1]=1;
switch((i+3)%4)
{
case(0):switch((j+3)%4)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}break;
case(1):switch((j+3)%4)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='D';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='D';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;break;
default:cout<<"error !"<<endl;
}break;
case(2):switch((j+3)%4)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='C';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='C';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;break;
default:cout<<"error !"<<endl;
}break;
case(3):switch((j+3)%4)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}break;
default:cout<<"error !"<<endl;
}
return 1;
}
if (a[i][j][0]*a[(i+3)%4][j][0]*
a[(i+3)%4][(j+1)%4][0]*a[i][(j+1)%4][0])//右上方方塊
{ a[i][j][1]=a[(i+3)%4][j][1]=
a[(i+3)%4][(j+1)%4][1]=a[i][(j+1)%4][1]=1;
switch((i+3)%4)
{
case(0):switch(j)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}break;
case(1):switch(j)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='D';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='D';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;break;
default:cout<<"error !"<<endl;
}break;
case(2):switch(j)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='C';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='C';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;break;
default:cout<<"error !"<<endl;
}break;
case(3):switch(j)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}break;
default:cout<<"error !"<<endl;
}
return 1;
}
if (a[i][j][0]*a[(i+1)%4][j][0]*
a[(i+1)%4][(j+3)%4][0]*a[i][(j+3)%4][0])//左下方方塊
{ a[i][j][1]=a[(i+1)%4][j][1]=
a[(i+1)%4][(j+3)%4][1]=a[i][(j+3)%4][1]=1;
switch(i)
{
case(0):switch((j+3)%4)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;zuijian[x]='\'';x++;break;
default:cout<<"error !"<<endl;
}break;
case(1):switch((j+3)%4)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='D';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='D';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;break;
default:cout<<"error !"<<endl;
}break;
case(2):switch((j+3)%4)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='C';x++;break;
case(2):zuijian[x]='A';x++;
zuijian[x]='C';x++;break;
case(3):zuijian[x]='B';x++;zuijian[x]='\'';x++;
zuijian[x]='C';x++;break;
default:cout<<"error !"<<endl;
}break;
case(3):switch((j+3)%4)
{case(0):zuijian[x]='A';x++;zuijian[x]='\'';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(1):zuijian[x]='B';x++;
zuijian[x]='D';x++;zuijian[x]='\'';x++;break;
case(2):zuijian[x]='A';x++;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -