[PHP] Script-battle Runde 2 - 7-Segmentanzeige

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Murdoc, 24. Juli 2007 .

Schlagworte:
  1. 22. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    Und wird es noch eine Veröffentlichung der Scripte geben?
    Oder postet wieder jeder seins, wie beim letzten Mal.

    Spoiler
    Meins. (Ich hab's wieder eingerückt, damit's übersichtlicher ist...
    PHP:
    <!--
     by Telefonzelle
     Sa. 07. August, 17:30
    -->
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
     <head>
     <title>Telefonzelle:Scriptbattle:7-Segment</title>
     <style type="text/css">
      body {
       font-size:4px;
      }
      br { 
       clear:both; 
      }
      pre {
       float:left;
       margin:0px;
       padding:0px;
      }
     </style>
     </head>
     <body onLoad="document.xform.x.focus();">
      <form name="xform" action="" method="get"><input type="text" name="x" onKeyUp="document.xform.submit();" value="<?php  /* Gehört nicht zum Script, ist nur damit's schön aussieht! :) */  echo  preg_replace ( "/[^0-9]/" , "" , $_GET [ 'x' ]);  ?>" />
      <?php 
        $Z
    = $_GET [ 'x' ];
        
        
    $X [ 0 ]= '1110111' ;
        
    $X [ 1 ]= '0010010' ;
        
    $X [ 2 ]= '1011101' ;
        
    $X [ 3 ]= '1011011' ;
        
    $X [ 4 ]= '0111010' ;
        
    $X [ 5 ]= '1101011' ;
        
    $X [ 6 ]= '1101111' ;
        
    $X [ 7 ]= '1010010' ;
        
    $X [ 8 ]= '1111111' ;
        
    $X [ 9 ]= '1111011' ;
        
        function 
    b ( $x ) {
            
    $Y [ 0 ]= "XXXXX" ;
            
    $Y [ 1 ]= "X" ;
            
    $Y [ 2 ]= "X" ;
            
    $Y [ 3 ]= "XXXXX" ;
            
    $Y [ 4 ]= "X" ;
            
    $Y [ 5 ]= "X" ;
            
    $Y [ 6 ]= "XXXXX" ;
            
            
    $G = "   1 \n  2     3\n  2     3\n   4 \n  5     6\n  5     6\n   7 \n" ;
            
            for(
    $i = 0 ; $i < 7 ; $i ++) { 
                
    $G = str_replace ( $i + 1 ,( $x { $i })? $Y [ $i ]: " " , $G );
            }
            echo
    '<pre>' . $G . '</pre>' ;
        }
        for(
    $i = 0 ; $i < strlen ( $Z ); $i ++) {
            
    b ( $X [ $Z { $i }]);
        }
        
    ?>
     </body>
    </html>
     
  2. 23. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    ...hab das mit timer schon besprochen, er wird die tage die restlichen scripte veröffentlichen, damit jeder was davon hat !!
     
  3. 24. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    battle vorbei, sticky entfernt, ich lass noch auf wenn jemand sein script posten will.
     
  4. 25. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    oO

    uiui nich schlecht ^^

    hab zwar nich mitgemacht aber mein code war:
    PHP:
    <table><? $a = "<td><pre>
     00009999888877776666555522223333
    045689    0489 7231
    045689    0489 7231
     9999888866665555444422223333
    0268    068 975413
    0268    068 975413
     0000999988886666222233335555</td>"
    ;while( $x < strlen ( $q )){ $v = preg_replace ( '/\d/' , '' , preg_replace ( '/' . $q { $x }. '/' , 'X' , $a )); $x ++;echo  $v ;}
    ?>
    </table>

    sehr verwirrend ;-D aber in dieser form mit html und funktionierend nur 313byte groß :O aufruf mit xx.php?q=1234

    an die regel mit 2 zeichen hinter der letzten zahl hat sich wohl auch keiner dran gehalten

    nächstes mal bitte besser organisieren .. alle regeln in den thread und dann auch keine neuen dazuerfinden !
     
  5. 25. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    @enel, hab dein script mal geteste die darstellung ist auch bei dir nicht korrekt und ziemlich unschön, des weiteren kommt zu deiner dateigröße noch mindestens 14bytes hinzu, da es ratsam wäre "q" dem script auch zu übergeben (es fehlt
    PHP:
    $q = $_GET [ 'q' ];
    )!!

    MfG op
     
  6. 25. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    Hab mal dein Script genommen, die Darstellung korrigiert und allgemein "zum Laufen gebracht" und nun ist der PHP teil genau 286 bytes groß. Du musst nicht extra $x++; machen, du kannst das direkt im preg_replace inkrementieren, dazu musst du nicht erst $v = preg_replace... machen sondern kannst direkt echo preg_replace... - das spart alles Bytes.
     
  7. 25. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    nich schlecht telefonzelle ^^

    wie inkrementierst du denn in dem preg replace ?

    ansonsten nich schlecht herr specht ^^
     
  8. 25. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    So:
    PHP:
    <table cellpadding="4"><tr><?php $a = "<td><pre>
     00009999888877776666555522223333
    045689    0489 7231
    045689    0489 7231
     9999888866665555444422223333
    0268    068 975413
    0268    068 975413
     0000999988886666222233335555</pre></td>"
    ;while( $x < strlen ( $q )) echo  preg_replace ( '/\d/' , '' , preg_replace ( '/' . $q { $x ++}. '/' , 'X' , $a ));
    ?></tr>
    </table>
    // EDIT

    Die Leerzeichen werden anscheinend im Posting nicht angezeigt, also ist die Darstellung wieder inkorrekt.
     
  9. 25. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    hab diese version gebaut, aber vergessen einzuschicken... naja, hätte eh nix gebracht, 6xx bytes

    PHP:
    <pre>
    <?php
    $x 
    = array( 119 , 36 , 93 , 109 , 46 , 107 , 123 , 37 , 127 , 111 );
    $z  str_split ( $_GET [ 'z' ]);
    $a  " XXXX  " ;
    $b  "       " ;
    $c  "X    " ;
    $d  "     " ;
    $e  "X " ;
    $f  "  " ;
    foreach(
    $z  as  $k ) {
        
    $n  $x [ $k ];
        
    $v [ 0 ].= ( $n  1 ) ?  $a  $b ;
        
    $v [ 1 ].= ( $n  2 ) ?  $c  $d ;
        
    $v [ 1 ].= ( $n  4 ) ?  $e  $f ;
        
    $v [ 3 ].= ( $n  8 ) ?  $a  $b ;
        
    $v [ 4 ].= ( $n  16 ) ?  $c  $d ;
        
    $v [ 4 ].= ( $n  32 ) ?  $e  $f ;
        
    $v [ 6 ].= ( $n  64 ) ?  $a  $b ;
    }
    for(
    $i = 0 $i <= 6 $i ++)
        if(
    $i == ||  $i == 5 )
            echo 
    $v [ $i - 1 ]. "\n" ;
        else
            echo 
    $v [ $i ]. "\n" ;
    echo 
    $z1 . "\n" ;
    echo 
    $z2 . "\n" ;
    echo 
    $z2 . "\n" ;
    echo 
    $z4 . "\n" ;
    echo 
    $z5 . "\n" ;
    echo 
    $z5 . "\n" ;
    echo 
    $z7 . "\n" ;
    ?>
    </pre>
    auf was anderes bin ich nicht gekommen, bin wegen digitaltechnik-vorlesungen zu sehr auf diese vorgehensweise fixiert gewesen :/
     
  10. 25. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    ...hier meins:
    PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Script by opio12 | Script-battle Runde 2 - 7-Segmentanzeige</title>
    <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
    <style type="text/css">
    pre{
    width:58px;
    margin-right:20px;
    float:left;
    }
    </style>
    </head>
    <body>
    <?
    $n
    = $_GET [ 'n' ];
    $e =array();
    $e [ 2 ]= $e [ 3 ]= 'X' ;
    for(
    $i = 0 ; $i < 5 ; $i ++)for( $z = 0 ; $z < substr ( '76561' , $i , 1 ); $z ++) $e [ $i ].= ' ' ;
    $e [ 4 ].= 'XXXXX' . $e [ 4 ];
    $e [ 2 ].= 'X' ;
    $e [ 1 ].= 'X' ;
    for(
    $i = 0 ; $i < $a = strlen ( $n ); $i ++){
         
    ?><pre><?
         
    for( $z = 0 ; $z < strlen ( $t = substr ( '4220224011011041143344114114022411043341144334224411011042242244224114' , $n { $i }* 7 , 7 )); $z ++)echo $e [ $t { $z }].( $i < $a - 1 ? "  \n" : "\n" );
         
    ?></pre>
    <? } ?>
    </body>
    </html>
    und rauskommen tut das hier(mit den gewünschten leerzeichen):
    {bild down}
     
  11. 25. August 2007
    AW: Script-battle Runde 2 - 7-Segmentanzeige

    PHP:
    <table><tr>
    <? 
    $s 
    $_GET [ 's' ];
    $l  = array( ' XXXX ' , 'X    X' , '      ' , '     X' , 'X     ' );
    $n  = array( '0112110' , '2332332' , '0330440' , '0330330' , '2110332' , '0440330' , '0440110' , '0332332' , '0110110' , '0110330' );
    for(
    $i = 0 ; $i < strlen ( $s ); $i ++) {
        
    $g  str_split ( $n [ $s { $i }]); 
        echo 
    '<td><pre>' ;
        foreach(
    $g  AS  $r ) echo  $l [ $r ].(( $i + ==  strlen ( $s ))? '' : '  ' ). "\n" ;
        echo 
    '</pre></td>' ;
    }
    ?>
    </tr></table>
    irgendwas mit 390bytes (+-2)
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.