C++实现经典24点纸牌益智游戏

本文为大家分享了经典24点纸牌益智游戏的具体实现方法,供大家参考,具体内容如下

创新互联建站是一家专业提供灌南企业网站建设,专注与网站设计、做网站、H5页面制作、小程序制作等业务。10年已为灌南众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

一.实验内容

24点游戏是经典的纸牌益智游戏。

常见游戏规则:

从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。
基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。
1.程序风格良好(使用自定义注释模板)
2.列出表达式无重复。

二.算法设计思路

算法描述:

1.通过rand()函数生成4个随机数
2.通过F()函数进行递归调用
3.首先将数组A中的两个数进行运算,得到结果,然后通过递归调用将结果与下一个数字运算,得到结果再通过递归调用,与最后一个数进行运算
4.递归过程中,判断是否(n==1&&A[0]==24),满足条件则输出结果。最后通过count最终知道有多少种解法

三.代码实现

#include
#include
#include
#include
#include
using namespace std;

int n=4; //三次运算标记值 
double A[4]={0}; //存储4个数字
char oper[4]={'+','-','*','/'}; //存储运算符
string B[4];
int count=0;
int F(int n){
 //判断是否已完成三次运算 
 if(n==1){
 if(A[0]==24) //判断结果是否为24 
 { 
  cout<

四.测试及运行结果

C++实现经典24点纸牌益智游戏

C++实现经典24点纸牌益智游戏

五.经验归纳

这次的程序设计采用了递归调用的方式,使得问题一步步化简,即每次都是两个数字进行运算,得到结果,结果再与下一个数字进行运算,直到满足终止条件,结束递归。递归这种思想虽然很好写出,但难以理解,尤其是对一些大型的算法。通过这次的程序设计,我对递归有了更深的认识。虽然递归的执行效率很低,但是有一些问题必须使用递归解决,因此我会在以后的程序设计中经常用到递归,提高对于递归的理解能力。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。


网站名称:C++实现经典24点纸牌益智游戏
路径分享:http://scyanting.com/article/jcsdog.html