24点游戏

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

#include "pch.h"
#include"stdlib.h"
#include<time.h>
#include <iostream>
using namespace std;
int a[4] ;
char b[4] = {'+','-','*','/'};
int jisuan(int m, int n, int i) {
	if (b[i] == '+')
		return(m + n);
	if (b[i] == '-')
		return(m - n);
	if (b[i] == '*')
		return(m*n);
	if (b[i] =='/'&&n!=0)
		return(m / n);
}
int main()
{
	int a[4];
	srand(time(NULL));
	for (int i = 0; i <= 3; i++)
	{
		a[i] = rand() % 13 + 1;
	}
	cout << "a=" << a[0] << endl;
	cout << "b=" << a[1] << endl;
	cout << "c=" << a[2] << endl;
	cout << "d=" << a[3] << endl;
	int t1, t2, t3;
	for (int i = 0; i <= 3; i++)
	{
		for (int m = 0; m <= 3; m++)
		{
			if (i != m)
				for (int j = 0; j <= 3; j++)
				{
					if (m != j)
						for (int t = 0; t <= 3; t++)
						{
							if (j != t)
								for (int k = 0; k <= 3; k++)
								{
									t1 = jisuan(a[i], a[m], k);
									for (int x = 0; x <= 3; x++)
									{
										t2 = jisuan(t1, a[j], x);
										for (int y = 0; y <= 3; y++)
										{
											t3 = jisuan(t2, a[t], y);
											if (t3 == 24)
											{
												cout << "(" << "(" << "(" << a[i] << b[k] << a[m] << ")" << b[x] << a[j] << ")" << b[y] << a[t] << ")" << "=" << 24 << endl;
											}
										}
									}
								}
						}
				}
		}
	}
}

基本思路:将四个数字的运算拆分为三步,对每一步进行运算符及数字遍历求出所有结果,并将中间过程用t1,t2,t3来存储。若最终t3为24则将数字及运算符输出。
测试结果截屏:在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值