关于面向对象的问题
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
void frame()
{
cout<<"****************************************"<<endl;
cout<<"* *"<<endl;
cout<<"* *"<<endl;
cout<<"* Welcome *"<<endl;
cout<<"* 阅读规则-->R/r *"<<endl;
cout<<"* 开始游戏--Y/y *"<<endl;
cout<<"* 突出游戏--N/n *"<<endl;
cout<<"* 看答案 --A/a *"<<endl;
cout<<"* *"<<endl;
cout<<"****************************************"<<endl;
}
void answer()
{
system("cls");
char a[16][8]={{'0',1,1,1,' ',2,2,2},{'0',1,1,' ',1,2,2,2},{'0',1,1,2,1,' ',2,2},{'0',1,1,2,1,2,' ',2},{'0',1,1,2,' ',2,1,2},{'0',1,' ',2,1,2,1,2},{'0',' ',1,2,1,2,1,2},{'0',2,1,' ',1,2,1,2},{'0',2,1,2,1,' ',1,2,},{'0',2,1,2,1,2,1,' '},{'0',2,1,2,1,2,' ',1},{'0',2,1,2,' ',2,1,1},{'0',2,' ',2,1,2,1,1},{'0',2,2,' ',1,2,1,1},{'0',2,2,2,1,' ',1,1},{'0',2,2,2,' ',1,1,1}};
for(int i=0;i<16;i++)
{
Sleep(1500);
for(int j=1;j<8;j++)
cout<<" "<<a[i][j]<<" ";
cout<<endl;
cout<<"————————————"<<endl;
}
}
void Rule()
{
cout<<"移动青蛙 让他们兑换位置"<<endl;
cout<<"他们的标号是1~7"<<endl;
cout<<"操作方法"<<endl;
cout<<"输入你要移动的青蛙编号"<<endl;
cout<<"0重新开始 9退出游戏 10 查看答案"<<endl;
}
void display(char *p)
{
for(int i=1;i<8;i++)
cout<<" "<<*(p+i)<<" ";
cout<<endl;
cout<<"————————————"<<endl;
}
bool win(char *p)
{
if(*(p+1)==2&&*(p+2)==2&&*(p+3)==2&&*(p+5)==1&&*(p+6)==1&&*(p+7)==1)
cout<<"You win"<<endl;
else return false;
return true;
}
void play(char *p,int n=1,int space=4)
{
display(p);
static bool win_or_not=false;
while(!win_or_not)
{
cout<<"请输入你要移动的青蛙";
cin>>n;
system("cls");
if((space==1&&*(p+2)==*(p+3))||(space==7&&*(p+6)==*(p+5)))
{
cout<<"You lose"<<endl;
break;
}
else if(n==10)
answer();
else if(n==9)
{
cout<<"quiting..."<<endl;
break;
}
else if(n==0)
{
system("cls");
char b[8]={'0',1,1,1,' ',2,2,2};
play(b);
}
else if(n<space-2||n>space+2)
{
cout<<"不能移动"<<endl;
play(p,n,space);
}
else if(((*(p+n)==1)&&(n>space))||(*(p+n)==2)&&(n<space))
{
cout<<"不能移动"<<endl;
play(p,n,space);
}
else
{
char temp1;
int temp2;
temp1=*(p+n);
*(p+n)=*(p+space);
*(p+space)=temp1;
temp2=n;
n=space;
space=temp2;
win_or_not=win(p);
play(p,n,space);
}
break;
}
}
int main()
{
char a[8]={'0',1,1,1,' ',2,2,2};
frame();
char choose;
cin>>choose;
switch(choose)
{
case 'R':;
case 'r':Rule();
cout<<"是否开始游戏"<<endl;
char choose2;
cin>>choose2;
switch(choose2)
{
case 'Y':;
case 'y':system("cls");play(a);break;
case 'N':;
case 'n':return 0;
}
case 'Y':;
case 'y':system("cls");play(a);break;
case 'N':;
case 'n':return 0;
case 'A':;
case 'a':answer();break;
default:
cout<<"error"<<endl;
}
}