1.实验目的

a.24点游戏是经典的纸牌益智游戏,请完成它。

2.题目描述

从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表10),按照要求编程解决24点游戏。

随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。

1.程序风格良好(使用自定义注释模板)

2.列出表达式无重复。

3.需求分析

随机产生4个1-13的数字,然后生成表达式,表达式包括:

  1. 四个1-13的数字
  2. 加减乘除运算符
  3. 成对出现的括号

这些表达式必须是合法的,什么是合法的表达式?

举个例子,如(2+10)*(6-4)就是个合法的、并且计算结果是24的表达式,如2+4()*38+就是非法的表达式,(2+8)/5*2是个合法的表达式但计算结果不是24。

然后根据运算法则计算这个表达式是否等于24。

4.算法设计

4.1随机函数生成四个随机数

使用C语言中的随机函数rand()%10*1.0,生成四个符合要求的随机数。

4.1.1算法实现

A=rand()%10*1.0;

B=rand()%10*1.0;

C=rand()%10*1.0;

D=rand()%10*1.0;

 

4.2 对四个数进行全排列

     使用递归方法对随机数进行全排列

 

4.3对‘+’、‘-’、‘×’、‘÷’进行全排列

对4种运算符的全排列和数字的全排列几乎一样,但是因为是4个数字进行计算,所以只会用到3个运算符,所以在后期处理上只需要将最后一个运算符删除即可

4.4 通过拼凑的方式构造表达式

对生成的数字全排列列表和预算符全排列列表只需要交替的插入即可构造一个只有数字和“+、-、×、÷”的运算表达式,但这样构造的表达式不够多样,存在很多不满足运算结果等于24的情况,所以应当引入括号运算,保证运算的多样性。

4.5计算表达式,将满足运算结果为24的表达式打印出来

if(c[i][j][k]==24.0)

{if(precede(d[i],d[j])){

printf("(%.0f%c%.0f)%c%.0f%c%.0f",A,d[i],B,d[j],C,d[k],D);

printf("\n");}

else if(precede(d[j],d[k])){

printf("(%.0f%c%.0f%c%.0f)%c%.0f",A,d[i],B,d[j],C,d[k],D);

printf("\n");}

else{

printf("%.0f%c%.0f%c%.0f%c%.0f",A,d[i],B,d[j],C,d[k],D);

printf("\n");}5.调试及测试

4.6流程图及设计图

5.算法实现

5.1调试界面

 

5.2数据测试

 

 

5.3利用MFC制作24点游戏

   

游戏正常运行截图

输入大于13的数字时游戏报错

MFC风格原件下载地址:

24点游戏——C语言纯代码及MFC风格相关推荐

  1. 24点游戏c语言程序代码,C语言实现24点游戏源代码

    本文实例为大家分享了C语言实现24点游戏的具体代码,供大家参考,具体内容如下 将算法实现改成C语言,并可在linux服务器上运行.同时修改为可显示所有结果. 注:如果传参重复,如4,4,7,7这样,会 ...

  2. 一个完整的c语言的单链表代码,单链表完整C语言纯代码.docx

    单链表完整C语言纯代码单链表完整C语言纯代码 带头结点的单链表 PAGE \* MERGEFORMAT 4 单链表 带头结点 #include #include /* 带头结点的单链表的操作 在该链表 ...

  3. 24点游戏c语言链表做法,C语言实现24点程序(示例代码)

    一.简介 本程序的思想和算法来自于C语言教材后的实训项目,程序通过用户输入四个整数计算出能够通过加减乘除得到数字24的所有表达式,程序的设计有别于一般通过穷举实现的方式,效率得到提高.算法介绍如下: ...

  4. 24点游戏c语言去除重复,C语言解24点游戏程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...

  5. 24点游戏c语言源代码6,C语言解24点游戏程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...

  6. c语言简单的24点游戏,C语言解24点游戏程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...

  7. 用c语言编写24点游戏,C语言解24点游戏程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...

  8. 最简单的24点游戏c语言,C语言解24点游戏程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...

  9. C#打字游戏案例(纯代码实现),新手入门必备!

    文章目录 一.需求分析 二.代码实现 三.运行结果 一.需求分析 1.界面设计 布局 需要哪些内容控件 容器的概念 集合的概念 2.开始游戏 字母的生成 26个字母 ASCII码值 字母的载体 控件 ...

最新文章

  1. opencv 3和qt5计算机视觉应用开发_【资源分享】有哪些学习openCV的网站或书籍?...
  2. python 给word添加背景图片_Python如何使用word文档插入图片和表格
  3. 乱码 转ios_王者荣耀:转区数量提升25倍,教你解决检测异常,IOS也有艾琳了
  4. VS Code:高效前端程序员的秘密武器
  5. Facebook反垃圾实践:人工治理与机器算法齐飞
  6. java 新手入门电子书_Java基础入门电子书.pdf
  7. 检验入参合法性有哪些_参数检验和非参数检验是什么意思
  8. ftp服务器 文件权限,ftp服务器 文件权限设置
  9. 【RDMA】基于RoCE的应用程序的MTU注意事项|探测网络中的MTU设置
  10. android 4.1.2大小,4.1.2 Activity初窥门径
  11. excel日期函数的应用
  12. CoolWeather地区无法加载
  13. UE4 Material 101学习笔记——23-29 水涟漪/水深/折射反射/Gerstner海浪/波光焦散/泡沫/FlowMap
  14. linux开放外部端口访问
  15. 2021年企业服务行业BP和融资计划书PPT模板
  16. 科研TCO-PEG-Chondroitin sulfate;TCO-PEG-CS;反式环辛烯-聚乙二醇-硫酸软骨素
  17. flowable流程实例管理接口
  18. python api开发框架_python api框架
  19. STC8H驱动hub75e接口的64*64LED点阵屏
  20. 【强化学习】解决gym安装Atari2600环境gym[atari,accept-rom-license] RuntimeError 无法下载Roms的问题

热门文章

  1. 通过ArcCatalog进行矢量数据的入库
  2. 百分数转bigd_英语口语小数、百分数以及倍数巧表达
  3. 计算机基础知识做网页,专业知识—计算机基础知识之网页制作 .doc
  4. RHCSA(红帽系统认证管理员)/Linux虚拟机 基础 Day1
  5. 如何用计算机打地鼠,《“打地鼠”游戏的程序实现》教学设计
  6. java得物公司面试怎么样,得物app
  7. 读懂人工智能、机器学习、神经网络和深度学习的关系
  8. android自定义Glide图片加载(以更改Glide缓存路径和使用ARGB_8888的图片格式为例)
  9. 谈 Linux,Windows 和 Mac (转自 王垠)
  10. android -------- 沉浸式状态栏ImmersionBar3.0