php 24点算法,PHP实现简单的24点游戏
忽然想到做一个小应用,需要使用到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点游戏相关推荐
- C语言给出任意4个数算24点,讨论24点算法。
讨论24点算法. 24点是扑克牌游戏 玩法是:从一副扑克的A到10里随意抽出4张牌 用'加''减''乘''除'四个符号算出4个数是否等于24,是 的话成功,否的话失败: 我用的是穷举法!(源码有点长) ...
- python算24点穷举法_关于24点去重的算法?
=== 4月12日更新 === === 先给结论吧 === 花了近一周时间用JavaScript完成了24点去重算法,源码提交到了github上:auntyellow/24 ,可以在线试:gives ...
- 【简单排序算法】:简单选择排序、直接插入排序和冒泡排序
[简单排序算法]:简单选择排序.直接插入排序和冒泡排序 简单选择排序: 原理:设所排序序列的记录个数为n.i取1,2,-,n-1,每次从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出最小的记录 ...
- 零起点学算法03——超简单模仿算术题
零起点学算法03--超简单模仿算术题 Description 计算机计算能力很强哦. 让计算机帮你算其实也很容易,不过要学好计算机语言哦. 下面请看一个例子:要求计算机计算1+2的值并输出. 这 ...
- 零起点学算法02——输出简单的句子
零起点学算法02--输出简单的句子 Description 会输出Hello World!了,那换个句子也会吧? Input 没有输入 Output 现在要求你输出下面红色的字 Nice to me ...
- Android零基础入门第24节:自定义View简单使用
Android零基础入门第24节:自定义View简单使用 原文:Android零基础入门第24节:自定义View简单使用 当我们开发中遇到Android原生的组件无法满足需求时,这时候就应该自定义Vi ...
- 【趣味分享】C#实现回味童年的24点算法游戏
一.24点游戏玩法规则效果展示 1.初始化界面 2.开始游戏界面 3.游戏超时界面 4.查看答案界面 5.答对界面 6.答错界面 7.计算表达式的验证界面 8.一副牌算完开始新一副牌界面 到这里24点 ...
- 算法一之简单选择排序
一. 选择排序的思想 选择排序的基本思想是:每一趟在n-i+1(i=1,2,-n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录.基于此思想的算法主要有简单选择排序.树型选择排序和堆排序. ...
- c语言简单的24点游戏,C语言解24点游戏程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...
最新文章
- Failed to fetch http://mirrors.cloud.aliyuncs.com/
- 如何成为一名优秀的软件架构师?
- java怎么保存文件_java里数据怎么保存到硬盘或TXT文件里去
- python和revit_如何在Python中产生新的RevitAPI对象
- 使用Hexo搭建博客,备份至GitHub过程(基于网上资料的实践操作)
- 618 技术特辑(一)不知不觉超预算3倍,你为何买买买停不下来?
- 今年蚊子有点慌!有人用100瓶花露水洗澡!
- html中超链接无效怎么办,超链接问题:“引用无效”怎么回事
- Spark源码阅读环境搭建
- android 来电自动接听和自动挂断
- openlayer4 加载arcgis rest 服务
- 缺陷报告【软件测试】
- 360随身Wifi怎么使用
- 关于批量取消微博关注
- 数组实现-线性表/链表/串/栈的操作
- python爬取网页数据(例如淘宝)
- react-native-beacons-manager在Android上的使用 --工作笔记
- 模拟退火算法+大规模邻域算法求解大规模固定节点的路径规划问题matlab代码
- 再谈计算机编程的学习
- 阿里P10、腾讯T4、华为18都是怎样的神级收入?