Du bist nicht angemeldet.

Werbeanzeige

GreenPepper

Treue Seele

Beiträge: 152

Beruf: Schüler

  • Private Nachricht senden

241

13.05.2013, 22:35

Gerade einen schönen Quine entdeckt entdeckt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# ruby
l=92.chr;eval s="s=s.dump[r=1..-2].gsub(/("+l*4+"){4,}(?!\")/){|t|'\"+l*%d+\"'%(t
.size/2)};5.times{s=s.dump[r]};puts\"# python\\nprint(\\\"# perl\\\\nprint(\\\\\\
\"# lua"+l*4+"nprint("+l*7+"\"(* ocaml *)"+l*8+"nprint_endline"+l*15+"\"-- haskel
l"+l*16+"nimport Data.List;import Data.Bits;import Data.Char;main=putStrLn("+l*31
+"\"/* C */"+l*32+"n#include<stdio.h>"+l*32+"nint main(void){char*s[501]={"+l*31+
"\"++intercalate"+l*31+"\","+l*31+"\"(c(tail(init(show("+l*31+"\"/* Java */"+l*32
+"npublic class QuineRelay{public static void main(String[]a){String[]s={"+l*31+"
\"++intercalate"+l*31+"\","+l*31+"\"(c("+l*31+"\"brainf**k"+l*64+"n++++++++[>++++
<-]+++++++++>>++++++++++"+l*31+"\"++(concat(snd(mapAccumL h 2("+l*31+"\"110"+l*31
+"\"++g(length s)++"+l*31+"\"22111211100111112021111102011112120012"+l*31+"\"++co
ncatMap("+l*32+"c->let d=ord c in if d<11then"+l*31+"\"21002"+l*31+"\"else"+l*31+
"\"111"+l*31+"\"++g d++"+l*31+"\"22102"+l*31+"\")s++"+l*31+"\"2100211101012021122
2211211101000120211021120221102111000110120211202"+l*31+"\"))))))++"+l*31+"\","+l
*63+"\""+l*64+"n"+l*63+"\"};int i=0;for(;i<94;i++)System.out.print(s[i]);}}"+l*31
+"\")))))++"+l*31+"\",0};int i=0;for(;s[i];i++)printf("+l*63+"\"%s"+l*63+"\",s[i]
);puts("+l*63+"\""+l*63+"\");return 0;}"+l*31+"\");c s=map("+l*32+"s->"+l*31+"\""
+l*63+"\""+l*31+"\"++s++"+l*31+"\""+l*63+"\""+l*31+"\")(unfoldr t s);t[]=Nothing;
t s=Just(splitAt(if length s>w&&s!!w=='"+l*31+"\"'then 501else w)s);w=500;f 0=Not
hing;f x=Just((if x`mod`2>0then '0'else '1'),x`div`2);g x= reverse (unfoldr f x);
h p c=let d=ord c-48in(d,replicate(abs(p-d))(if d<p then '<'else '>')++"+l*31+"\"
."+l*31+"\");s="+l*31+"\"# ruby"+l*32+"n"+l*31+"\"++"+l*31+"\"l=92.chr;eval s=\"+
(z=l*31)+\"\\\"\"+s+z+\"\\\""+l*31+"\"++"+l*31+"\""+l*32+"n"+l*31+"\""+l*15+"\""+
l*7+"\")"+l*4+"n\\\\\\\")\\\")\"########### (c) Yusuke Endoh, 2009 ###########\n"


Quellcode

1
2
3
4
5
6
7
8
9
10
11
$ ruby QuineRelay.rb > QuineRelay.py
$ python QuineRelay.py > QuineRelay.pl
$ perl QuineRelay.pl > QuineRelay.lua
$ lua QuineRelay.lua > QuineRelay.ml
$ ocaml QuineRelay.ml > QuineRelay.hs
$ runghc QuineRelay.hs > QuineRelay.c
$ gcc -Wall -o QuineRelay QuineRelay.c && ./QuineRelay > QuineRelay.java
$ javac QuineRelay.java && java QuineRelay > QuineRelay.bf
$ beef QuineRelay.bf > QuineRelay.ws
$ wspace QuineRelay.ws > QuineRelay.unl
$ unlambda QuineRelay.unl > QuineRelay2.rb


Quellcode

1
$ diff QuineRelay.rb QuineRelay2.rb


http://d.hatena.ne.jp/ku-ma-me/20090916/p1

Tatsächlich wird dieser Code hier oben nicht korrekt funktionieren, da der Filter das Wort Brainfu**k blockiert ;(

rnlf

Neuzugang

Beiträge: 88

Spieleentwicklung: Hobby

Beruf: Softwareingenieur Raumfahrt

  • Private Nachricht senden

242

14.05.2013, 08:45

Umso beeindruckender, dass es sogar durch vier (!) esoterische Sprachen arbeitet :thumbsup:

Swoerm

Treue Seele

Beiträge: 325

Spieleentwicklung: Hobby

  • Private Nachricht senden

243

14.05.2013, 13:05

Wenn ein Codeschnipsel den Titel WTF verdient dann dieser!
- Swoerm-Games -

C-/C++-Quelltext

1
2
    /* Keep the compiler happy */
    return(0);

Schorsch

Supermoderator

Beiträge: 3 021

Spieleentwicklung: Hobby

Wohnort: Wickede

Beruf: Student

  • Private Nachricht senden

244

17.05.2013, 18:24

Da hatte ich grad so einen richtig schönen Facepalm Moment. Wunder mich warum mein Programm so unglaublich langsam läuft und ich unendlich wenig FPS bekomme. Dann fällt mir nach knapp 1 1/2 Tagen auf, dass die Framerate höher ist, sobald ich Tasten drücke;) Und siehe da:D Hauptsache ich gehe erst mal mit einem Profiler dran;)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Main::Run()
{
    clock.restart();
    while(window.isOpen())
    {
        sf::Event event;
        while(window.pollEvent(event))
        {
            if(event.type == sf::Event::Closed)
            {
                window.close();
            }

            sf::Time elapsedTime = clock.restart();

            stateManager.Update(elapsedTime);

            window.clear();

            stateManager.Render(elapsedTime, window);

            window.display();
        }
    }
}


Falls es nicht auffällt,

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
sf::Time elapsedTime = clock.restart();

stateManager.Update(elapsedTime);

window.clear();

stateManager.Render(elapsedTime, window);

window.display();

gehört natürlich nicht in die Eventschleife sondern dahinter.
Wissen ist Nacht

hetzge

Treue Seele

Beiträge: 104

Spieleentwicklung: Hobby

  • Private Nachricht senden

245

17.05.2013, 20:07

C#-Quelltext

1
2
3
4
5
6
7
8
9
 log.info "Read task" 
        
        log.info params.id
        
        long taskId = params.id
        Long x = params.id
        long userId = session.user.id
        
        log.info "taskId(${taskId} / ${params.id} / ${x}) userId(${userId})" 


Bin gerade am verzweifeln ;)... weil ich einfach nicht sehe wie mich der Groovy/Grails Code der am Anfang eines Controllers steht die ganze Zeit von hinten bumst. Rufe ich die Seite mit Id 1 auf bekomme ich folgende Ausgabe:

