The Net Wizard HauptseiteISP SetupNetzwerkeVelotourenSoftwareKryptografieVaria

2048

Bei diesem Spiel geht es darum, die Nummern im Feld so hin und her zu schieben, dass zwei gleiche Zahlen nebeneinander zu stehen kommen. Ist dies der Fall, werden die beiden Zahlen addiert. Das Ziel ist es, auf 2048 zu kommen.

Hier geht es zum Spiel.

Hier zum Download des Spieles.

    001:
    002:
    003:
    004:
    005:
    006:
    007:
    008:
    009:
    010:
    011:
    012:
    013:
    014:
    015:
    016:
    017:
    018:
    019:
    020:
    021:
    022:
    023:
    024:
    025:
    026:
    027:
    028:
    029:
    030:
    031:
    032:
    033:
    034:
    035:
    036:
    037:
    038:
    039:
    040:
    041:
    042:
    043:
    044:
    045:
    046:
    047:
    048:
    049:
    050:
    051:
    052:
    053:
    054:
    055:
    056:
    057:
    058:
    059:
    060:
    061:
    062:
    063:
    064:
    065:
    066:
    067:
    068:
    069:
    070:
    071:
    072:
    073:
    074:
    075:
    076:
    077:
    078:
    079:
    080:
    081:
    082:
    083:
    084:
    085:
    086:
    087:
    088:
    089:
    090:
    091:
    092:
    093:
    094:
    095:
    096:
    097:
    098:
    099:
    100:
    101:
    102:
    103:
    104:
    105:
    106:
    107:
    108:
    109:
    110:
    111:
    112:
    113:
    114:
    115:
    116:
    117:
    118:
    119:
    120:
    121:
    122:
    123:
    124:
    125:
    126:
    127:
    128:
    129:
    130:
    131:
    132:
    133:
    134:
    135:
    136:
    137:
    138:
    139:
    140:
    141:
    142:
    143:
    144:
    145:
    146:
    147:
    148:
    149:
    150:
    151:
    152:
    153:
    154:
    155:
    156:
    157:
    158:
    159:
    160:
    161:
    162:
    163:
    164:
    165:
    166:
    167:
    168:
    169:
    170:
    171:
    172:
    173:
    174:
    175:
    176:
    177:
    178:
    179:
    180:
    181:
    182:
    183:
    184:
    185:
    186:
    187:
    188:
    189:
    190:
    191:
    192:
    193:
    194:
    195:
    196:
    197:
    198:
    199:
    200:
    201:
    202:
    203:
    204:
    205:
    206:
    207:
    208:
    209:
    210:
    211:
    212:
    213:
    214:
    215:
    216:
    217:
    218:
    219:
    220:
    221:
    222:
    223:
    224:
    225:
    226:
    227:
    228:
    229:
    230:
    231:
    232:
    233:
    234:
    235:
    236:
    237:
    238:
    239:
    240:
    241:
    242:
    243:
    244:
    245:
    246:
    247:
    248:
    249:
    250:
    251:
    252:
    253:
    254:
    255:
    256:
    257:
    258:
    259:
    260:
    261:
    262:
    263:
    264:
    265:
    266:
    267:
    268:
    269:
    270:
    271:
    272:
    273:
    274:
    275:
    <?php

    session_start
    ();
    print_head();
    if (isset(
    $_POST['geometry'])){
         
    $n=$_POST['geometry'];
         echo 
    "$n<p>";
    } else {
        
    $n=4;
    }
    if (! isset(
    $_SESSION['state'])) {
        
    $board=array(
            array(
    0,0,0,0,0,0,0,0,0),
            array(
    0,0,0,0,0,0,0,0,0),
            array(
    0,0,0,0,0,0,0,0,0),
            array(
    0,0,0,0,0,0,0,0,0),
            array(
    0,0,0,0,0,0,0,0,0),
            array(
    0,0,0,0,0,0,0,0,0),
            array(
    0,0,0,0,0,0,0,0,0),
            array(
    0,0,0,0,0,0,0,0,0),
            array(
    0,0,0,0,0,0,0,0,0)
        );
        
    $score=0;
        
    $res=add_rand($board,$n);
        
    $_SESSION['n']=$n;
        
    $_SESSION['state']=1;
        
    $_SESSION['board']=$board;
        
    $_SESSION['score']=$score;
    } else {
        
    $board=$_SESSION['board'];
        
    $n=$_SESSION['n'];
        
    $score=$_SESSION['score'];
    }


    $action=$_POST["dir"];
    if (
    $action == 'u') {
        
    $res=move_up($board,$n,$score);
    } elseif (
    $action == 'd') {
        
    $res=move_down($board,$n,$score);
    } elseif (
    $action == 'l') {
        
    $res=move_left($board,$n,$score);
    } elseif (
    $action == 'r') {
        
    $res=move_right($board,$n,$score);
    } elseif (
    $action == 'reset'){
        echo 
    "reset";
    }
    if ( 
    $res == ){
        
    $res=add_rand($board,$n);
    }
    draw_board($board,$action,$n,$score);
    $_SESSION['board']=$board;
    $_SESSION['score']=$score;
    game_won($board,$n);
    game_over($board,$n);
    return(
    0);

    #functions
    function game_won($board,$n){
        
    $won=0;
        for (
    $i=0;$i<$n;$i++){
            for (
    $j=0;$j<$n;$j++){
                if (
    $board[$i][$j]==2048){
                    
    $won=1;
                }
            }
        }
        if (
    $won == 1){
            print 
    "<h2>Gratuliere, sie haben gewonnen</h2>";
            
    session_destroy();
        }
    }

    function 
    game_over($board,$n){
        
    $testboard=$board;
        
    $chboard=0;
        
    $res=move_up($testboard,$n,$tmp);
        if (
    $board != $testboard) {
            
    $chboard=1;
        }
        
    $res=move_left($testboard,$n,$tmp);
        if (
    $board != $testboard) {
            
    $chboard=1;
        }
        
    $res=move_right($testboard,$n,$tmp);
        if (
    $board != $testboard) {
            
    $chboard=1;
        }
        
    $res=move_down($testboard,$n,$tmp);
        if (
    $board != $testboard) {
           
    $chboard=1;
        }
        if (
    $chboard == 0){
            print 
    "<h2>Game over</h2>";
            
    session_destroy();
        }
    }

    function 
    add_rand(&$board,$n) {
        
    $n_free=0;
        for(
    $i=0;$i<$n;$i++){
            for(
    $j=0;$j<$n;$j++){
                if (
    $board[$i][$j] == 0) {
                    
    $n_free++;
                    
    $t=$board[$i][$j];
                }
            }
        }
        if (
    $n_free==0){
            return(
    0);
        }
        
    $i=rand(0,($n-1));
        
    $j=rand(0,($n-1));
        while (
    $board[$i][$j] != 0){
            
    $i=rand(0,($n-1));
            
    $j=rand(0,($n-1));
        }
        
    $tmp=rand(0,1);
        if (
    $tmp==0){
            
    $board[$i][$j]=2;
        } else {
            
    $board[$i][$j]=4;
        }
        return(
    1);
    }

    function 
    move_up(&$board,$n,&$score){
        
    $res=0;
        
    $tmpboard=$board;
        for (
    $j=0;$j<$n;$j++) {
            for (
    $i=0;$i<$n;$i++){
               
    $row[$i]=$board[$i][$j];
            }
            
    move_row_left($row,$n,$score);
            for (
    $i=0;$i<$n;$i++){
               
    $board[$i][$j]=$row[$i];
            }
        }
        if ( 
    $tmpboard != $board) {
            
    $res=1;
        }
        return(
    $res);
    }

    function 
    move_down(&$board,$n,&$score){
        
    $res=0;
        
    $tmpboard=$board;
        for (
    $j=0;$j<$n;$j++) {
            for (
    $i=0;$i<$n;$i++){
               
    $row[(($n-1)-$i)]=$board[$i][$j];
            }
            
    move_row_left($row,$n,$score);
            for (
    $i=0;$i<$n;$i++){
               
    $board[(($n-1)-$i)][$j]=$row[$i];
            }
        }
        if ( 
    $tmpboard != $board) {
            
    $res=1;
        }
        return(
    $res);
    }

    function 
    move_left(&$board,$n,&$score){
        
    $res=0;
        
    $tmpboard=$board;
        for (
    $j=0;$j<$n;$j++) {
            for (
    $i=0;$i<$n;$i++){
               
    $row[$i]=$board[$j][$i];
            }
            
    move_row_left($row,$n,$score);
            for (
    $i=0;$i<$n;$i++){
               
    $board[$j][$i]=$row[$i];
            }
        }
        if ( 
    $tmpboard != $board) {
            
    $res=1;
        }
        return(
    $res);
    }

    function 
    move_right(&$board,$n,&$score){
        
    $res=0;
        
    $tmpboard=$board;
        for (
    $j=0;$j<$n;$j++) {
            for (
    $i=0;$i<$n;$i++){
               
    $row[(($n-1)-$i)]=$board[$j][$i];
            }
            
    move_row_left($row,$n,$score);
            for (
    $i=0;$i<$n;$i++){
               
    $board[$j][(($n-1)-$i)]=$row[$i];
            }
        }
        if ( 
    $tmpboard != $board) {
            
    $res=1;
        }
        return(
    $res);
    }

    function 
    move_row_left(&$row,$n,&$score){
        
    rem_zeros($row,$n);
        
    add_id($row,$n,$score);
        
    rem_zeros($row,$n);
    }

    function 
    rem_zeros(&$row,$n){
        
    $l=0;
        for (
    $i=0;$i<$n;$i++){
            if (
    $row[$i]!=0){
                if (
    $l<$i){
                    
    $row[$l]=$row[$i];
                    
    $row[$i]=0;
                 }
                 
    $l++;
            }
        }
    }

    function 
    add_id(&$row,$n,&$score){
        for (
    $i=1;$i<$n;$i++){
            if (
    $row[($i-1)] == $row[$i]){
                
    $score=$score+$row[($i-1)]+$row[$i];
                
    $row[($i-1)] = $row[($i-1)]+$row[$i];
                
    $row[$i]=0;
            }
        }
    }

    function 
    print_head(){
        echo 
    "<html>";
        echo 
    "<head>";
        echo 
    "</head>";
        echo 
    "<body>";
    }
     
    function 
    draw_board($board,$action,$n,$score){
        echo 
    "<h3>2048</h3>";
        echo 
    "<table border='1'>";
        for (
    $i=0$i<$n$i++) {
            echo 
    "<tr>";
            for (
    $j=0$j<$n$j++) {
                
    $fname=strval($board[$i][$j]);
                
    $img="img/$fname.png";
                
    $alt=$board[$i][$j];
                echo 
    "<td><img src='$img' alt='$alt' width='70' height='70'></td>";
            }
            echo 
    "<tr>";
        }
        echo 
    "</table>";
        echo 
    "<table border='1'>";
        echo 
    "<tr>";
        echo 
    "<form action='2048.php' method='POST'>";
        echo 
    "<input type='hidden' name='dir' value='u'>";
        echo 
    "<td><input type='image' src='img/up.png' alt='up' width='70' height='70'></td>";
        echo 
    "</form>";

        echo 
    "<form action='2048.php' method='POST'>";
        echo 
    "<input type='hidden' name='dir' value='d'>";
        echo 
    "<td><input type='image' src='img/down.png' alt='down' width='70' height='70'></td>";
        echo 
    "</form>";

        echo 
    "<form action='2048.php' method='POST'>";
        echo 
    "<input type='hidden' name='dir' value='l'>";
        echo 
    "<td><input type='image' src='img/left.png' alt='left' width='70' height='70'></td>";
        echo 
    "</form>";
        echo 
    "<form action='2048.php' method='POST'>";
        echo 
    "<input type='hidden' name='dir' value='r'>";
        echo 
    "<td><input type='image' src='img/right.png' alt='right' width='70' height='70'></td>";
        echo 
    "</form>";
        echo 
    "</tr>";
        echo 
    "</table>";
        echo 
    "<p><b>score $score</b>";
        echo 
    "</body>";
        echo 
    "</html>";
    }
    ?>

Powered by w3.css