figlet

raspi 10.09.03 15:14

katso googlella mitä figletit ovat

 Tekstiversio  Arvo: 1 (10 ääntä)  Äänestä: +  -
<?php
// raspi 2003
// figlettisysteemi

function kirjoita ($fontin_nimi, $kirjoitus) {
  $figlet = array(

    "foo" => array(
      "size" => "5x5",
      "type" => "|",
      "font" => array(
        "M" => "1000111011101011000110001",
        "S" => "0111110000011100000111110",
        "O" => "0111010001100011000101110",
        "I" => "0010000100001000010000100",
        "," => "0000000000000000110011000"
      ),
      "set" => array(
        "1" => "[]",
        "0" => "  "
      )
    ),

    "bar" => array(
      "size" => "5x5",
      "type" => "\\",
      "font" => array(
        "A" => "0111010001111111000110001",
        "L" => "1000010000100001000011111",
        "M" => "1000111011101011000110001",
        "I" => "0010000100001000010000100",
        "!" => "0010000100001000000000100"
      ),
      "set" => array(
        "1" => '\_',
        "0" => '  '
      )
    )

  );

  list($lev, $pit) = explode("x", $figlet[$fontin_nimi]['size']);
  $output = array();
  $data = explode("\n", $kirjoitus);

  for($rivi=0; $rivi<=count($data)-1; $rivi++) {

    $from = 0;
    $to = $lev;

    for($line=0; $line <= $pit-1; $line++) {

      for($kirj=0; $kirj <= strlen($data[$rivi])-1; $kirj++) {
        $kirjain = $data[$rivi]{$kirj};
        /*
        otetaan jokaisesta kirjaimesta ensimmäinen rivi
        eli jos tekstinä on vaikkapa, "foo" niin:
        0: 11111 11111 11111
        1: 1     1   1 1   1
        2: 11111 1   1 1   1
        3: 1     1   1 1   1
        4: 1     11111 11111
        ^-rivi# ($line)
        */

        $output[$rivi][$line] .= substr($figlet[$fontin_nimi]['font'][$kirjain], $from, $lev) . " ";
      }

      $from = $to;
      $to = $from + $lev;
    }
  }


  // luodaan paddingit, jos tyyppi on / tai \
  if($figlet[$fontin_nimi]['type'] == "\\" || $figlet[$fontin_nimi]['type'] == '/') {
    for($i=0; $i<=$pit; $i++) {
      $padline[$i] = str_repeat(" ", $i);
    }
    if($figlet[$fontin_nimi]['type'] == '/') {
      $padline = array_reverse($padline);
      reset($padline);
    }
  }

  $ulos = null;

  foreach(array_values($output) as $rivinro => $rivisis) {
    $temp = $output[$rivinro];
    for($i=0; $i<=count($temp)-1; $i++) {
      $tmp = $temp[$i];
      $ulos .= $padline[$i] . $tmp . "\n";
    }
    $ulos .= "\n";
  }

  foreach($figlet[$fontin_nimi]['set'] as $var => $val) $ulos = str_replace($var, $val, $ulos);

  return $ulos;
} // function

echo "<pre>\n";
echo kirjoita('foo', "MOI,");
echo kirjoita('bar', "MAAILMA!");
echo "</pre>\n";
/*
tulostaa:
[]      []   [][][]       []               
[][]  [][] []      []     []               
[]  []  [] []      []     []               
[]      [] []      []     []       [][]     
[]      []   [][][]       []     [][]       

\_      \_   \_\_\_     \_\_\_       \_     \_         \_      \_   \_\_\_       \_     
 \_\_  \_\_ \_      \_ \_      \_     \_     \_         \_\_  \_\_ \_      \_     \_     
  \_  \_  \_ \_\_\_\_\_ \_\_\_\_\_     \_     \_         \_  \_  \_ \_\_\_\_\_     \_     
   \_      \_ \_      \_ \_      \_     \_     \_         \_      \_ \_      \_           
    \_      \_ \_      \_ \_      \_     \_     \_\_\_\_\_ \_      \_ \_      \_     \_     
*/

?>

Runoltaja 15:40 10.9.03 
Täähän on nätti. Hyvä esimerkki... jostain
bluebyte 20:19 10.9.03 
Turhaakin turhempi
empty 10:33 11.9.03 
hyi saatana
ane 08:18 12.9.03 
Hienoa! Ajattelin itse koodata Päijät-Hämeen Puhelimella figlet-kloonin, mutta näemmä joku ehti edelle :)
Tombad 19:00 12.9.03 
Ihan hienohan tämä on.

Ja ihmiset, pistäkää niitä perusteluja, "Turhaakin turhempi" on vähän heikko ilman perusteluja.
empty 11:18 13.9.03 
Hauska skripti :D
Mitä te oikein valitatte ;D
bluebyte 23:25 13.9.03 
[] [] [][][] []
[][] [][] [] [] []
[] [] [] [] [] []
[] [] [] [] []
[] [] [][][] []
bluebyte 23:26 13.9.03 
ups, vahinko :(
lerppukorppucd 14:48 27.9.03 
Hyvä skripti!

Joo vielä niille jotka ei tiedä mitä figletit on niin ne on semmosia ohjelmia jotka tekee niinku semmosia makeita ASCII-kuvia tekstistä
NiLon 05:57 2.10.03 
Ihan nätti, mutta ihan oman teksin luominen ei onnistu.
raspi 15:51 29.8.04 
NiLon: ne onkin tarkoitus väsätä itse tuohon $figlet-taulukkoon.