C语言实现简单24点游戏
2017-04-12 20:56
459 查看
参考了很多网上的程序,简单实现了基本功能
运行结果等于24时,输出所有表达式:
做这次的程序,有很多的漏洞,一开始想法局限在穷举法中,列出了所有的可能性,一一比较输出,毫无算法可言,后来在网上查找资料,看到了递归的方法,但是好多的for循环一时间很难读懂,在程序的思维方法上无法理解,学习了很久才看懂了for语句的嵌套以及循环变量的范围设定的意义,虽然这次在程序设计和思维创新上收获不大,但是通过对这个算法的理解,对for循环嵌套的应用和题目的逻辑思考有了很深的体会和学习。
这次只完成了基本的要求,对于提高要求,会继续查找相关资料,学习完成。
程序源代码:
//##贺雪 软工1502班 1508010208 #include<stdio.h> #include<time.h> #include<stdlib.h> int chu(int p,int q) //除法运算 { if(p%q==0) return p/q; else return 111111; } int fun(int i,int j,int c) //c(局部变量)选择运算符,i,j为运算数字 { int s; switch(c) { case 1: s=i+j;break; case 2: s=i-j;break; case 3: s=i*j;break; case 4: s=chu(i,j);break; } return s; } void print(int c) //c(局部变量)选择输出运算符 { if(c==1)printf("+"); else if(c==2)printf("-"); else if(c==3)printf("*"); else printf("/"); } int main() { int f[4];//四个1-13的数 int i,j,m,n; int a,b,c;//符号 int d1,d2,d3; //每步的结果 srand(time(NULL)); //随机生成四个数字(四张扑克牌) for(int w=0;w<4;w++) { f[w]=rand()%13+1; //生成随机数范围在1~13 } for(w=0;w<4;w++) { printf("%d ",f[w]); } printf("\n"); for(i=0;i<4;i++) for(j=0;j<4;j++) if(j!=i) for(m=0;m<4;m++) if(m!=i&&m!=j) for(n=0;n<4;n++) if(n!=i&&n!=j&&n!=m) //四个数字的位置不可重复且多重可能置换位置运算 for(a=1;a<5;a++) for(b=1;b<5;b++) for(c=1;c<5;c++) //选择四个数字中间的三个运算符,皆有四种可能 { //避免了对括号的思考,转化为二元运算 d1=fun(f[i],f[j],a); d2=fun(d1,f[m],b); //用前两个数字的运算结果代替 d3=fun(d2,f ,c); //同理,两两运算,递归过程 if(d3==24) { printf("%d",f[i]); print(a); printf("%d",f[j]); print(b); printf("%d",f[m]); print(c); printf("%d=24\n",f ); } } return 0; }
运行结果如下:
运算结果无法等于24:运行结果等于24时,输出所有表达式:
做这次的程序,有很多的漏洞,一开始想法局限在穷举法中,列出了所有的可能性,一一比较输出,毫无算法可言,后来在网上查找资料,看到了递归的方法,但是好多的for循环一时间很难读懂,在程序的思维方法上无法理解,学习了很久才看懂了for语句的嵌套以及循环变量的范围设定的意义,虽然这次在程序设计和思维创新上收获不大,但是通过对这个算法的理解,对for循环嵌套的应用和题目的逻辑思考有了很深的体会和学习。
这次只完成了基本的要求,对于提高要求,会继续查找相关资料,学习完成。
相关文章推荐
- 24点游戏算法(C语言实现)
- C语言中随机数的生成,以及简单猜数游戏的实现。
- 24点游戏的编程算法(C语言实现)
- c语言编程实现简单三子棋游戏
- C语言实现24点游戏的算法
- 一个简单的三子棋游戏(c语言实现)
- 用c语言简单实现三子棋游戏
- C语言实现简单的记忆力测试游戏
- 经典游戏,计算24点,简单实现
- 一个简单的三子棋游戏(c语言实现)
- c语言实现简单的猜数字游戏
- 用c语言实现简单三子棋游戏
- C语言实现简单打字游戏
- c语言编程 :模拟实现简单扫雷游戏
- 基于C语言实现简单的走迷宫游戏
- C语言实现一个简单的猜数字游戏
- C语言实现24点游戏
- 三子棋游戏(简单)————C语言实现
- 24点游戏 c语言的实现
- J2ME游戏开发中时钟的简单实现