忽然想到做一个小应用,需要使用到24点判断,故而写一个简单版的。

代码粗糙,轻拍。

/**

* 24点游戏

* @author 长安猎人

*/

$arr = [10, 4, 5, 3];

$opArr = ["+", "-", "*", "/"];

$result = calculate($arr);

if($result == NULL) {

echo "无法找到答案" . PHP_EOL;

}

echo $result;

function calculate($arr) {

global $opArr;

if(count($arr) == 1) {

$str = substr($arr[0], 1, -1);

eval("\$num = " . $str . ";");

if($num == 24) return $str;

return;

}

list($prev, $next) = [$arr[0], $arr[1]];

$combine = [];

for($i = 0; $i < 4; $i++) {

$combine[] = "($prev" . $opArr[$i] . "$next)";

}

$arrFree = array_slice($arr, 2);

$newArr = [];

$combineLen = count($combine);

for($i = 0; $i < $combineLen; $i++) {

$temp = $arrFree;

array_unshift($temp, $combine[$i]); #插入剩余项的头部

$newArr[] = $temp;

}

$newLen = count($newArr);

for ($i=0; $i < $newLen; $i++) {

$res = calculate($newArr[$i]);

if(NULL != $res) return $res;

}

}

php 24点算法,PHP实现简单的24点游戏相关推荐

  1. C语言给出任意4个数算24点,讨论24点算法。

    讨论24点算法. 24点是扑克牌游戏 玩法是:从一副扑克的A到10里随意抽出4张牌 用'加''减''乘''除'四个符号算出4个数是否等于24,是 的话成功,否的话失败: 我用的是穷举法!(源码有点长) ...

  2. python算24点穷举法_关于24点去重的算法?

    === 4月12日更新 === === 先给结论吧 === 花了近一周时间用JavaScript完成了24点去重算法,源码提交到了github上:auntyellow/24 ,可以在线试:gives ...

  3. 【简单排序算法】:简单选择排序、直接插入排序和冒泡排序

    [简单排序算法]:简单选择排序.直接插入排序和冒泡排序 简单选择排序: 原理:设所排序序列的记录个数为n.i取1,2,-,n-1,每次从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出最小的记录 ...

  4. 零起点学算法03——超简单模仿算术题

    零起点学算法03--超简单模仿算术题 Description 计算机计算能力很强哦.  让计算机帮你算其实也很容易,不过要学好计算机语言哦.  下面请看一个例子:要求计算机计算1+2的值并输出.  这 ...

  5. 零起点学算法02——输出简单的句子

    零起点学算法02--输出简单的句子 Description 会输出Hello World!了,那换个句子也会吧? Input 没有输入 Output 现在要求你输出下面红色的字  Nice to me ...

  6. Android零基础入门第24节:自定义View简单使用

    Android零基础入门第24节:自定义View简单使用 原文:Android零基础入门第24节:自定义View简单使用 当我们开发中遇到Android原生的组件无法满足需求时,这时候就应该自定义Vi ...

  7. 【趣味分享】C#实现回味童年的24点算法游戏

    一.24点游戏玩法规则效果展示 1.初始化界面 2.开始游戏界面 3.游戏超时界面 4.查看答案界面 5.答对界面 6.答错界面 7.计算表达式的验证界面 8.一副牌算完开始新一副牌界面 到这里24点 ...

  8. 算法一之简单选择排序

    一.  选择排序的思想 选择排序的基本思想是:每一趟在n-i+1(i=1,2,-n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录.基于此思想的算法主要有简单选择排序.树型选择排序和堆排序. ...

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

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

最新文章

  1. Failed to fetch http://mirrors.cloud.aliyuncs.com/
  2. 如何成为一名优秀的软件架构师?
  3. java怎么保存文件_java里数据怎么保存到硬盘或TXT文件里去
  4. python和revit_如何在Python中产生新的RevitAPI对象
  5. 使用Hexo搭建博客,备份至GitHub过程(基于网上资料的实践操作)
  6. 618 技术特辑(一)不知不觉超预算3倍,你为何买买买停不下来?
  7. 今年蚊子有点慌!有人用100瓶花露水洗澡!
  8. html中超链接无效怎么办,超链接问题:“引用无效”怎么回事
  9. Spark源码阅读环境搭建
  10. android 来电自动接听和自动挂断
  11. openlayer4 加载arcgis rest 服务
  12. 缺陷报告【软件测试】
  13. 360随身Wifi怎么使用
  14. 关于批量取消微博关注
  15. 数组实现-线性表/链表/串/栈的操作
  16. python爬取网页数据(例如淘宝)
  17. react-native-beacons-manager在Android上的使用 --工作笔记
  18. 模拟退火算法+大规模邻域算法求解大规模固定节点的路径规划问题matlab代码
  19. 再谈计算机编程的学习
  20. 阿里P10、腾讯T4、华为18都是怎样的神级收入?

热门文章

  1. 5.1 代价函数-机器学习笔记-斯坦福吴恩达教授
  2. LTE MAC PDU
  3. 基于Simulink的高速跳频通信系统抗干扰性能分析
  4. 十五、linux 注册字符类设备和生成节点
  5. 本年度最成功科技IPO企业之一:Twilio股票一月暴涨167%
  6. Redis 为什么用跳表而不用平衡树
  7. setsockopt()使用方法(參数具体说明)
  8. DVWA手记——取消登录
  9. Jquery获取ckEditor的内容
  10. SPI总线(一):基本原理篇