PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brainfuck - Free-Hack <3



$_staX
22.06.2009, 21:30
Hab meinen Brainfuck künsten gerade freien Lauf gelassen und herausgekommen ist das:

++++++++++
[
>+++++++>+++++++++++>++++++++++>++++>+++>++++++<<<<<<-
]
>.
>++++.
>+.
.
>+++++.
<<<++.
>>----.
++.
<-------.
>>>++.
>.
---------.
Outcome:

Free-Hack <3

Wer den Source hässlich findet kann es ruhig posten ist mir aber wurscht ;)

$_staX
22.06.2009, 21:34
Warn ja auch nur 5 Minuten, hätte aber länger gedauert wenn ich ascii nicht fast auswendig wüsste ;)
Brainfuck coding contest ?^^

TamCore
22.06.2009, 21:43
Erklär mal den Code Zeile für Zeile damit wir auch was verstehen :)

mainstream
22.06.2009, 22:05
Kannst du es mir erklären?Ich finde den Sinn nicht...

DarkFire
22.06.2009, 22:08
Was ist den das für eine Sprache? oO


Der Quellcode sieht so aus, als ob ein Dreijähriges Kind auf einer Tastatur rum' gedrückt hätte, die nur 5 Tasten hat.

+ [ ] < > - .
1 2 3 4 5 6 7 ^^

noctem
22.06.2009, 22:09
@mainstream: Brainfuck ist eine Programmiersprache. Das Programm gibt einfach "Free-Hack <3" aus.

Ancient87
22.06.2009, 22:25
So damit da auch wer was von hat hab ich das mal kommentiert

Basics:

Brainfuck hat 8 commands

+ - erhoeht den wert des aktuellen pointers (array elements) a[x] ++
- wie + aber halt - :D a[x] --
> erhoeht pointer bzw index a[x+1]
< a[x-1]
. output des aktuellen werts @ pointer in ascii
, das selbe fuer user input
[ anfang loop while(a[0]) body
] end loop

Fangen wir an bei a[0] = 0


++++++++++ array[0] = 10
[ while(a[0])
>+++++++ a[1] = 7
>+++++++++++ a[2] = 11
>++++++++++ a[3] = 10
>++++ a[4] = 4
>+++ a[5] = 3
>++++++ a[6] = 6
<<<<<<- a[0] = 9
] end loop

nachdem wir das alles 10 mal machen kriegen wir
a[0] = 0 , a[1] = 70 , a[2] = 110, a[3] = 100, a[4] = 40, a[5] = 30, a[6] = 60
>. output a[1] = 70 = ascii F
>++++. putput a[2] = 110 + 4 = 114 = ascii r
>+. output a[3] = 100 + 1 = 101 = ascii e
. the same
>+++++. output a[4] = 40 + 5 = 45 = -
<<<++. output a[1] = 70+2 = 72 = H
>>----. output a[3] = 101 - 4 = 97 = a
++. output a[3] = 97 + 2 = 99 = c
<-------. output a[2] = 114 - 7 = 107 = k
>>>++. output a[5] = 30 + 2 = 32 = space
>. output a[6] = 60 = <
---------. output a[6] = 60 - 9 = 51 = 3
Nice gemacht @ stax

Mehr info zu BF http://daniel.lorch.cc/projects/brainfuck/php-brainfuck-1.01/doc.html

mbeezy
22.06.2009, 22:32
Spam gelöscht - wenn ihr alles andere außer eurem VB Klicki Bunti "nicht so töfte" findet, behaltet es für euch. Bleibt konstruktiv (soweit möglich).

Ancient87
22.06.2009, 22:36
Ok und wenn wir schon dabei sind wer das hier checkt - Respekt. Hat unser sysadmin geschrieben - Ja das ist valid java



/* "Q", by censored "ultra compact" version
* (C), or something, me. No blatant copying/sacrificial rites please.
*
* Disclaimer: No responsibility is taken by the author for any damage occuring
* from the reading, cognition or execution of this code.
*
* Please feel free to leave your brain in a jar by the door.
*/