Zitat

ittutorium.TaskController Read task
ittutorium.TaskController 1
ittutorium.TaskController taskId(49 / 1 / 49) userId(1)

Wenn ich die Seite mit Id 2 aufrufe bekomme ich 50 anstatt 49 ?!
Wenn ich schreibe "Long x = new Long(params.id)" dann stimmt der X Wert auch. Was hab ich an Groovy / Grails nicht verstanden, dass sich das Programm so verhält ? Muss was ganz dummes sein ;)

Etwas anderes: Zwar kein Code aber ein tolles Ergebnis. Beim vergleich zweier Fußball Manschaften bekam ich folgendes Ergebnis: Team1: NaN / Team2: -Infinity. Danach war ich schlauer ;)
mfg Hetzge (hetzge.de)

Steef

Treue Seele

Beiträge: 369

Spieleentwicklung: Hobby

  • Private Nachricht senden

246

19.05.2013, 17:56

Ich liebe die ungarische Notation:

C-/C++-Quelltext

1
unsigned int unProcessed;

247

20.05.2013, 20:09

C-/C++-Quelltext

1
2
3
for (short y=grid.y;y<grid.y;y++) {
//do something
}


Und ich hab mich die ganze Zeit gewundert dass es nur funktioniert wenn ich die Schleife wegnehme...

Beiträge: 902

Spieleentwicklung: Hobby

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

248

20.05.2013, 20:52

"WTF" erscheint mir im ersten Augenblick hauptsächlich der "short"-Datentyp der hier irgendwie ziemlich fehl am Platz wirkt.

Architekt

Community-Fossil

Beiträge: 1 995

Spieleentwicklung: Hobby

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

249

20.05.2013, 20:57

"WTF" erscheint mir im ersten Augenblick hauptsächlich der "short"-Datentyp der hier irgendwie ziemlich fehl am Platz wirkt.

unsigned short? Oder ein int Jünger?
Möglicherweise ist grid aber ein short Vector und könnte auch negativ sein, womit short als Datentyp wiederum Sinn macht.
Mein Blog

Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Beiträge: 902

Spieleentwicklung: Hobby

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

250

20.05.2013, 21:24

Zitat

unsigned short? Oder ein int Jünger?

Es geht nicht um signed oder unsigned.
Sondern es geht darum, dass der Code hier gewaltig danach riecht, dass short verwendet wurde ohne einen guten Grund dafür zu haben. Je nachdem was das genau für ein Grid ist, wären hier mit hoher Wahrscheinlichkeit, int, size_t oder (u)int32_t die bessere Wahl. Es sieht alles danach aus, dass Helco dem Trugschluss zum Opfer gefallen ist, dass er mit short Speicherplatz oder gar Rechenzeit sparen könnte. (Was auf den meisten heutigen Prozessorfamilien aber nicht der Fall ist.)

Zitat

Möglicherweise ist grid aber ein short Vector

Wenn du den Inhalt des Vektors meinst, dann verstehe ich nicht welche Auswirkungen das auf den Datentyp des Indexes haben soll.

Werbeanzeige