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点游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优盘怎么换名称 更改优盘名称的方法
- 下一篇: 在u盘里建立了u盘的快捷方式怎么删除吗