亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

分享個好玩的算法游戲

發布時間:2020-07-26 11:05:31 來源:網絡 閱讀:1018 作者:byteh 欄目:開發技術

筆者簡介:

從小就不是個勤奮的孩子,一般事情都保持中游水平。對事情也沒窮極的精神,所以我更喜歡聽別人分享事情,從而去發現別人身上的優點。

如果用三分鐘熱度來形容我再恰當不過了,我會把應該做的事做好至于其他的?。。看心情!

很羨慕那些有思想有作為的人,在我看來他們很有‘正事’,當然我也會慢慢的向那個方向發展,盡管需要時間的沉淀(哈哈)

作為眾多程序猿中妹紙,我決定為自己起個藝名,不,筆名!為了展現我們團隊中不同的性格,我也建議大家在寫的時候注明自己的藝名!

 

那么問題來了,瀏覽Iteye時看到的問題,順便邊研究邊給大家獻丑。。。

〇  X  〇 〇 〇

〇 〇 〇 〇 〇

〇 〇 〇 〇 〇

〇 〇 〇 〇 〇

〇 〇 〇 〇 〇

不過X點,把所有的圈連起來,不能重復,不能斜連,不能跳圈

第一步:我把這個圖變成程序可看懂的語言

11 12 13 14 15

21 22 23 24 25

31 32 33 34 35

41 42 43 44 45

51 52 53 54 55

第二步:設置了四個事件

首先每個點有四個走的方向,我給設置了四個方向事件

分別為:向上走、向下走、向左走、向右走

private function left($x, $y, $oldArr)

{

    if($y > 1)

    {

      if(false == in_array($x.$y-1, $oldArr)    //判斷此點是否走過

       {

          $oldArr[] = $x.$y-1;//記錄走過的點

           return $x."-".$y-1;//返回下一個點

       }

    }

    return false;

}

private function right($x, $y, $oldArr)

{

    if($y < 5)

    {

       if(false == in_array($x.$y+1, $oldArr)    

       {

          $oldArr[] = $x.$y+1;

           return $x."-".$y+1;

       }

    }

    return false;

}

private function up($x, $y, $oldArr)

{

    if($x > 1)

    {

       if(false == in_array($x-1.$y, $oldArr)    

       {

        $oldArr[] = $x-1.$y;

        return $x-1."-".$y;

       }

    }

    return false;

}

private function down($x, $y, $oldArr)

{

    if($x < 5)

    {

       if(false == in_array($x+1.$y, $oldArr)

      {

        $oldArr[] = $x+1.$y;//記錄走過的點     

        return $x+1."-".$y;

      }

    }

    return false;

}

第三步:開始寫試運行方法

當起點固定以后,開始選擇方向,當一個方向可走時,走到下一個點,然后繼續選擇方向,循環往復,直到所有點都走通為止。

 public function goTry($x, $y, $oldArr, $methods)                          

 {         

     $oldArr[] = $x.$y;                                             

     foreach($methods as $method)                       

     {   

         $next = $this->$method($x, $y, $oldArr);//循環走四個方向的可能性

         if(false == empty($next)) //如果此方向可走則繼續,否則,走另一個方向

         {   

             $xy = explode("-", $next);

            if($xy[0] != 1 && $xy[1] != 2) //12點處不能走

            {

             goTry($xy[0], $xy[1]); //遞歸循環

             }

         }        

     }            

 }                

第四步寫主方法:循環取調用

public function AGame($request, $response)    

{    

   $methods = array('left', 'right', 'up', 'down');                                         

    for($i=1;$i<=5;$i++)                      

    {                                         

        for($j=1; $j<=5; $j++)                

        {            

            //換不同的起點   

            if($i != 1 && $j != 2)

           {

            $oldArr = array();                      

            goTry($i, $j, $oldArr, $methods);

            if(count($oldArr) == 24)

            {

              var_dump($oldArr);exit;

            }

            }

        }                                     

    }                                         

}                                             


以上算是我分享的過程,代碼寫的可能有很多不好的地方,但寫算法還是挺有意思的一件事。像遞歸方法只聽過也是首次真正的去用,有些知識了解沒有用,當你真需要的時候估計不小心就想到了

因為知道的知識甚少,上午看了個小游戲有點興趣就寫博客的過程邊實現了下。。。

最后注我的筆名                      ---小夢



同步博文:http://www.cnblogs.com/newbalanceteam/p/4835894.html

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林甸县| 西盟| 宝兴县| 遂平县| 洛隆县| 丹江口市| 庐江县| 湘潭市| 易门县| 洪洞县| 陵水| 新和县| 佳木斯市| 鹤峰县| 灌南县| 明水县| 依安县| 怀仁县| 大姚县| 尤溪县| 磐石市| 萍乡市| 张掖市| 通化县| 电白县| 青浦区| 饶河县| 呼玛县| 华宁县| 哈密市| 延津县| 宣威市| 苏州市| 石林| 萝北县| 隆昌县| 濉溪县| 小金县| 大宁县| 靖江市| 江油市|