Ankündigung

Einklappen
Keine Ankündigung bisher.

phpgolf :)

Einklappen

Neue Werbung 2019

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

  • #16
    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.
    Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

    Kommentar


    • #17
      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...
      Signatur:
      PHP-Code:
      $s '0048656c6c6f20576f726c64';
      while(
      $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

      Kommentar


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

        LG Sonic

        Kommentar


        • #19
          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 ...
          Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

          Kommentar


          • #20
            Damit hast du das Golfloch jetzt erfolgreich gespoilert...

            Kommentar


            • #21
              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
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


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

                Kommentar


                • #23
                  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...
                  @fschmengler - @fschmengler - @schmengler
                  PHP Blog - Magento Entwicklung - CSS Ribbon Generator

                  Kommentar


                  • #24
                    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!"

                    Kommentar


                    • #25
                      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?
                      Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

                      Kommentar


                      • #26
                        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.
                        Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

                        Kommentar


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

                          Kommentar


                          • #28
                            Zitat von mermshaus Beitrag anzeigen
                            Eine Lösung, die nicht allgemeingültig ist.
                            Die Aufgabenstellung ist doch von ganz spezieller Art. Wieso sollte da eine allgemeingültige Lösung herauskommen?
                            Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

                            Kommentar


                            • #29
                              Ich meinte, dass man auch einen Algorithmus schreiben könnte, der jedes auf diese Weise kodierte Ascii-Art-Bild "entpacken" und rendern kann. Meine Lösung kann das definitiv nicht.

                              Das gilt wohl für nahezu jede der Challenges.

                              Kommentar


                              • #30
                                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.
                                hab mich mal drangewagt, aber ich komm einfach nicht unter 184 byte. Das sind satte 23 Byte zuviel

                                Ich glaub, ich muss irgendwie anders da dran gehen

                                Kommentar

                                Lädt...
                                X