我的这个游戏是24点,但这个程序随机显示出来的数通过运算不一定能得到24,我想把程序输出的数通过运算都等于24,还请高手帮我修改一下我,多谢,多谢!!!
下面是代码:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int A;
int B;
int C;
int D;
A=random(10)+1;
B=random(10)+1;
C=random(10)+1;
D=random(10)+1;
Edit1->Text=IntToStr(A);
Edit2->Text=IntToStr(B);
Edit3->Text=IntToStr(C);
Edit4->Text=IntToStr(D);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int a,b,c,d;
a=StrToInt(Edit1->Text);
b=StrToInt(Edit2->Text);
c=StrToInt(Edit3->Text);
d=StrToInt(Edit4->Text);
while(1){
if(a+b+c+d==24){
Label1->Caption=IntToStr(a)+"+"+IntToStr(b)+"+"+IntToStr(c)+"+"+IntToStr(d)+"=24";
Label1->Visible =true;
break;
}
else
if(a+b+c-d==24){
Label1->Caption=IntToStr(a)+"+"+IntToStr(b)+"+"+IntToStr(c)+"-"+IntToStr(d)+"=24";
Label1->Visible =true;
break;
}
else
if(a+b-c+d==24){
Label1->Caption=IntToStr(a)+"+"+IntToStr(b)+"-"+IntToStr(c)+"+"+IntToStr(d)+"=24";
Label1->Visible =true;
break;
}
else
if(a-b+c+d==24){
Label1->Caption=IntToStr(a)+"-"+IntToStr(b)+"+"+IntToStr(c)+"+"+IntToStr(d)+"=24";
Label1->Visible =true;
break;
}
else
if(-a+b+c+d==24){
Label1->Caption=IntToStr(b)+"-"+IntToStr(a)+"+"+IntToStr(c)+"+"+IntToStr(d)+"=24";
Label1->Visible =true;
break;
}
else
if((a+b)*c*d==24){
Label1->Caption="("+IntToStr(a)+"+"+IntToStr(b)+")"+"*"+IntToStr(c)+"*"+IntToStr(d)+"=24";
Label1->Visible =true;
break;
}
else
if((a+c)*b*d==24){
Label1->Caption="("+IntToStr(a)+"+"+IntToStr(c)+")"+"*"+IntToStr(b)+"*"+IntToStr(d)+"=24";
Label1->Visible =true;
break;
}
else
if((a+d)*b*c==24){
Label1->Caption="("+IntToStr(a)+"+"+IntToStr(d)+")"+"*"+IntToStr(c)+"*"+IntToStr(b)+"=24";
Label1->Visible =true;
break;
}
else
……