24点是一种益智游戏。是用括号将四个整数(一般是正整数)进行加减乘除的数学游戏,这样最后的计算结果是24。24点可以测试人的智力和数学敏感度,在游戏中可以提高人的心算能力。本文将使用C语言来实现这个游戏。有兴趣的可以看看。
目录
前言一、项目创建标准二、项目编译三、项目调试结果
前言
二十一点计算器的规则如下
24点是一种益智游戏。是用括号将四个整数(一般是正整数)进行加减乘除的数学游戏,这样最后的计算结果是24。24点可以测试人的智力和数学敏感度,在游戏中可以提高人的心算能力。
扑克牌一般用来玩24点。一副牌还剩52张(第一次练习只能用40张1 ~ 10的牌),随机抽取4张牌(称为副牌)。加、减、乘、除(可以加括号)把甲板上的数字算成24。每张卡只能使用一次。如果抽出来的牌是3、8、8、9,那么公式就是(9-8) 8 3或者3 8 (9-8)或者(9-8 8 ) 3等等。
一、项目的创建标
1.选择项目。
打开VS2019,点击新建项目——然后选择如下如图选项,创建一个C语言项目
2.输入项目名称和路径。
3.创建头文件Main.h和PointGame.h以及源文件Main.c和PointGame.c,如下所示。
二、项目的编写
1.Main.h头文件的编译
#杂注一次
#包含stdio.h
#包含stdlib.h
2.PointGame.h头文件的编译
#杂注一次
#包含stdbool.h
#包含数学. h
#定义精度1E-6
#确定目标24
#定义尺寸4
/*
*最终表达式由四个数字、括号和运算符组成,其大小不会超过
* 5 *(尺寸- 1)尺寸* 2 1
*/
typedef结构卡
{
双值;
char表达式[5 *(SIZE-1)SIZE * 2 ^ 1];
}卡,* pCard
bool game24(pCard卡,int大小);
3.PointGame.c源文件的编译
#define _CRT_SECURE_NO_WARNINGS
#包含“Main.h”
#include 'PointGame.h '
/*
*在牌堆中计算24点。
*卡片堆
*尺寸号
*/
布尔游戏24(pCard卡,整数大小)
{
卡片叠[3];
/*
*如果牌堆中只有一张牌,判断是否为所需目标。
*/
if (size==1)
{
如果(晶圆厂(卡[0])。值-目标)精度)
{
printf('%d=%s\n ',目标,卡[0]。表情);
返回true
}
其他
{
返回false
}
}
/*
*从这副牌中选择两张牌。
*/
int m,n,I,t;
for(m=0;m尺码-1;m)
{
for(n=m ^ 1;n大小;n)
{
/*
*将剩余的牌放入新的一堆。
*/
t=0;
for(I=0;I尺寸;我)
{
如果(我!=m i!=n)
{
堆栈[t]。值=卡[i]。价值;
sprintf(stack[t].表达式,' %s ',卡片[i]。表情);
t;
}
}
/*
*选择两张牌的和,并将它们放入新的一堆。
*/
堆栈[大小- 2]。值=卡[m]。价值卡。价值;
sprintf(stack[size - 2]。表达式,“(%s %s)”,卡片[m]。表情,卡[n]。表情);
if (game24(stack,size - 1))
{
返回true
}
/*
*选择两张卡片之间的差异,并将它们放入新的一堆。
*/
if(卡[m].价值卡。值)
{
堆栈[大小- 2]。值=卡[m]。价值卡。价值;
sprintf(stack[size - 2]。表达式,' %(% s-% s)% ',卡片[m]。表情,卡[n]。表情);
}
其他
{
堆栈[大小- 2]。值=卡[n]。价值卡[m]。价值;
sprintf(stack[size - 2]。表达式,' %(% s-% s)% ',卡片[n]。表情,卡[m]。表情);
}
if (game24(stack,size - 1))
{
返回true
}
/*
*选择两张卡的乘积,并将其放入新的一堆卡中。
*/
堆栈[大小- 2]。值=卡[m]。值*卡[n]。价值;
sprintf(stack[size - 2]。表达式,' %s * %s ',卡片[m]。表情,卡[n]。表情);
if (game24(stack,size - 1))
{
返回true
}
/*
*选择两张牌,放入新的一堆。
*/
if(卡[m].值!=0)
{
堆栈[大小- 2]。值=卡[n]。值/卡[m]。价值;
sprintf(stack[size - 2]。表达式,' %s/%s ',卡片[n]。表情,卡[m]。表情);
if (game24(stack,size - 1))
{
返回true
}
}
if(卡片[n]。值!=0)
{
堆栈[大小- 2]。值=卡[m]。值/卡[n]。价值;
sprintf(stack[size - 2]。表达式,' %s/%s ',卡片[m]。表情,卡[n]。表情);
if (game24(stack,size - 1))
{
返回true
}
}
}
}
返回false
}
4.Main.c源文件的编译
#define _CRT_SECURE_NO_WARNINGS
#包含“Main.h”
#include 'PointGame.h '
int main()
{
系统(“彩色3E”);
int i,戳;
卡牌[大小];
Printf('请输入4个数字判断解:');
for(I=0;I尺寸;我)
{
scanf('%d ',戳);
卡片[i]。值=(双)戳;
sprintf(卡[i].表情,' %d ',戳);
}
if (game24(卡,大小))
{
printf(' Done \ n ');
}
其他
{
printf('无应答\ n ');
}
系统(“暂停”);
返回0;
}
三、项目的调试结果
选择生成-生成解决方案。
结果如下
根据F5,调试结果如下
本文关于C语言24点游戏计算器的样例代码到此为止。有关C语言24点游戏的更多信息,请搜索我们之前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。