C语言实现纸牌计算24点小游戏

利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的。程序主要功能已完成,目前还有部分细节未处理,待完成ing...对于代码中的错误,恳请批评指正。

游戏描述:

A-10:分别代表数字 1-10。

J,Q,K:均代表数字1。

考虑到部分地方的规则,J,Q,K 也可以当成10 ,或者直接代表本身所代表的数字,即11、12、13来运算。

使用加减乘除,能得出24者为赢,存在无解情况。

游戏开始得分为1000分,每一秒钟减少1分,当答对一次时,分数增加100分。(暂未实现)

代码如下:

/*

*

* Project : 计算24

*

* Author : 鬼狐_Ambrose

*

* Date : 2015年3月25日10:55:47

*

* Remark :纸牌中的10以0代替,减法得数均为正数

*/

#include

#include

#include

char getPokerCard(int value)

{

if(value==)

{

return 'A';

}

else if(value

{

return value+'';

}

else if(value==)

{

return '';

}

else if(value==)

{

return 'J';

}

else if(value==)

{

return 'Q';

}

else if(value==)

{

return 'K';

}

}

void printAnswer(int flag,int *poker,char *oper,char *answer)

{

char a=getPokerCard(poker[]);

char b=getPokerCard(poker[]);

char c=getPokerCard(poker[]);

char d=getPokerCard(poker[]);

switch(flag)

{

//1.((A*B)*C)*D

case :

printf("((%c%c%c)%c%c)%c%c\n",a,oper[],b,oper[],c,oper[],d);

break;

//2.(A*(B*C))*D

case :

printf("(%c%c(%c%c%c))%c%c\n",a,oper[],b,oper[],c,oper[],d);

break;

//3.(A*B)*(C*D)

case :

printf("(%c%c%c)%c(%c%c%c)\n",a,oper[],b,oper[],c,oper[],d);

break;

//4.A*(B*(C*D))

case :

printf("%c%c(%c%c(%c%c%c))\n",a,oper[],b,oper[],c,oper[],d);

break;

//5.A*((B*C)*D)

case :

printf("%c%c((%c%c%c)%c%c)\n",a,oper[],b,oper[],c,oper[],d);

break;

default:

break;

}

//存储answer

return ;

}

double getValue(double num1,double num2,char oper)

{

double result;

switch(oper)

{

case '+':

result=num1+num2;

break;

case '-':

result=fabs(num1-num2);

break;

case '*':

result=num1*num2;

break;

case '/':

result=num1/num2;

break;

default :

break;

}

return result;

}

int getResult(int *poker,char *oper,char *answer)

{

double t;

//将计算值取到

int a=poker[]>?:poker[];

int b=poker[]>?:poker[];

int c=poker[]>?:poker[];

int d=poker[]>?:poker[];

//穷举运算次序

//1.((A*B)*C)*D

t=;

t=getValue(a,b,oper[]);

t=getValue(t,c,oper[]);

t=getValue(t,d,oper[]);

if(fabs(t-)<0.0001)

{

printAnswer(,poker,oper,answer);

return ;

}

//2.(A*(B*C))*D

t=;

t=getValue(b,c,oper[]);

t=getValue(a,t,oper[]);

t=getValue(t,d,oper[]);

if(fabs(t-)<0.0001)

{

printAnswer(,poker,oper,answer);

return ;

}

//3.(A*B)*(C*D)

t=;

t=getValue(getValue(a,b,oper[]),getValue(c,d,oper[]),oper[]);

if(fabs(t-)<0.0001)

{

printAnswer(,poker,oper,answer);

return ;

}

//4.A*(B*(C*D))

t=;

t=getValue(c,d,oper[]);

t=getValue(b,t,oper[]);

t=getValue(a,t,oper[]);

if(fabs(t-)<0.0001)

{

printAnswer(,poker,oper,answer);

return ;

}

//5.A*((B*C)*D)

t=;

t=getValue(b,c,oper[]);

t=getValue(t,d,oper[]);

t=getValue(a,t,oper[]);

if(fabs(t-)<0.0001)

{

printAnswer(,poker,oper,answer);

return ;

}

return ;

}

void printResult(int *poker,char *answer)

{

char OperKey[]={'+','-','*','/'};

char oper[];

int i,j,k;

int count=;

for(i=;i

for(j=;j

for(k=;k

{

oper[]=OperKey[i];

oper[]=OperKey[j];

oper[]=OperKey[k];

if(getResult(poker,oper,answer))

count++;

}

if(count)

{

printf("共%d种解法\n",count);

}

else

{

printf("该情况无解\n");

}

return ;

}

void printPoker(int *poker)

{

int i;

for(i=;i

{

printf("%c ",getPokerCard(poker[i]));

}

printf("\n");

return ;

}

void getRandomPokers(int *poker)

{

int i;

//利用系统时间设定种子

srand((unsigned)time(NULL));

for(i=;i

{

poker[i]=rand()%+;

}

return ;

}

main()

{

int poker[];

char answer[];

char c;

printf("纸牌计算24点\n--------------------------------------------\n");

do

{

//生成随机纸牌

getRandomPokers(poker);

printf("随机生成的纸牌为:\n");

//输出生成的纸牌

printPoker(poker);

printf("\n任意键获得结果...\n");

getchar();

//输出计算结果

printResult(poker,answer);

printf("\n回车键继续,其他键并回车退出...\n");

c=getchar();

printf("--------------------------------------------\n");

}

while(c=='\n');

return ;

}

24点小游戏app宣传文案

24点小游戏app宣传文案 游戏背景 24点小游戏是传统的扑克牌游戏,是通过扑克牌来完成的竞争性智力游戏,除了希望能够消磨我们的空闲时间,加强同学们的临机和速算能力,还能够促进我们每个人的大脑和逻辑性 ...

每个人都可以用C语言写的推箱子小游戏!今天你就可以写出属于自己项目~

C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...

python&plus;pyqt5实现24点小游戏

本文实例为大家分享了python实现24点游戏的具体代码,供大家参考,具体内容如下 描述:一副牌中A.J.Q.K可以当成是1.11.12.13.任意抽取4张牌,用加.减.乘.除(可加括号)把牌面上的数 ...

C语言实现的猜数字小游戏(主要是对于自定义函数的运用)

#include  #include  #include//加上此头文件的作用是什么?另外不加的话有什么影响? ...

利用c语言做简单的迷宫小游戏

#include #define ROW 6 #define COL 6 // 封装打印地图的函数 void printMap(c ...

C 语言实例 - 约瑟夫生者死者小游戏

30 个人在一条船上,超载,需要 15 人下船. 于是人们排成一队,排队的位置即为他们的编号. 报数,从 1 开始,数到 9 的人下船. 如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了 ...

C语言编程学习打造——做题游戏

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

012-C语言小游戏之推箱子

012-C语言小游戏之推箱子 一.创建游戏地图   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #define ROWS 11 #define COLS 12   char ...

2048小游戏代码解析 C语言版

2048小游戏,也算是风靡一时的益智游戏.其背后实现的逻辑比较简单,代码量不算多,而且趣味性强,适合作为有语言基础的童鞋来加强编程训练.本篇分析2048小游戏的C语言实现代码. 前言 游戏截图:  游 ...

随机推荐

Oracle数据库的 增、删、改、查

有时候数据库的查询语句一时想不起来,或不确定是不是语句写的正确,现在整理了一下标准的基本查询语句,便于以后牢记: .数据操作语言 DML:添加(insert into).修改(update   set ...

如何创建可扩展表视图中的iOS 学习和拓展优化(有待更新)

首先介绍老外的文章:这是老外用Swift实现 的,对应的老外github项目源码:https: ...

InvoiceCancelSendApAction

package nc.ui.pu.m25.action; import java.awt.event.ActionEvent; import nc.bs.framework.common.NCLoca ...

angular&period;js 简单的表达式

c语言算24点答案,C语言-纸牌计算24点小游戏相关推荐

  1. 灯泡四个闪烁c语言程序设计教程课后答案,c语言编程题及答案4.doc

    C C 语言编程题及答案 三 语言编程题及答案 三 1 给小学生出加法考试题 编写一个程序 给学生出一道加法运算题 然后判断学生输入的答案对错与否 按下列 要求以循序渐进的方式编程 程程序序 1 通过 ...

  2. 蓝桥杯第十届c语言试题答案,蓝桥杯试题答案(C语言)蓝桥杯试题答案(C语言).pdf...

    蓝桥杯试题答案(C语言)蓝桥杯试题答案(C语言) 1.亲密数:假设有a.b两个数,若a的所有因子之和等于b,b的所有因子之和等于a,并 且a不等于b,则称a和b是一对亲密数.如284和220就是一对亲 ...

  3. C语言-纸牌计算24点小游戏

    C语言实现纸牌计算24点小游戏 利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的.程序主要功能已完成,目前还有部分细节 ...

  4. c语言代码题及答案,c语言编程题精选及答案

    c语言编程题精选及答案 C 语言编程题精选 C 语言学习 2010-11-30 15:48:25 阅读 47 评论 0 字号:大中小 订阅 1. 有函数 F(x)=(x+1)2 和 G(x)=2x+1 ...

  5. c语言全部题目及答案,C语言全部题目及答案

    C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1. Write a program that prints ...

  6. 2020西工大c语言程序设计在线作业答案,2020-C语言程序设计-网课答案-中国大学mooc...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.计算机只能处理由人们编写的.解决某些问题的.事先存储在计算机存储器中的二进制指令序列. 答案:正确 2.通常把高级语言源程序翻译成目标程序的程序称为( ...

  7. c语言程序设计考试a答案,C语言程序设计考试A答案.doc

    C语言程序设计考试A答案.doc 第 1 页 共 8 页 系领导审批并签名 A 卷 广州大学广州大学 2008-2009 学年第一学期考试卷学年第一学期考试卷 课程C 语言程序设计考试形式(闭卷,考试 ...

  8. c语言输入后没答案,C语言章节习题及答案(无指针)解读.doc

    C语言章节习题及答案(无指针)解读 <C程序设计>复习题集 第2章 基础概念 一.选择题(在下列各题的A).B).C).D)四个选项中,只有一个选项是正确的) 2.1以下叙述中正确的是 A ...

  9. c语言第一周作业答案,C语言程序设计下mooc答案.pdf

    <C语言程序设计下mooc答案.pdf>由会员分享,可在线阅读,更多相关<C语言程序设计下mooc答案.pdf(27页珍藏版)>请在装配图网上搜索. 1.2016.03.280 ...

最新文章

  1. 两个提高javascript执行效率的简易代码分享给大家
  2. Delphi自动提交网页表单和获取框架网页源码
  3. SQLite学习手册(数据类型)
  4. 单例模式160905
  5. 经典php代码,HTML_php教程:经典PHP代码,经典循环例子 HTMLHEAD - phpStudy
  6. 标准WPS框架下的空间信息处理服务部署方法
  7. 百度网盘Linux版放出deb包客户端:新增支持Ubuntu 18.04 LTS
  8. 一个分布式 JVM 监控工具,非常实用!
  9. 用python爬取杭电oj的数据
  10. 【图像跟踪】基于matlab GUI均值漂移图像跟踪【含Matlab源码 743期】
  11. Excel如何批量查询手机号码归属地?
  12. 搜狗输入法彻底杜绝广告以及弹窗的几种办法
  13. [哲学部分]马克思主义基本原理概论思维导图
  14. 来世还做Java_“此生无悔入华夏,来世还做中国人”原话是什么?出自哪?
  15. git runner 配置_GitLab Runner安装注册配置管理
  16. InnerHTML、InnerText、outerHTML的用法与区别
  17. 密码学系列 - 棱镜门
  18. SAP SD:VL10A上清不掉的尾巴
  19. Android studio 生成JavaDoc文档
  20. 某公司给每个工位装监控引热议:只为看员工写代码?

热门文章

  1. 【数学建模】8 非线性规划及例题讲解
  2. OneNote复制内容 粘贴变成图片解决方案 Ditto教程
  3. 关于网站优化的几个技巧
  4. android gif快手 源码,Android-JNI开发系列《十一》实践-利用Android C源码实现GIF图片的播放...
  5. 全球首款搭载鸿蒙操作系统的手机是,首款搭载华为鸿蒙操作系统产品发布
  6. 初识Monorepo
  7. 计算机网络---万维网(WWW)
  8. Linux下CenterOS 7之网络连接方式及NAT网络配置
  9. 2014/4月金山WPS笔试
  10. leaflet之家目录