美文网首页
PHP实现简单的24点游戏

PHP实现简单的24点游戏

作者: 长安猎人 | 来源:发表于2018-10-23 21:44 被阅读0次

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

    <?php
    /**
     * 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点游戏

          本文链接:https://www.haomeiwen.com/subject/chdzzftx.html