class Q{public static void main(String Q[]){Q q=new Q();q.q(_).q(q);}static Q _
;Q q,Q;Q q(Q Q){return Q==_?new Q(){Q q(final Q qQ){return new Q(){Q q(final Q
_Q){return new Q(){Q q(final Q __){return new Q(){Q q(final Q _q){return qQ.q(
_Q.q(qQ).q(qQ)).q(_Q).q(qQ.q(_Q.q(qQ).q(_))).q(new Q(){Q q(Q q){return _Q.q(__)
.q(_Q.q(__).q(_Q.q(__).q(_Q.q(__).q(_Q.q(_q).q(_Q. q(__).q(q.q(_Q.q(_).q(q.q(_Q.
q(_Q.q(q).q(_)).q(q.q(_Q.q(_).q(q.q(_Q.q(_).q(q.q( _Q.q(_).q(q.q(_Q.q(q).q(_Q.q(
_).q(_Q.q(__).q(_Q.q(__).q(_Q.q(__).q(_Q.q(_q).q(_ Q.q(__).q(_Q.q(__).q(q.q(_Q.q
(_Q.q(q).q(q)).q(q.q(_Q.q(_Q.q(q).q(_)).q(q.q(_Q.q (q).q(q.q(_Q.q(q).q(q.q(_Q.q(
_Q.q(q).q(q)).q(_Q.q(_q).q(_Q.q(__).q(_Q.q(_q).q(_ Q.q(_q).q(_Q.q(_).q(_Q.q(__).
q(_Q.q(__).q(_Q.q(_q).q(_Q.q(__).q(_Q.q(__).q(_Q.q (__).q(q.q(_Q.q(_).q(q.q(_Q.q
(_Q.q(q).q(_)).q(_Q.q(_q).q(_Q.q(_q).q(_Q.q(_q).q( _Q.q(_q).q(_Q.q(__).q(_Q.q(__
).q(q.q(_Q.q(q).q(q.q(_Q.q(_Q.q(q).q(q)).q(_Q.q(_q ).q(_Q.q(_q).q(_Q.q(_).q(_Q.q
(__).q(_Q.q(_q).q(_Q.q(__).q(_Q.q(_q).q(_Q.q(__).q (_Q.q(__).q(_Q.q(__).q(_Q.q(
__).q(_Q.q(__).q(_Q.q(__).q(_Q.q(_q).q(_Q.q(__).q( q.q(_Q.q(_Q.q(q).q(_)).q(q.q(
_Q.q(q).q(q.q(_Q.q(q).q(q.q(_Q.q(_Q.q(q).q(q)).q(_ Q.q(_q).q(_Q.q(__).q(_Q.q(_q)
.q(_Q.q(_q).q(_Q.q(_).q(q.q(_Q.q(q).q(q.q(_Q.q(_). q(q.q(_Q.q(_Q.q(q).q(_)).q(q.
q(_Q.q(q).q(q.q(_Q.q(_).q(q.q(_Q.q(_).q(q.q(_Q.q(q ).q(_Q.q(_).q(_))))))))))))))
)))))))))))))))))))))))))))))))))))))))))))))))))) )))))))))))))))))))))))))))))
))))))))));}}.q(new Q(){Q q(Q q){return q.q==_?_Q.q(__).q(_Q.q(_q).q(_Q.q(_q).q
(_Q.q(_q).q(_Q.q(__).q(_Q.q(__).q(q.Q)))))):q.q.q= =_?_Q.q(_q).q(_Q.q(__).q(_Q.q
(__).q(_Q.q(__).q(_Q.q(_q).q(_Q.q(__).q(q.Q)))))): q.q.Q==_?_Q.q(__).q(_Q.q(__).
q(_Q.q(__).q(_Q.q(__).q(_Q.q(__).q(_Q.q(__).q(q.Q) ))))):_Q.q(_q).q(_Q.q(__).q(
_Q.q(__).q(_Q.q(__).q(_Q.q(__).q(_Q.q(__).q(q.Q))) )));}}));}}.q(_Q.q(qQ).q(_));
}}.q(_Q.q(_).q(_));}}.q(qQ.q(qQ));}}:Q.q==_?new Q(){Q q(final Q _q){return new
Q(){Q q(final Q _Q){return new Q(){{q=_q;Q=_Q;}Q q(Q q){return q;}};}};}}:Q.Q==
_?new Q(){Q q(Q q){return(q==_?new Q(){Q q(Q q){System.out.println();return _;}
}:new Q(){Q q(Q q){System.out.print(q.q==_?" ":"*");return _;}}).q(q);}}:new Q(
){Q q(final Q _q){return new Q(){Q q(final Q _Q){return new Q(){Q q(Q q){return
q==_?_:_q.q(_Q.q(q.q)).q(q(q.Q));}};}};}};};}


