主题:[原创]刚写的扑克牌24点游戏,请高手指点!!
请高手指点指点,以待改进!!!
本程序在dev c++上通过调试:
#include <iostream.h>
#include <conio.h>
int judge(double a,double b, double c, double d, double e);
void out(double a,double b, double c,double d, double e, int i, int j,int k);
double s[6],t[6];
int main()
{
double a, b, c, d;
int m,n=0;
cout<<" 扑克牌24点小游戏: "<<endl;
while(1) {
cout<<endl<<"开始游戏请按1,退出游戏请按0: ";
cin>>m;
if(m==0) {cout<<"呵,下次再来玩,bye^.^!"; break; }
if(m==1) {
cout<<"输入四个1~13之间的数:"<<endl;
cin>>a>>b>>c>>d;
if(a<1||a>13||b<1||b>13||c<1||c>13||d<1||d>13)
{
cout<<"输入数据错误,结束本次游戏!"<<endl;
continue;
}
if(judge(a,b,c,d,24.0)) n=1;
if(judge(a,c,b,d,24.0)) n=1;
if(judge(a,d,b,c,24.0)) n=1;
if(judge(24.0,a,b,c,d)) n=1;
if(judge(24.0,b,c,a,d)) n=1;
if(judge(24.0,c,b,a,d)) n=1;
if(judge(24.0,a,b,d,c)) n=1;
if(judge(24.0,b,d,a,c)) n=1;
if(judge(24.0,d,b,a,c)) n=1;
if(judge(24.0,a,d,c,b)) n=1;
if(judge(24.0,c,d,a,b)) n=1;
if(judge(24.0,d,c,a,b)) n=1;
if(judge(24.0,b,d,c,a)) n=1;
if(judge(24.0,c,b,d,a)) n=1;
if(judge(24.0,d,b,c,a)) n=1;
if(n!=1) cout<<"这四个数不能成24"<<endl;
n=0;
} }
getchar();
getchar();
}
int judge(double a, double b, double c, double d, double e)
{
int i,j,k;
double x;
s[0]=a+b;
s[1]=a-b;
s[2]=b-a;
s[3]=a*b;
s[4]=a/b;
s[5]=b/a;
t[0]=c+d;
t[1]=c-d;
t[2]=d-c;
t[3]=c*d;
t[4]=c/d;
t[5]=d/c;
for(i=0; i<6; i++){
for(j=0; j<6; j++){
for(k=0;k<6;k++) {
if(k==0) x=s[i]+t[j];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
if(k==1) x=s[i]-t[j];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
if(k==2) x=t[j]-s[i];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
if(k==3) x=s[i]*t[j];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
if(k==4) x=s[i]/t[j];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
if(k==5) x=t[j]/s[i];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
}}}
return 0;
}
本程序在dev c++上通过调试:
#include <iostream.h>
#include <conio.h>
int judge(double a,double b, double c, double d, double e);
void out(double a,double b, double c,double d, double e, int i, int j,int k);
double s[6],t[6];
int main()
{
double a, b, c, d;
int m,n=0;
cout<<" 扑克牌24点小游戏: "<<endl;
while(1) {
cout<<endl<<"开始游戏请按1,退出游戏请按0: ";
cin>>m;
if(m==0) {cout<<"呵,下次再来玩,bye^.^!"; break; }
if(m==1) {
cout<<"输入四个1~13之间的数:"<<endl;
cin>>a>>b>>c>>d;
if(a<1||a>13||b<1||b>13||c<1||c>13||d<1||d>13)
{
cout<<"输入数据错误,结束本次游戏!"<<endl;
continue;
}
if(judge(a,b,c,d,24.0)) n=1;
if(judge(a,c,b,d,24.0)) n=1;
if(judge(a,d,b,c,24.0)) n=1;
if(judge(24.0,a,b,c,d)) n=1;
if(judge(24.0,b,c,a,d)) n=1;
if(judge(24.0,c,b,a,d)) n=1;
if(judge(24.0,a,b,d,c)) n=1;
if(judge(24.0,b,d,a,c)) n=1;
if(judge(24.0,d,b,a,c)) n=1;
if(judge(24.0,a,d,c,b)) n=1;
if(judge(24.0,c,d,a,b)) n=1;
if(judge(24.0,d,c,a,b)) n=1;
if(judge(24.0,b,d,c,a)) n=1;
if(judge(24.0,c,b,d,a)) n=1;
if(judge(24.0,d,b,c,a)) n=1;
if(n!=1) cout<<"这四个数不能成24"<<endl;
n=0;
} }
getchar();
getchar();
}
int judge(double a, double b, double c, double d, double e)
{
int i,j,k;
double x;
s[0]=a+b;
s[1]=a-b;
s[2]=b-a;
s[3]=a*b;
s[4]=a/b;
s[5]=b/a;
t[0]=c+d;
t[1]=c-d;
t[2]=d-c;
t[3]=c*d;
t[4]=c/d;
t[5]=d/c;
for(i=0; i<6; i++){
for(j=0; j<6; j++){
for(k=0;k<6;k++) {
if(k==0) x=s[i]+t[j];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
if(k==1) x=s[i]-t[j];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
if(k==2) x=t[j]-s[i];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
if(k==3) x=s[i]*t[j];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
if(k==4) x=s[i]/t[j];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
if(k==5) x=t[j]/s[i];
if(x==e)
{
cout<<"这四个数能成24,具体运算如下:"<<endl;
out(a,b,c,d,e,i,j,k); return 1;
}
}}}
return 0;
}