Ankündigung

Einklappen
Keine Ankündigung bisher.

phpgolf :)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mermshaus
    antwortet
    Zitat von fireweasel
    Was ist eine ungenerische Lösung?
    Eine Lösung, die nicht allgemeingültig ist.

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    Es geht um Kürze (wenn ich das richtig verstanden habe). Und es ist durchaus interessant, einmal entgegen den Regeln arbeiten zu müssen, die man im Laufe der Zeit verinnerlicht hat.
    Was aber bei PHP eben kaum möglich ist. Der Kreativität sind sehr enge Grenzen gesetzt, weil kurze Lösungen eigentlich nur aus effizienten Algorithmen und weggelassenem Whitespace bestehen. Bei anderen Sprachen wie eben Perl aber gibt es noch deutlich schönere Varianten durch unorthodoxe Syntax. Auch JavaScript ist spannender.

    Einen Kommentar schreiben:


  • fireweasel
    antwortet
    Zitat von nikosch Beitrag anzeigen
    Finde das immer noch sinnfrei. Solche Contests bei Perl sind wenigstens noch interessant, weil dort strange Syntaxen möglich sind.
    ...
    Mal zum Vergleich

    Code:
    -pl @==sort@$=map$_.shift@=,@@for@@=/\pL|,/g;$_=@$[$_]
    http://perlgolf.sourceforge.net/cgi-....cgi?id=11#art
    Hmmm, Klammern bei Funktionsaufrufen weglassen, ist aber auch nicht die hohe Kunst ...

    Bei PHP ists nur eingedampftes Halbgares, als ob man aus schlechtem Code möglichst noch viele Leerzeichen entfernt hat.
    Für solche Wettbewerbe ist PHP anscheinend eher wenig geignet.

    Sehe da weder was elegantes noch was künstlerisches drinnen.
    Es geht um Kürze (wenn ich das richtig verstanden habe). Und es ist durchaus interessant, einmal entgegen den Regeln arbeiten zu müssen, die man im Laufe der Zeit verinnerlicht hat.

    Ich würde aber trotzdem sinnvollere oder nützlichere Aufgaben vorziehen. So wie diese beiden hier:

    http://stackoverflow.com/questions/3...ox-easter-date

    http://stackoverflow.com/questions/3...f-regex-parser

    ... oder, wenn schon praktisch nicht verwendbares gefordert wird, dann was richtig schräges:

    http://stackoverflow.com/questions/6...flow-code-golf


    Zitat von mermshaus Beitrag anzeigen
    Mir hat die "phpGolf"-Challenge bislang am besten gefallen, da dort etwas mehr zu tun ist, als mehr oder weniger den kürzesten Befehl zu kennen und mit der Syntax zu tricksen.
    Naja, extra einen primitiven Run-Length-Encoding-Algorithmus zu entwerfen, nur um immer die gleichen Zeichen auszugeben, spornt mich nicht gerade an.

    Edit: Wobei ich es auch dort etwas schade finde, dass die Lösung ungenerisch ist.
    Was ist eine ungenerische Lösung?

    Einen Kommentar schreiben:


  • mermshaus
    antwortet
    Ich habe bisher bei drei Challenges mitgemacht. Dabei bei "99 Bottles" um 1 Byte (221) die Top 15 (und fab ) verpasst... Da muss wohl ein anderer Ansatz her.

    Mir hat die "phpGolf"-Challenge bislang am besten gefallen, da dort etwas mehr zu tun ist, als mehr oder weniger den kürzesten Befehl zu kennen und mit der Syntax zu tricksen.

    Edit: Wobei ich es auch dort etwas schade finde, dass die Lösung ungenerisch ist.

    Edit 2:
    Code:
    "Ich habe Ihnen die Software in nur 100 Zeilen Code geschrieben."
    "Aber es funktioniert doch überhaupt nicht!"
    "Aber es ist... kurz!"

    Einen Kommentar schreiben:


  • fab
    antwortet
    Zitat von mermshaus Beitrag anzeigen
    Must. Resist.
    Ich konnte am Wochenende nicht widerstehen, bin jetzt insgesamt auf Platz 5. Den Code den ich da produziert habe kann ich mir aber teilweise nur unter Schmerzen ansehen, v.a. bei der Spirale

    Richtig anspruchsvoll finde ich den CRC32, trotz verschiedener Tricks, PHP das operieren auf 32 bit unsigned ints beizubringen ist mir das bisher nicht gelungen...

    Einen Kommentar schreiben:


  • zwutz
    antwortet
    die phpgolf-challenge wär was für mich... 162 Bytes sind zu schlagen... sollte machbar sein

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Finde das immer noch sinnfrei. Solche Contests bei Perl sind wenigstens noch interessant, weil dort strange Syntaxen möglich sind. Bei PHP ists nur eingedampftes Halbgares, als ob man aus schlechtem Code möglichst noch viele Leerzeichen entfernt hat. Sehe da weder was elegantes noch was künstlerisches drinnen.

    Mal zum Vergleich

    Code:
    -pl @==sort@$=map$_.shift@=,@@for@@=/\pL|,/g;$_=@$[$_]
    http://perlgolf.sourceforge.net/cgi-....cgi?id=11#art

    Einen Kommentar schreiben:


  • mermshaus
    antwortet
    Damit hast du das Golfloch jetzt erfolgreich gespoilert...

    Einen Kommentar schreiben:


  • fireweasel
    antwortet
    Zitat von Sonic Beitrag anzeigen
    Also gehts dann nicht oder?
    Notices sind erlaubt.


    Zitat von Flor1an Beitrag anzeigen
    Kann man da irgendwo die Codes einsehen? ...
    Zitat von Sonic Beitrag anzeigen
    Ja, das hab ich mich auch gefragt...

    Hier mal meine Versuche:
    PHP-Code:
    <?php define ('WORD''xyzabc-klmnop'); ?>

    <?=preg_replace('/[a-z]/e','chr(ord("$0")+("$0">"m"?-13:13))',WORD); // 68
    <?=preg_replace('/./e','chr(ord("$0")+("$0">"m"?-13:13))',WORD); // 64

    <?=strtr(WORD,'abcdefghijklmnopqrstuvwxyz','nopqrstuvwxyzabcdefghijklm'); // 73
    <?=strtr(WORD,$x='abcdefghijklmnopqrstuvwxyz',substr($x,13).$x); // 64
    <?=strtr(WORD,$x=join(range('a','z')),substr($x,13).$x); // 56

    <?foreach(unpack('C*',WORD)as$c)echo chr($c+($c>109?-13:13)); // 61
    Mit Hängen (Shorttags) und Würgen (einzeilige Funktionsdefinition) auf 56 Zeichen. Weniger bekomme ich einfach nicht hin ...

    Zitat von mermshaus Beitrag anzeigen
    Damit hast du das Golfloch jetzt erfolgreich gespoilert...
    Hüh? Die Beispiele hab ich alle schon hochgeladen. Soweit ich das verstanden habe, wird die gleiche Lösung nicht zweimal akzeptiert, also besteht keine Gefahr, dass dies irgendjemand ausnutzen könnte. Es sei denn, ich hätte irgendwo ein Leerzeichen übersehen ...

    Einen Kommentar schreiben:


  • Sonic
    antwortet
    The code can not generate any warnings from the PHP interpreter itself.
    Also gehts dann nicht oder?

    LG Sonic

    Einen Kommentar schreiben:


  • ByStones
    antwortet
    Das funktioniert so nicht:
    1. Man muss erstmal aus der Konstante WORD den Text holen.
    2. "chr(ord($a[$i])+13)" wenn man über z rausgeht muss es wieder bei a anfangen.

    PHP-Code:
    for(;$i<strlen($a);++$i
    Server settings: OS = Linux (Ubuntu 8.04 32bit) PHP version: 5.3.2 short_tags = On allow_url_fopen = Off max_input_time = 2 max_execution_time = 3 magic_quotes_gpc = Off memory_limit = 1M error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
    error_Reporting ist also ein bisschen runtergedreht...

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    Das ist in der Tat wenig. Hier aber mal eine Variante mit 55 Byte (inclusive <?)
    PHP-Code:
    <?for($i;$i<strlen($a);++$i){echo chr(ord($a[$i])+13);}
    Wirft aber Warnungen. Ein =0 im for-Kopf kostet nochmal 2 Byte.

    Einen Kommentar schreiben:


  • ByStones
    antwortet
    shell_exec ist deaktiviert...
    1. helge: 52 bytes !

    Meine Idee:
    PHP-Code:
    <?for(;$i<strlen($s=WORD),$x=ord($s[$i]);$i++)echo chr($x+($x>109?-13:13));
    75 bytes ...

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    Vielleicht so?
    PHP-Code:
    <?$a='a';echo `echo '$a'|tr '[A-Za-z]' '[N-ZA-Mn-za-m]'`;
    Das sind jetzt 57 Byte. Je nachdem ob man jetzt das Belegen der Variablen $a noch dazu zählt, auch weniger.
    Funktioniert aber nur unter Unix-Systemen.

    Einen Kommentar schreiben:


  • ByStones
    antwortet
    Ich glaube nicht, da man ja überall noch posten kann ^^
    Hat jemand ne Idee wie man Rot13 machen kann, ich komm einfach nicht unter 75bytes !!!

    Einen Kommentar schreiben:

Lädt...
X