電影訊息
關鍵下一秒--Next

预见未来/惊魂下一秒/关键下一秒

6.2 / 168,347人    96分鐘

導演: 李塔瑪何瑞
編劇: 強納森漢斯林
演員: 尼可拉斯凱吉 茱莉安摩爾 潔西卡貝兒 湯瑪斯科瑞奇曼 彼得福克
電影評論更多影評

Eason

2010-06-24 10:19:57

未經測試的NEXT()原始碼


做為一個程式設計師,這是我看過的最能讓我聯想起工作的電影。以致於我非常想用程序來解釋一下電影的邏輯。
因為影片中男主沒有在「預見」前表現出任何愁眉凝視或大聲小聲的喊出必殺技的名字,所以可以認為男主的腦子裡有一個進程專門處理「預見」,並不需要他特意驅動。
因為改變的某個未來會影響整個過程,所以改變後要在改變的基礎上「預測」。一旦遇到難以挽回的「DeadEnd」則預測歸零重來。
以下是代碼,其中未經定義的函數均有上帝提供。
未經測試~~

ARRAY LINE=NULL; //這個是兩分鐘的安全行動隊列
Next(NOW,120);
LINE;

FUNCTION String NEXT(NOW,SPAN)
{
   Int ISDeadEnd;
   //因為主角一開始只能預見2分鐘的內容所以循環時間為120秒
   For (INT i=0;i< SPAN;i++)
   {
       DefaultActvalue=actvalue;//這一秒的預設行為
       
       //判斷i秒後的危險值,有危險返回true循環操作指導安全
       WHILE(ISDangours(i,GetAction(Actvalue)))
       {
          IF(ISDangours(I,GetAction(Actvalue))==」DeadEnd」)
          {
              IsDeadEnd=1;
              Continue;
          }
          Actvalue=GetReActValue();
 
       }


       IF(IsDeadEnd!=1)
       {
           IF(DefaultActvalue!=Actvalue)
           {
              NEXT(NOW+I,SPAN-I); //當發現某一秒的安全行為和預設行為不同時
           }
           Else
           {
              LINE.ADD(Actvalue); //沒有危險時把安全行為假如行為隊列
              I++;
           }
       }
       ELSE
       {
            LINE.DEL(ALL);
            I=0;
        }
   }
   SetTimeOut(Next(),120);//2分鐘後再調用
}


評論