PHP+Javascript模拟Matrix画面

  •   2009-07-31/22:56
  •     直接存为*.php文件运行即可。

    <?
      $color_back="#000000";
      $number_w=8;
      $number_h=6;
      $space=1;
      $font_size=20;
      $speed=0;
    ?>
    <html>
    <head>
    <title>The Matrix</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

    <script language="javascript">
    // *****************************************************************
    //                   Written By Caocao
    //                   caocao@eastday.com
    //                   http://caocao.oso.com.cn
    // *****************************************************************
    number_h=<? echo $number_h;?>;
    number_w=<? echo $number_w;?>;
    step=5;
    text=new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    grad=new Array("#000000","#004000","#008000","#00C000","#00FF00");

    function line()
    {
      this.start=100;
      this.end=60;
      this.restart=0;
    }

    function randchar()
    {
      return (text[Math.round(Math.random()*25)]);
    }

    function initial()
    {
      matrix=new Array();
      light=new Array();
      for (i=0;i<number_h;i++)
      {
        for (j=0;j<number_w;j++)
        {
          matrix[i*number_h+j]="<? echo $color_back;?>";
        }
      }
      for (j=0;j<number_w;j++)
      {
        light[j]=new line();
      }
    }

    function new_light()
    {
      for (j=0;j<number_w;j++)
      {
        if (light[j].restart==0)
        {
          light[j].start=0;
          light[j].end=-10-Math.round(Math.random()*20);
          light[j].restart=light[j].end-Math.round(Math.random()*20);
        }
        else
        {
          light[j].start++;
          light[j].end++;
          light[j].restart++;
        }
      }
    }

    function new_color(i,j)
    {
      if ((light[j].start-i)<5&&(light[j].start-i)>0)
      {
        return (light[j].start-i);
      }
      if ((i-light[j].end)<5&&(i-light[j].end)>0)
      {
        return (i-light[j].end);
      }
      if ((i-light[j].end)>4&&(light[j].start-i)>4)
      {
        return (4);
      }
      return (0);
    }

    function display()
    {
      for (i=0;i<number_h;i++)
      {
        for (j=0;j<number_w;j++)
        {
          eval("w"+i+"h"+j).innerHTML="<font color="+grad[new_color(i,j)]+">"+randchar()+"</font>";
        }
      }
    }

    function show()
    {
      new_light();
      display();
      setTimeout("show()",<? echo $speed;?>);
    }
    </script>
    <style type="text/css">
    <!--
    <?
      echo ".size,tr,td {  font-size: ".$font_size."pt; line-height: ".$font_size."pt ;color:#00FF00}n";
    ?>
    -->
    </style>
    </head>

    <?
      echo "<body bgcolor=".$color_back.">";

      echo "<table width=".($number_w*$font_size)." border=0 cellspacing=".$space." cellpadding=0>";
      for ($i=0;$i<$number_h;$i++)
      {
        echo "<tr>";
        for ($j=0;$j<$number_w;$j++)
        {
          echo "<td id=w".$i."h".$j.">M</td>";
        }
        echo "</tr>";
      }
      echo "</table>";
    ?>

    <script language="javascript">
      initial();
      show();
    </script>
    </body>
    </html>


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多