<?php
/**
 * aiTris - PHP playing Tetris. DHTML output.
 *
 * A fun script i wrote in school ~2002
 *
 * @author Karsten Deubert <karsten@deubert.net>
 * @license Creative Commons Share Alike
 * @license http://creativecommons.org/licenses/by-nc-sa/3.0/de/
 */

$cf[level]=$_REQUEST[cf_level];
$cf[reihen]=$_REQUEST[cf_reihen];
$cf[tetrise]=$_REQUEST[cf_tetrise];
$cf[loecher]=$_REQUEST[cf_loecher];
$cf[hoeher]=$_REQUEST[cf_hoeher];
$cf[y]=$_REQUEST[cf_y];
$cf[auto_restart]=$_REQUEST[cf_auto_restart];

if (!
$cf[level]) $cf[level]=0;
if (!
$cf[reihen]) $cf[reihen]=10;
if (!
$cf[tetrise]) $cf[tetrise]=20;
if (!
$cf[loecher]) $cf[loecher]=8;
if (!
$cf[hoeher]) $cf[hoeher]=2;
if (!
$cf[y]) $cf[y]=6;
if (!
$cf[auto_restart]) $cf[auto_restart]=0;

function 
loesungsindex($y$neue_loecher$hoeher$reihen$tetrise) {
    global 
$cf;
        
    
$zahl=1;
        
    
$z1=pow($reihen$cf[reihen]);
    
$z2=pow($tetrise$cf[tetrise]);
        
    
$n1=pow($neue_loecher$cf[loecher]);
    
$n2=pow($hoeher$cf[hoeher]);
    
$n3=pow($y$cf[y]);
        
    
$zaehler=$z1 $z2;
    
$nenner=$n1 $n2 $n3;
    if (!
$nenner$nenner=1;
    if (!
$zaehler$zaehler=1;
    
$zahl=$zaehler $nenner;

    return 
$zahl;
}

function 
leerefeld($feld) {
    global 
$cf;
    
$m=$cf[level]-1;
    
$i=22;
    while (
$i >= 0) {
        if (
$i <= $m) {
            
$j=0;
            while (
$j 10) {
                if (
rand(0,1)) {
                    
$feld[$i].="1";
                } else {
                    
$feld[$i].="0";
                }
                
$j++;
            }
        } else {
            
$feld[$i]="0000000000";
        }
        
$i--;
    }    
    return 
$feld;
}

function 
printfeld($feld) {
    
$i=count($feld);
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    while (
$i >= 0) {
        
$j=0;
        while(
$j strlen($feld[$i])) {
            
$m=$j+1;
            switch(
$feld[$i][$j]) {
                case 
'1':
                    
$color="#DD0000";
                    break;
                
                case 
'0':
                    
$color="#AAAAAA";
                    break;
                
                case 
'r':
                    
$color="#00DD00";
                    break;
                    
                case 
'n':
                    
$color="#0000DD";
                    break;
                
                case 
'g':
                    
$color="#DD00DD";
                    break;
            }     
            echo 
"this.document.getElementById('fr".$i."c".$m."').style.backgroundColor = '".$color."';\n";
            
$j++;
        }
        
$i--;
    }
    echo 
"//-->\n";
    echo 
"</script>";
}

$tileset=$_REQUEST[tileset];
if (!
$tileset) {
    
$tileset="normal";
}

if (
$tileset=="normal") {

function 
zahl2teil($zahl) {
    switch (
$zahl) {
        case 
1:
            
$teil[1]="1";
            
$teil[2]="1";
            
$teil[3]="1";
            
$teil[4]="1";
            break;
        
        case 
2:
            
$teil[1]="11";
            
$teil[2]="11";
            break;
            
        case 
3:
            
$teil[1]="011";
            
$teil[2]="110";
            break;
        
        case 
4:
            
$teil[1]="110";
            
$teil[2]="011";
            break;
        
        case 
5:
            
$teil[1]="100";
            
$teil[2]="111";
            break;
        
        case 
6:
            
$teil[1]="001";
            
$teil[2]="111";
            break;
        
        case 
7:
            
$teil[1]="111";
            
$teil[2]="010";
            break;
    }
    return 
$teil;
}

function 
getrandomteil() {
    
$zahl=rand(1,7);
    
$teil=zahl2teil($zahl);
    return 
$teil;
}

} else if (
$tileset=="var01") {

function 
zahl2teil($zahl) {
    switch (
$zahl) {
        case 
1:
            
$teil[1]="1";
            
$teil[2]="1";
            
$teil[3]="1";
            
$teil[4]="1";
            
$teil[5]="1";
            break;
        
        case 
2:
            
$teil[1]="111";
            
$teil[2]="110";
            break;
            
        case 
3:
            
$teil[1]="111";
            
$teil[2]="111";
            break;
        
        case 
4:
            
$teil[1]="111";
            
$teil[2]="011";
            break;
        
        case 
5:
            
$teil[1]="101";
            
$teil[2]="111";
            break;
        
        case 
6:
            
$teil[1]="11";
            
$teil[2]="11";
            break;
        
        case 
7:
            
$teil[1]="111";
            
$teil[2]="010";
            break;
        
        case 
8:
            
$teil[1]="1";
            
$teil[2]="1";
    }
    return 
$teil;
}

function 
getrandomteil() {
    
$zahl=rand(1,8);
    
$teil=zahl2teil($zahl);
    return 
$teil;
}    
    
} else if (
$tileset=="onebox") {
    function 
getrandomteil() {
        
$teil[1]="1";
        return 
$teil;
    }
}


function 
printteil($teil$location) {
    
$html="<table border=1 bordercolor=\"#BBBBBB\" cellspacing=0 cellpadding=0 style=\"border: 1px solid black;\">";
    
$i 1;
    while (
$i <= count($teil)) {
        
$html.="<tr>";
        
$j=1;
        while (
$j <= strlen($teil[$i])) {
            switch(
$teil[$i][$j]) {
                case 
'1':
                    
$color="#DD0000";
                    break;
                
                case 
'0':
                    
$color="#AAAAAA";
                    break;
            }     
            
$html.="<td bgcolor=\"$color\">&nbsp;&nbsp;&nbsp;</td>";
            
$j++;
        }
        
$html.="</tr>";
        
$i++;
    }
    
$html.="</table>";
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('".$location."').InnerHTML = '".$html."';\n";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
check_filled($row) {
    
$i=0;
    
$filled=true;
    while ((
$filled) && ($i 10)) {
        if (
$row[$i]=="0") {
            
$filled=false;
        }
        
$i++;
    }
    return 
$filled;
}

function 
drehelinks($teil) {
    
$b=strlen($teil[1]);
    
$h=count($teil);

    
$n_b=$h;
    
$n_h=$b;
    
    
$z=1;
    while (
$z <= $n_h) {
        
$n=1;
        while (
$n <= $n_b) {
            
$nteil[$z].=$teil[$n][$n_h-$z];
            
$n++;
        }
        
$z++;
    }
    
    return 
$nteil;
}

function 
dreherechts($teil) {
    
$b=strlen($teil[1]);
    
$h=count($teil);

    
$n_b=$h;
    
$n_h=$b;
    
    
$z=$n_h;
    while (
$z 0) {
        
$n=1;
        while (
$n <= $n_b) {
            
$nteil[$z].=$teil[$n][$n_h-$z];
            
$n++;
        }
        
$z--;
    }

    return 
$teil;
}

function 
create_params($array) {
    if (
count($array) > 1) {
        
$j=1;
        foreach (
$array as $akt_line) {
            
$params.="zeile[$j]=$akt_line&";
            
$j++;
        }
        
$params=substr($params0, -1);
    } else {
        
$params="zeile[1]=$array[1]";
    }
    return 
$params;
}

function 
check_double($row_1$row_2) {
    
$i=0;
    
$double=false;
    if (
$row_1 && $row_2) {
        while (
$i 10) {
            if ((
$row_1[$i]!="0") && ($row_2[$i]!="0")) $double=true;
            
$i++;
        }
    }
    return 
$double;
}

function 
add_rows($row_old$row_new) {
    
$i=0;
    
$new_row="";
    while (
$i 10) {
        if (
$row_old[$i]!=0) {
            
$new_row.="1";
        } else if (
$row_new[$i]!=0) {
            
$new_row.="n";
        } else {
            
$new_row.="0";
        }
        
$i++;
    }
    return 
$new_row;
}

function 
check_loch($row_u$row_o) {
    
$i=0;
    
$loch=false;
    while (
$i 10) {
        if (
$row_u[$i]) $loch=true;
        
$i++;
    }
    return 
$loch;
}

function 
check_game_over($feld) {
    
$game_over=false;
    if (
$feld[23]!="") {
        
$i=1;
        while (
$i <= 10) {
            if (
$feld[23][$i]!="0") {
                
$feld[23][$i]="g";
            }
            
$i++;
        }
        
$game_over=true;
    }
    return 
$game_over;
}

function 
check_leeres_feld($feld) {
    
$leer=true;
    
$i=0;
    while (
$i 23) {
        
$j=0;
        while (
$j 10) {
            if (
$feld[$i][$j]!="0"$leer=false;
            
$j++;
        }
        
$i++;
    }
    return 
$leer;
}

function 
dropteil($feld$teil$x) {
    
$breite=strlen($teil[1]);
    
$hoehe=count($teil);
    
    
$pre_teil=str_repeat("0"$x);
    
$after_laenge=10-strlen($pre_teil);
    
$after_teil=str_repeat("0"$after_laenge-$breite);
    
    
$i=1;
    while (
$i <= $hoehe) {
        
$zeile[$i]=$pre_teil.$teil[$i].$after_teil;
        
$i++;
    }

    
$row=0;
    if(!
check_leeres_feld($feld)) {
        
$row=22;
        
$do=true;
        while ((
$row >= 0) && ($do)) {
            
$i=1;
            while (
$i <= $hoehe) {
                if (
check_double($feld[$row+$i-1], $zeile[$i])) {
                    
$do=false;
                }
                
$i++;
            }
            if (
$do$row--;
        }
        
        
$do=true;
        while ((
$row <= 22) && ($do)) {
            
$i=1;
            
$do=false;
            while (
$i <= $hoehe) {
                if (
check_double($feld[$row+$i-1], $zeile[$i])) {
                    
$do=true;
                } 
                
$i++;
            }
            if (
$do$row++;
        }
        if (
$row<0) {
            
$row=0;
        }
        
    }
        
    
$k=1;
    while (
$k <= $hoehe) {
        
$feld[$row]=add_rows($feld[$row], $zeile[$k]);
        
$k++;
        
$row++;
    }
    
    return 
$feld;
}

function 
update_feld($feld) {
    
$i=0;
    while (
$i 23) {
        
$feld[$i]=strtr($feld[$i], "n""1");
        
$feld[$i]=strtr($feld[$i], "r""1");
        if (
check_filled($feld[$i])) {
            
$n=$i;
            while (
$n 23) {
                
$feld[$n]=$feld[$n+1];
                
$n++;
            }
            
$feld[22]="0000000000";
            
$i--;
        }
        
$i++;
    }
    return 
$feld;
}

function 
parse_rows($feld) {
    
$i=0;
    while (
$i <= 22) {
        if (
check_filled($feld[$i])) {
            
$feld[$i]=strtr($feld[$i], "1""r");
            
//$feld[$i]="rrrrrrrrrr";
        
}
        
$i++;
    }
    return 
$feld;
}

function 
count_loecher($feld) {
    
$loecher=0;
    
$i=0;
    while (
$i <= 22) {
        
$j=0;
        while (
$j 10) {
            if (
$feld[$i][$j]=="0") {
                
$m=$i+1;
                
$do=true;
                while ((
$m <= 22) && ($do)) {
                    if (
$feld[$m][$j]!="0") {
                        
$loecher++;
                        
$do=false;
                    }
                    
$m++;
                }
            }
            
$j++;
        }
        
$i++;
    }
    return 
$loecher;
}

function 
count_hoehe($feld) {
    
$i=0;
    
$hoehe=0;
    while (
$i <= 22) {
        
$j=0;
        
$is_reihe=false;
        
$do=true;
        while ((
$j 10) && ($do)) {
            if (
$feld[$i][$j]!="0") {
                
$do=false;
                
$is_reihe=true;
            }
            
$j++;
        }
        if (
$is_reihe$hoehe++;
        
$i++;
    }
    return 
$hoehe;
}

function 
check_y($feld) {
    
$y=0;
    
$do=true;
    while ((
$y <= 22) && ($do)) {
        
$j=0;
        while ((
$j 10) && ($do)) {
            if (
$feld[$y][$j]=="n"$do=false;
            
$j++;
        }
        if (
$do$y++;
    }
    return 
$y;
}

function 
count_reihen($feld) {
    
$reihen=0;
    
$i=22;
    while (
$i >=0) {
        
$j=0;
        
$is_reihe=true;
        while ((
$is_reihe) && ($j 10)) {
            if (
$feld[$i][$j]=="0"$is_reihe=false;
            
$j++;
        }
        if (
$is_reihe$reihen++;
        
$i--;
    }
    return 
$reihen;
}

function 
updatestatus($zeit$reihen$tetrise$runde) {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('zeit').value = '".$zeit."';\n";
    echo 
"this.document.getElementById('reihen').value = '".$reihen."';\n";
    echo 
"this.document.getElementById('tetrise').value = '".$tetrise."';\n";
    echo 
"this.document.getElementById('runde').value = '".$runde."';\n";
    echo 
"//-->\n";
    echo 
"</script>";    
}

function 
updaterunde($zeit$reihen$tetrise$loesung) {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('runde_zeit').value = '".$zeit."';\n";
    echo 
"this.document.getElementById('runde_reihen').value = '".$reihen."';\n";
    echo 
"this.document.getElementById('runde_tetrise').value = '".$tetrise."';\n";
    echo 
"this.document.getElementById('runde_loesung').value = '".$loesung."';\n";
    echo 
"//-->\n";
    echo 
"</script>";    
}

function 
updatestat($minli$maxli$zeitrunde) {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('status_minli').value = '".$minli."';\n";
    echo 
"this.document.getElementById('status_maxli').value = '".$maxli."';\n";
    echo 
"this.document.getElementById('status_zeitrunde').value = '".$zeitrunde."';\n";
    echo 
"//-->\n";
    echo 
"</script>";    
}

function 
feld_clear() {
    
$i=22;
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    while (
$i >= 0) {
        
$j=0;
        while(
$j 10) {
        
$m=$j+1;
            echo 
"this.document.getElementById('fr".$i."c".$m."').style.backgroundColor = '#AAAAAA';\n";
            
$j++;
        }
        
$i--;
    }
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
feld_red() {
    
$i=22;
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    while (
$i >= 0) {
        
$j=0;
        while(
$j 10) {
        
$m=$j+1;
            echo 
"this.document.getElementById('fr".$i."c".$m."').style.backgroundColor = '#DD0000';\n";
            
$j++;
        }
        
$i--;
    }
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
feld_g() {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('fr14c4').innerHTML = '&nbsp;<b>G</b>';\n";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
feld_a() {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('fr14c5').innerHTML = '&nbsp;<b>A</b>';\n";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
feld_m() {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('fr14c6').innerHTML = '&nbsp;<b>M</b>';\n";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
feld_e1() {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('fr14c7').innerHTML = '&nbsp;<b>E</b>';\n";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
feld_e2() {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('fr12c6').innerHTML = '&nbsp;<b>E</b>';\n";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
feld_o() {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('fr12c4').innerHTML = '&nbsp;<b>O</b>';\n";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
feld_v() {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('fr12c5').innerHTML = '&nbsp;<b>V</b>';\n";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
feld_r() {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('fr12c7').innerHTML = '&nbsp;<b>R</b>';\n";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
feld_clear2() {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.getElementById('fr14c4').innerHTML = '&nbsp;&nbsp;&nbsp;';\n";
    echo 
"this.document.getElementById('fr14c5').innerHTML = '&nbsp;&nbsp;&nbsp;';\n";
    echo 
"this.document.getElementById('fr14c6').innerHTML = '&nbsp;&nbsp;&nbsp;';\n";
    echo 
"this.document.getElementById('fr14c7').innerHTML = '&nbsp;&nbsp;&nbsp;';\n";
    echo 
"this.document.getElementById('fr12c4').innerHTML = '&nbsp;&nbsp;&nbsp;';\n";
    echo 
"this.document.getElementById('fr12c5').innerHTML = '&nbsp;&nbsp;&nbsp;';\n";
    echo 
"this.document.getElementById('fr12c6').innerHTML = '&nbsp;&nbsp;&nbsp;';\n";
    echo 
"this.document.getElementById('fr12c7').innerHTML = '&nbsp;&nbsp;&nbsp;';\n";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
do_restart() {
    echo 
"<script type=\"text/javascript\">\n";
    echo 
"<!--\n";
    echo 
"this.document.forms.config.submit;";
    echo 
"//-->\n";
    echo 
"</script>";
}

function 
outro() {
    
feld_red();
    
feld_clear();
    
feld_g();
    
feld_clear();
    
feld_a();
    
feld_clear();
    
feld_m();
    
feld_clear();
    
feld_e1();
    
feld_clear();
    
sleep(1);
    
feld_o();
    
feld_clear();
    
feld_v();
    
feld_clear();
    
feld_e2();
    
feld_clear();
    
feld_r();
    
sleep(2);
    
feld_clear();
    
feld_clear2();
    
feld_red();
}



?>

<html>
<head>
<title>aiTris</title>
<style type='text/css'>

FONT,body,td,b,table {
    font-family : Verdana;
    font-size : 10pt;
    font-color: #121212;
}

a,a:hover,.link {
    font-family: Verdana;
    font-size: 8pt;
}

.label {
    font-size: 12pt;
}

a:link, a:visited {
    text-decoration: none;
    color: white;
}

a:active {
    text-decoration: none;
    color: white;
}

.ueb {
    text-decoration: none;
    color: #EFEFEF;
    font-weight: bold;
    font-size: 14pt;
    font-family: Verdana;
}

.stat {
    border: 0px;
    background-color: #232323;
    color: #DDDDDD;
}

a:hover {
    text-decoration: none;
    font-weight: bold;
    color: white;
}
</style>
</head>

<body text='#DDDDDD' bgcolor='#232323'>
<center>

<font color='#EFEFEF' class='ueb'>aiTris</font><br>
<br>
<form action='index.php' method='post' name='config'>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
 <td colspan=3>
  <center><table border=0 cellspacing=1 cellpadding=0>
   <tr>
    <td><b>Runde</b>: <input type=text class='stat' id='runde' size=3 readonly></td>
    <td><b>Zeit</b>: <input type=text class='stat' id='zeit' size=9 readonly></td>
    <td><b>Reihen</b>: <input type=text class='stat' id='reihen' size=3 readonly></td>
    <td><b>Tetrise</b>: <input type=text class='stat' id='tetrise' size=2 readonly></td>
   </tr>
  </table></center>
 </td>
</tr>
<tr>
<td>
<table border=0 cellspacing=0 cellpadding=1>
 <tr>
  <td>Tileset</td>
  <td>
   <select name='cf_tileset'>
    <option value='normal'>normal</option>
    <option value='var01'>freestyle</option>
    <option value='onebox'>onebox</option>
   </select>
  </td>
 </tr>
 <tr>
  <td>Level</td>
  <td>
   <select name='cf_level'>
<?php
$i
=0;
while (
$i <= 10) {
    
$str="";
    if (
$cf[level]==$i$str=" SELECTED";
    echo 
"<option value='$i'$str>$i</option>";
    
$i++;
}
?>
   </select>
  </td>
 </tr>
 <tr>
  <td colspan=2>
   &nbsp;
  </td>
 </tr>
 <tr>
  <td colspan=2 style='border: 1px dotted #aabbcc;'>
   <center>&nbsp;reihen + tetrise&nbsp;<hr width='95%'>&nbsp;loecher + y + hoeher&nbsp;</center>
  </td>
 </tr>
 <tr>
  <td colspan=2>
   &nbsp;
  </td>
 </tr>
 <tr>
  <td>Config</td>
  <td>
   <select name='cf_level'>
    <option value='Karsten_01'>Karsten 01</option>
   </select>
  </td>
 </tr>
 <tr>
  <td>Reihen</td>
  <td><input type=text name='cf_reihen' size=3 value='<?=$cf[reihen]?>'></td>
 </tr>
 <tr>
  <td>Tetrise</td>
  <td><input type=text name='cf_tetrise' size=3 value='<?=$cf[tetrise]?>'></td>
 </tr>
 <tr>
  <td>Loecher</td>
  <td><input type=text name='cf_loecher' size=3 value='<?=$cf[loecher]?>'></td>
 </tr>
 <tr>
  <td>Y</td>
  <td><input type=text name='cf_y' size=3 value='<?=$cf[y]?>'></td>
 </tr>
 <tr>
  <td>Hoeher</td>
  <td><input type=text name='cf_hoeher' size=3 value='<?=$cf[hoeher]?>'></td>
 </tr>
 <tr>
  <td colspan=2>
   &nbsp;<br>
   <center>
   <?php
$aa
="";
if (
$cf[auto_restart]) $aa=" CHECKED";
echo 
"<input type=checkbox name='cf_auto_restart'$aa>auto&nbsp;";
?>
<input type=submit name=submit value='(re)start'><br><button name='stop' value='stop' onClick='javascript:window.stop();'>stop</button></center>
  </td>
 </tr>
</table>
</form>
</td>
<td>

<table border=1 bordercolor='#BBBBBB' cellspacing=0 cellpadding=1 style='border: 1px solid black;'>
<?php
$i
=22;
while (
$i >= 0) {
    echo 
"<tr>";
    
$j=1;
    while (
$j <= 10) {
        
$name="fr".$i."c".$j;
        echo 
"<td id='$name' bgcolor='#AAAAAA'>&nbsp;&nbsp;&nbsp;</td>";
        
$j++;
    }
    echo 
"</tr>\n";
    
$i--;
}
?>
</table>
</td>
<td valign=top>
&nbsp;
<table border=0 cellspacing=1 cellpadding=1>
 <tr>
  <td><b>Teil</b></td>
  <td id='t'>&nbsp;</td>
 </tr>
 <tr>
  <td><b>Variante 1</b></td>
  <td id='v1'>&nbsp;</td>
 </tr>
 <tr>
  <td><b>Variante 2</b></td>
  <td id='v2'>&nbsp;</td>
 </tr>
 <tr>
  <td><b>Variante 3</b></td>
  <td id='v3'>&nbsp;</td>
 </tr>
 <tr>
  <td><b>Variante 4</b></td>
  <td id='v4'>&nbsp;</td>
 </tr>
</table>
</td>
</tr>
<tr>
 <td colspan=3>
  <center><table border=0 cellspacing=1 cellpadding=0>
   <tr>
    <td><b>Rundenzeit</b>: <input type=text class='stat' id='runde_zeit' size=5 readonly></td>
    <td><b>Reihen</b>: <input type=text class='stat' id='runde_reihen' size=3 readonly></td>
    <td><b>Tetrise</b>: <input type=text class='stat' id='runde_tetrise' size=2 readonly></td>
    <td><b>Loesung</b>: <input type=text class='stat' id='runde_loesung' size=4 readonly></td>
   </tr>
  </table></center>
 </td>
</tr>
<tr>
 <td colspan=3>
  <center><table border=0 cellspacing=1 cellpadding=0>
   <tr>
    <td><b>min. LI</b>: <input type=text class='stat' id='status_minli' size=6 readonly></td>
    <td><b>max. LI</b>: <input type=text class='stat' id='status_maxli' size=6 readonly></td>
    <td><b>Zeit/Runde</b>: <input type=text class='stat' id='status_zeitrunde' size=4 readonly></td>
   </tr>
  </table></center>
 </td>
</tr>
</table>
<br>
<center>
by <a href='mailto:karsten@deubert.net'>Karsten Deubert</a>
</center>

</font>

<?php

$submit
=$_REQUEST[submit];

if (
$submit) {

$startzeit=time();

$feld=leerefeld($feld);

set_time_limit(0);
$runde=1;

$reihen_abgebaut=0;
$game_over=false;

$max_li=0;
$min_li=1000000;

$stop_runde=0;
$stop_runde2=5;

$tetris=0;

while (!
$game_over) { 
    
$rz=time();
    
$feld=update_feld($feld);
        
    
$teil=getrandomteil();
    
    unset(
$tvar);
    
$tvar[1]=$teil;
    
$tvar[2]=drehelinks($tvar[1]);
    
$tvar[3]=drehelinks($tvar[2]);
    
$tvar[4]=drehelinks($tvar[3]);
    
    
printteil($teil"t");
    
printteil($tvar[1], "v1");
    
printteil($tvar[2], "v2");
    
printteil($tvar[3], "v3");
    
printteil($tvar[4], "v4");
    
    if (
$tvar[1]==$tvar[3]) {
        if (
$tvar[1]==$tvar[2]) {
            unset(
$tvar[2]);
            unset(
$tvar[3]);
            unset(
$tvar[4]);
        } else {
            unset(
$tvar[3]);
            unset(
$tvar[4]);
        }
    }
    
    unset (
$loesung);
    
    
$vorher_loecher=count_loecher($feld);
    
$vorher_hoehe=count_hoehe($feld);
    
    
$index=1;
    
$akt_l=1;
    while (
$index <= count($tvar)) {
        
$max_x=10-strlen($tvar[$index][1]);
        
$akt_x=0;
        while (
$akt_x <= $max_x) {
            
$loesung[$akt_l][feld]=parse_rows(dropteil($feld$tvar[$index], $akt_x));
            
$loesung[$akt_l][x]=$akt_x;
            
$loesung[$akt_l][y]=check_y($loesung[$akt_l][feld]);
            
$loesung[$akt_l][tvar]=$index;
            
$loesung[$akt_l][neue_loecher]=count_loecher($loesung[$akt_l][feld])-$vorher_loecher;
            
$loesung[$akt_l][hoeher]=count_hoehe($loesung[$akt_l][feld])-$vorher_hoehe;
            
$loesung[$akt_l][reihen]=count_reihen($loesung[$akt_l][feld]);
            
$loesung[$akt_l][tetrise]=0;
            if (
$loesung[$akt_l][reihen]==4$loesung[$akt_l][tetrise]=1;
            
$loesung[$akt_l][zahl]=loesungsindex($loesung[$akt_l][y], $loesung[$akt_l][neue_loecher], $loesung[$akt_l][hoeher], $loesung[$akt_l][reihen], $loesung[$akt_l][tetrise]);
            
$akt_l++;
            
$akt_x++;
        }
        
$index++;
    }
    
    
    
$akt_l--;
    
    
$i=1;
    
$neue_loecher=500;
    
$hoeher=500;
    
$reihen=0;
    
$y=500;
    
    unset(
$auswahl);
    unset(
$auswahl_2);
    
    while (
$i <= $akt_l) {
        if (
$loesung[$i][zahl] > $max_li$max_li=$loesung[$i][zahl];
        if (
$loesung[$i][zahl] < $min_li$min_li=$loesung[$i][zahl];        
        if (
$loesung[$i][neue_loecher] < $neue_loecher$neue_loecher=$loesung[$i][neue_loecher];
        if (
$loesung[$i][hoeher] < $hoeher$hoeher=$loesung[$i][hoeher];
        if (
$loesung[$i][y] < $y$y=$loesung[$i][y];
        if (
$loesung[$i][reihen] > $reihen$reihen=$loesung[$i][reihen];
        
$zahl=$loesung[$i][zahl];
        
$auswahl["$zahl"][]=$i;
        
$i++;
    }
    
    
$zahl_h=0;
    
    foreach (
$auswahl as $key => $val) {
        if (
$key $zahl_h$zahl_h=$key;
    }
    
    foreach (
$auswahl as $key => $val) {
        if (
$key == $zahl_h) {
            foreach (
$val as $tmp) {
                
$auswahl_2[]=$tmp;
            }
        }
    }
    
    unset(
$wahl);

    
$wahl[wahl]=$auswahl_2[rand(0count($auswahl_2)-1)];
    
    
$wahl[loesungen]=$akt_l;
    
$wahl[teil]=$tvar[$loesung[$wahl[wahl]][tvar]];
    
$wahl[x]=$loesung[$wahl[wahl]][x];
    
$wahl[y]=$loesung[$wahl[wahl]][y];
    
$wahl[reihen]=$loesung[$wahl[wahl]][reihen];
    
$wahl[hoeher]=$loesung[$wahl[wahl]][hoeher];
    
$wahl[neue_loecher]=$loesung[$wahl[wahl]][neue_loecher];
    
$wahl[feld]=$loesung[$wahl[wahl]][feld];
    
$wahl[loecher_insg]=$wahl[neue_loecher]+$vorher_loecher;
    
$wahl[hoehe_insg]=$wahl[hoeher]+$vorher_hoehe;
    
$wahl[loesungsindex]=$zahl_h;
    
$wahl[tetrise]=$loesung[$wahl[wahl]][tetrise];
    
    if (
$wahl[reihen]==4$tetris++;
    
    
$reihen_abgebaut+=$wahl[reihen];
    
    
$feld=$wahl[feld];    
    
    
printfeld($feld);
    
    
$zeit3=time();
    
$zeit2=$zeit3 $startzeit;
    
$zeit4=$zeit3 $rz;
    
$zeit[tage]=date("d"$zeit2)-1;
    
$zeit[stunden]=date("H"$zeit2)-1;
    
$zeit[minuten]=date("i"$zeit2);
    
$zeit[sekunden]=date("s"$zeit2);
    
$zeit5[tage]=date("d"$zeit4)-1;
    
$zeit5[stunden]=date("H"$zeit4)-1;
    
$zeit5[minuten]=date("i"$zeit4);
    
$zeit5[sekunden]=date("s"$zeit4);
    
$zeit5[runde]=$zeit5[minuten].":".$zeit5[sekunden];
    
$zeit[jetzt]=$zeit[tage]."d ".$zeit[stunden].":".$zeit[minuten].":".$zeit[sekunden];
    
$zeit[runde]=round($zeit2 $runde2);
    
/*    
    echo "<tr><td colspan=2>x: $wahl[x] y: $wahl[y]</td></tr>";
    echo "<tr><td colspan=2>loecher neu: $wahl[neue_loecher]</td></tr>";
    echo "<tr><td colspan=2>loecher insgesamt: $wahl[loecher_insg] (vorher: $vorher_loecher)</td></tr>";
    echo "<tr><td colspan=2>reihen neu: $wahl[hoeher]</td></tr>";
    echo "<tr><td colspan=2>reihen insgesamt: $wahl[hoehe_insg] (vorher: $vorher_hoehe)</td></tr>";
    echo "<tr><td colspan=2>reihen voll: $wahl[reihen] (insgesamt: $reihen_abgebaut)</td></tr>";
    echo "<tr><td colspan=2>loesung(/en): $wahl[wahl]/$wahl[loesungen]</td></tr>";
*/    
    
$loesung_txt="$wahl[wahl]/$wahl[loesungen]";
    
    
updatestatus($zeit[jetzt], $reihen_abgebaut$tetris$runde);
    
updaterunde($zeit5[runde], $wahl[reihen], $wahl[tetrise], $loesung_txt);
    
updatestat($min_li$max_li$zeit[runde]);
    
    
$game_over=check_game_over($feld);
    
    if (
$stop_runde) {
        if (
$runde >= $stop_runde2) {
            
$game_over=1;
        }
    }
    
    if (
$game_over) {
        
outro();
        if (
$cf[auto_restart]) {
            
sleep(3);
            
do_restart();
        }
    }
    
    
/*if ($game_over) {
        $endzeit=time();
        $zeit2=$endzeit - $startzeit;
        $zeit[tage]=date("d", $zeit2)-1;
        $zeit[stunden]=date("H", $zeit2)-1;
        $zeit[minuten]=date("i", $zeit2);
        $zeit[sekunden]=date("s", $zeit2);
        $zeit[komplett]=$zeit[tage]."d ".$zeit[stunden].":".$zeit[minuten].":".$zeit[sekunden];
        $zeit[runde]=round($zeit2 / $runde, 2);
        echo "<a name='end'>";
        echo "<br>";
        echo "<b>game over !</b><br>";
        echo "runden: $runde<br>";
        echo "abgebaute reihen: $reihen_abgebaut<br>";
        echo "zeit: $zeit[komplett]<br>";
        echo "zeit pro runde: $zeit[runde]<br>";
        echo "maximaler lösungsindex: $max_li<br>";
        echo "minimaler lösungsindex: $min_li<br>";
        echo "tetris(se): $tetris<br>";
    }*/
    
$runde++;
    
    
flush();
}
}
?>

</body>
</html>