今天的一次写,计划以后每天都能至少写100行的代码,如果各位多多支持一下,应该可以坚持下去吧
好的
主要是用c语言实现24点游戏
代码直接贴了
****************
#include"stdlib.h"
#include"time.h"
#include"stdio.h"
void begin(int a[])
{ int i;
srand(time(NULL));
for(i=0;i<4;i++)
{
a[i]=1+rand() % 12;
printf("a%d=%d/n",i+1,a[i]);
}
}
*****************
将*****之间代码粘贴,另存为begin.h
*****************
#include"begin.h"
#include"stdio.h"
#include"assert.h"
void input(int p[])
{
int i;
for(i=0;i<7;i++)
{
if(i%2)
p[i]=getchar();
else
scanf("%d",&p[i]);
}
}
int judge(int p[],int a[])
{ int i,j;
for(i=0;i<7;i+=2)
if((p[i]-1)*(p[i]-13)>0)
return 0;
// for(i=0;i<4;i++)
for(j=0;j<7;j+=2)
for(i=0;i<4;i++)
if(a[i]==p[j])
a[i]=0;
for(i=0;i<4;i++)
if(a[i])
return 0;
return 1;
}
void digui(int p[],int num)
{
int i,f=1;
//以下找到此步计算的点
for(i=1;i<=2*num-1;i+=2)
if(p[i]=='*'||p[i]=='/')
{
f=i;
break;
}
switch(p[f])
{
case '+':p[f-1]=p[f-1]+p[f+1];break;
case '-':p[f-1]=p[f-1]-p[f+1];break;
case '*':p[f-1]=p[f-1]*p[f+1];break;
case '/':p[f-1]=p[f-1]/p[f+1];break;
default:printf("fuhaocuowu/n");
}
for(i=f;i<=2*num-2;i++)
p[i]= p[i+2];
if(num!=1)
digui(p,num-1);
}
void main()
{
char c;
int num=3;
int a[4]={0};
int p[7]={0};
again:begin(a);//分配几个数
input(p);//输入
assert(judge(p,a)==1);
// if(judge(p,a)==1)
// printf("go on");
digui(p,num);//计算了
if(p[0]==24)
printf("CONGRATULATIONS!IT'S RIGHT!");
else
printf("GO HOME! YOU SILLY!/n");
error: printf("TRY AGAIN ?[Y]ES OR [N]O?");
enter:scanf("%c",&c);
if(c=='Y'||c=='y')
goto again;
else
if(c=='n'||c=='N')
printf("exiting...../n");
else
if(c=='/n')
goto enter;
else goto error;
}
******************************************************
将以上保存为main.c
只要将上述文件放在一个目录下就可以运行了
不过可惜的是不支持,括号那位高手帮改一下就好了
好的
主要是用c语言实现24点游戏
代码直接贴了
****************
#include"stdlib.h"
#include"time.h"
#include"stdio.h"
void begin(int a[])
{ int i;
srand(time(NULL));
for(i=0;i<4;i++)
{
a[i]=1+rand() % 12;
printf("a%d=%d/n",i+1,a[i]);
}
}
*****************
将*****之间代码粘贴,另存为begin.h
*****************
#include"begin.h"
#include"stdio.h"
#include"assert.h"
void input(int p[])
{
int i;
for(i=0;i<7;i++)
{
if(i%2)
p[i]=getchar();
else
scanf("%d",&p[i]);
}
}
int judge(int p[],int a[])
{ int i,j;
for(i=0;i<7;i+=2)
if((p[i]-1)*(p[i]-13)>0)
return 0;
// for(i=0;i<4;i++)
for(j=0;j<7;j+=2)
for(i=0;i<4;i++)
if(a[i]==p[j])
a[i]=0;
for(i=0;i<4;i++)
if(a[i])
return 0;
return 1;
}
void digui(int p[],int num)
{
int i,f=1;
//以下找到此步计算的点
for(i=1;i<=2*num-1;i+=2)
if(p[i]=='*'||p[i]=='/')
{
f=i;
break;
}
switch(p[f])
{
case '+':p[f-1]=p[f-1]+p[f+1];break;
case '-':p[f-1]=p[f-1]-p[f+1];break;
case '*':p[f-1]=p[f-1]*p[f+1];break;
case '/':p[f-1]=p[f-1]/p[f+1];break;
default:printf("fuhaocuowu/n");
}
for(i=f;i<=2*num-2;i++)
p[i]= p[i+2];
if(num!=1)
digui(p,num-1);
}
void main()
{
char c;
int num=3;
int a[4]={0};
int p[7]={0};
again:begin(a);//分配几个数
input(p);//输入
assert(judge(p,a)==1);
// if(judge(p,a)==1)
// printf("go on");
digui(p,num);//计算了
if(p[0]==24)
printf("CONGRATULATIONS!IT'S RIGHT!");
else
printf("GO HOME! YOU SILLY!/n");
error: printf("TRY AGAIN ?[Y]ES OR [N]O?");
enter:scanf("%c",&c);
if(c=='Y'||c=='y')
goto again;
else
if(c=='n'||c=='N')
printf("exiting...../n");
else
if(c=='/n')
goto enter;
else goto error;
}
******************************************************
将以上保存为main.c
只要将上述文件放在一个目录下就可以运行了
不过可惜的是不支持,括号那位高手帮改一下就好了