Hint: es verwendet compression und hat einen scheme interpreter eingebaut. Wer es schafft das lambda umzudrehen kriegt nen Keks.

Lidloses_Auge
22.06.2009, 22:45
Harter Stuff Ancient87 ;)
Sag bloß der verwendet noch dynamische Methodenbindung?
Son Mist hatten wir auch kurz in den Vorlesungen, aber das ist schon nicht übel, was der gemacht hat.

Brainfuck ist im Grunde nicht schwer, wird nur so aufgrund der Schreibweise empfunden. Aus dem gleichem Grund hat man ja ASM entwickelt, um die Schreibweise zu verbessern.
BF ist aber schon etwas ausgelutscht, ich such später mal was interessanteres.

Ancient87
22.06.2009, 22:54
@ Lidloses

Jepp der verwendet so ziemlich alles anonymous classes you name it. Das Programm beinhaltet einen komprimierten Scheme Interpreter. Aber der typ ist ernsthaft krank der schreibt in seiner Freizeit an seinem eigenen OS (wenn er nicht grad sowas schreibt).

$_staX
23.06.2009, 12:27
Brainfuck ist relativ einfach, jedoch kommt man mit den Zeigern manchmal durcheinander und man muss halt ascii können ;)

Darkraiser
23.06.2009, 13:11
@ Stax :) nja asci muss man nich könnten .. Wiki table daneben und gogogo und ich denke mal jeder weiß, dass von 48 - 57 zahln sind und 65 - 90. :).

und sonst ... ich glaub Katharsis hat hier mal ein Brainfuck zahlenrätsel geposted :).

mfg

Nec
23.06.2009, 16:48
Es giebt auch andere nette Sprachen ^^
bsp Chef
Hello world code

Hallo-Welt-Soufflee

Ingredients.
72 g haricot beans
101 eggs
108 g lard
111 cups oil
32 zucchinis
119 ml water
114 g red salmon
100 g dijon mustard
33 potatoes

Method.
Put potatoes into the mixing bowl.
Put dijon mustard into the mixing bowl.
Put lard into the mixing bowl.
Put red salmon into the mixing bowl.
Put oil into the mixing bowl.
Put water into the mixing bowl.
Put zucchinis into the mixing bowl.
Put oil into the mixing bowl.
Put lard into the mixing bowl.
Put lard into the mixing bowl.
Put eggs into the mixing bowl.
Put haricot beans into the mixing bowl.
Liquefy contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.

Serves 1.
http://de.wikipedia.org/wiki/Chef_(Programmiersprache (http://de.wikipedia.org/wiki/Chef_%28Programmiersprache))

Eine liste mit vielen solcher Sprachen
http://de.wikipedia.org/wiki/Esoterische_Programmiersprache


Edit Whitespace code beispiel:

Keksdose
23.06.2009, 17:58
@Ancient87 (http://free-hack.com/member.php?u=55416): wenn ich versuch den code zu compilieren spuckt der n Fehler mit dem "?" aus aber was muss da stattdessen stehn? oder wie funktioniert des?
Ist das nicht Inline also wie if? also in c++ geht sowas ja, aber warum packt des der Compiler net?

Ancient87
23.06.2009, 20:46
Da kompiliert bei mir ohne Probleme das Fragezeichen ist der ternary operator

ist wie ein if else

var = boolean ? true : false

Keksdose
24.06.2009, 05:37
komisch ...
Welchen Compiler hast du?
Ich hab (schulisch bedingt) den Hesseneditor und
Java(TM) 2 SDK, Standard Edition Version 1.4.2

Ancient87
24.06.2009, 10:08
Sorry vergessen zu erwaehnen aber wer rennt bitte heutzutage mit 1.4 rum ;-?



ancient@workpad:~$ javac -version
javac 1.6.0_0-internal




Unfortunately Q will only compile under Java 1.5, due to what appears to be a limitation of the parser in previous versions. If anyone manages to get anything other that Sun's SDK 1.5 to swallow the source, I'd be interested to know.

Keksdose
24.06.2009, 13:18
Mein Lehrer -.-

OK thx werds mal testen...