Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  114 26559
Her kommer mitt bidrag, i Befunge

Kode

>091+91+*:8+:6+:3-:8+    v
v::-3:+1*+56+55+*26:**244<
>7-:3+v
v_@#:,<
>     ^
Kjører fint med ccbi under linux. ( http://users.tkk.fi/~mniemenm/befunge/ccbi.html )
Mitt bidrag i c, ikke så veldig fancy men ganske grei suppe likevel.

Kode

       #include      <stdio.h>
     #         include  <stdlib.h>  
    #define                   j printf
   #define                     LOVE main
  int             LOVE         () {typedef 
 unsigned                          char N;
const                                char 
* z =                              "%c";
 N q =                         ((1<<6)|
 (1<<5)                       |(1<<3))
   ;j(z,q);                   N b[]=               
    {0x0d,                    0x09,
      0x03                  ,0x43,
        0x0c,               0x57
          ,0x18,          0x1d,
            0x1e,       0x08};
              for(     N a=
                0; a  <(
                  sizeof(b)
                  /sizeof(N
                    ))
                  ; a++
                    ){
                    j(
                     z,
                    q
                  ^=b
                   [a]
                    );
                    if
                    (
                    (
                     b[a]
                     ^
                     0xff
                     )
                     ==
                     0xf6
                     )j
                    (z,
                     q);
                     }
                  return 0;   
                     }

Kode

module Main where{import Prelude hiding ((-), (*));import Data.Char;(-)=(+).(+1);(*)=(chr);(main)=putStr((*)(0-0-0-0-0-0-0-0-0-0-0-0
-0-                                                                                                                              0-0
-0-   0-0-0-0-0-     0-0-0-0-0-                      0-0-0-0-  0-0-0-0                                                           -0-
0-0   -0-0-0-0-0     -0-0-0-0-0                      -0-0-0-0  -0-0-0-                                                           0-0
-0-   0-0-0-0-0-     0-0-0-0-0-                      0-0-0-0-  0-0):(*                                                           )(0
-0-   0-0-0-0-0-     0-0-0-0-0-                      0-0-0-0-  0-0-0-0                                                           -0-
0-0     -0-0-0-0     -0-0-0-0       -0-0-0-0-0-0     -0-0-0-0  -0-0-0-     0-0-0-0-0-0                                           -0-
0-0     -0-0-0-0     -0-0-0-0     -0-0-0-0-0-0-0-0   -0-0-0-0  -0-0-0-   0-0-0-0-0-0-0-0                                         -0-
0-0     -0-0-0-0-0-0-0-0-0-0-    0-0-0-0-0):(*)(0-0- 0-0-0-0-  0-0-0-0  -0-0-0-0-0-0-0-0-                                        0-0
-0-     0-0-0-0-0-0-0-0-0-0-0   -0-0-0-0     -0-0-0- 0-0-0-0-  0-0-0-0  -0-0-0-0-0-0-0-0-                                        0-0
-0-     0-0-0-0-0-0-0-0-0-0-0   -0-0-0-0-0-0-0-0-0-0 -0-0-0-0  -0-0-0-  0-0-0-     0-0-0-                                        0-0
-0-     0-0-0-0-0-0-0-0-0-0-0   -0-0-0):(*)(0-0-0-0  -0-0-0-0  -0-0-0-  0-0-0-     0-0-0-                                        0-0
-0-     0-0-0-0-     0-0-0-0-   0-0-0-0-0-0-0-0-0-   0-0-0-0-  0-0-0-0  -0-0-0     -0-0-0                                        -0-
0-0     -0-0-0-0     -0-0-0-0   -0-0-0-0-            0-0-0-0-  0-0-0-0  -0-0-0     -0-0-0  -0-0                                  -0-
0-0   -0-0-0-0-0     -0-0-0-0-0 -0-0-0-0-0           -0-0-0-0  -0-0-0-  0-0):(*)(0-0-0-0- 0-0-0-                                 0-0
-0-   0-0-0-0-0-     0-0-0-0-0-  0-0-0-0-0-0-0-0-0   -0-0-0-0  -0-0-0-  0-0-0-0-0-0-0-0-0 -0-0-0                                 -0-
0-0   -0-0-0-0-0     -0-0-0-0-0   -0-0-0-0-0-0-0-0   -0-0-0-0  -0-0-0-   0-0-0-0-0-0-0-0 -0-0-0                                  -0-
0-0   -0-0-0-0-0     -0-0-0-0-0     -0-0-0-0-0-0-0   -0-0-0-0  -0):(*)     (0-0-0-0-0-   0-0-0                                   -0-
0-0                                                                                     -0-0                                     -0-
0-0   -0-0-0-0-                           0-0-0-0-                                                       0-0-0-0-                0-0
-0-   0-0-0-0-0                           -0-0-0-0                                   -0-0-0-             0-0):(*)  (0-0-0-0-0-   0-0
-0-   0-0-0-0-0                           -0-0-0-0                                   -0-0-0-             0-0-0-0-  0-0-0-0-0-0   -0-
0-0   ):(*)(0-0                           -0-0-0-0                                   -0-0-0-             0-0-0-0-  0-0-0-0-0-    0-0
-0-    0-0-0-0-           0-0-0           -0-0-0- 0-0-0-0-0-0   -0-0-   0-0-0-0-0    -0-0-0-             0-0-0-0-  0-0-0-0-0-    0-0
-0-     0-0-0-0-         0-0-0-0         -0-0-0-0-0-0-0-0-0-0-0 -0-0-0-0-0-0-0-0-0   -0):(*)      (0-0-0-0-0-0-0-  0-0-0-0-0     -0-
0-0      -0-0-0-0       -0-0-0-0-       0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0  -0-0-0-    0-0-0-0-0-0-0-0-0  -0-0-0-0      -0-
0-0       -0-0-0-0     -0-0-0-0-0-     0-0-0-0 -0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0   -0-0-0-0-0-0-0-0-0  -0-0-0-       0):
(*)        (0-0-0-0   -0-0-0-0-0-0-   0-0-0-0  -0-0-0     -0-0-0 -0-0-0-     0-0-0-0 -0-0-0-  0-0-0-0-0-0-0-0-0-0  -0-0-0        -0-
0-0         -0-0-0-0 -0-0-0- 0-0-0-0 -0-0-0-   0-0-0-     0-0-0- 0-0-0-0     -0-0-0- 0-0-0-0  -0-0-0-0    -0-0-0-  0-0-0         -0-
0-0          -0-0-0-0-0-0-0   -0-0-0-0-0-0-    0-0-0-     0-0-0- 0-0-0-0             -0-0):(  *)(0-0-     0-0-0-0  -0-0-         0-0
-0-           0-0-0-0-0-0-     0-0-0-0-0-0     -0-0-0     -0-0-0 -0-0-0-             0-0-0-0  -0-0-0-     0-0-0-0   -0-          0-0
-0-            0-0-0-0-0-       0-0-0-0-0      -0-0-0-0-0-0-0-0- 0-0-0-0             -0-0-0-  0-0-0-0-0-0-0-0-0-0-               0-0
-0-             0-0-0-0-         0-0-0-0       -0-0-0-0-0-0-0-0- 0-0-0-0             -0-0-0-  0):(*)(0-0-0-0-0-0-  0-0           -0-
0-0              -0-0-0           -0-0-         0-0-0-0-0-0-0-0  -0-0-0-             0-0-0-0   -0-0-0-0-0-0-0-0-0 -0-0-          0-0
-0-               0-0-             0-0            -0-0-0-0-0-    0-0-0-0             -0-0-0-    0-0-0-0-0   -0-0-  0-0           -0-
0-0                                                                                                                              -0-
0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0):(*)(0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0):[])}
Sitat av Matmeg? Vis innlegg
Det var viktig at man ikke så hello world i koden?
Vis hele sitatet...
Hvor ser du hello world i koden?

Jeg var litt kjapp til å poste egentlig, irriterte meg litt med den skjeve dobbelt-v'en, og at det var to semikolon etter hverandre. Så slenger ut en aldri så liten endring. Og da regner jeg meg ferdig med denne varianten.

Kode

#include <iostream>
#define us unsigned short
#define uc unsigned char
#define ui unsigned int
#define re return
#define in int
#define un using namespace
#define st std
#define bo bool
#define fo for
#define tr true
#define co cout
#define ma main

        un                          st     ;                                                                          us            bg
        (                           us     n                                                                          );            in
        ma                          ()     {                                                                          bo            a,
        b,                          c,     d,                                                                         e,            f,
        g,                          h;     uc                                                                         w[            16
        ];                          ui     v;                                                                         fo            (
        us                          s=     0;                                                                         s<            16
        ;    s++         ){if       (s     ==       8)s=                   12    ;us     t      =bg(s    );   d=t     &8      ;e=t& 4;
        f= t&2;g=t     &1;v=0;fo    (      us       u=0;u<                 8;    u++     )     {us r=    bg (u);a=    r&     1;b=r&2;c
        =r&4;   h=    a&!    c&     !e     |b     &c&   !d                 &!    e&f    |c    &e&   !f   &!g|b  &c    &e    &!f    |a&
        b&!c    |c    &d    &!e     &!     f&     !g     |a                &!    b&c    &d    &!     e&  !f;    h=    h|    !a      &b
        &c&     !e   &!   f&!g      |b     &!    c&      d&                !e   &!f&g  |a    &b      &c  &d     &!    e&   f|       b&
        c&      d&   f& !g|b        &c     &e    &!      f;                 h=  h| a&  !c    &!      d&  e&           !f   &!       g|
        a&      !c   &!d&e          &f     &g    |b      &!                 c&  !  d&  e     &f      &g  ;h           =h   |a       &c
        &!      d&   e&f            &g     |!    b&      c&                 !d &e  &f &g     |a      &b  &c           &!   d&       !e
        &g      |!   a&       !b    &c     &!    d&     !e                  &!f&g   ;if      (h     ==   tr           ){   in       j=
        1;      fo    (in     k     =0     ;k     <7   -u;                   k++    ) j        =    j    *            2;    v =     v
        +j      ;}     }w[t] =(     uc     )v      ;}fo(       in            i=     0;i<       12;i++    ){           co      << w[i];
        }}      us       bg(us      n      ){       re        (n>>           1      )^n         ;};      //           by       10goto10
                                                              //
Usansynlig gode bidrag her. Her er et eksempel på hvor kort det kan bli.
Basic 2:

0?"Helo, World"
Soldier - Shift Com.
Stickyshift's Avatar
Sitat av marsboer Vis innlegg
Akkurat "Hello World"-lysene er egentlig et movieclip, som blir utløst når kranen trykker knappen. Den heter forøvrig neon.play(); som starter avspillingen.

Ja, jeg tror jeg brøt reglene, hehe. Men denne gangen lager jeg noe annet som er nesten ren kode. En rotasjonskode der du må rotere bokstavene for å få dem i riktig rekkefølge.

http://flash.tripossible.no/rotasjonskode.html (eller rotasjonskode.swf)
Vis hele sitatet...

http://img12.imageshack.us/img12/5629/helloworld.th.jpg

Klarte det jeg
Jeg brukte ferre forsøk enn deg stickyshift :P
http://bilete.no//7269.jpg
Trigonoceps occipita
vidarlo's Avatar
Trådstarter Donor
Sitat av BAN Vis innlegg
Usansynlig gode bidrag her. Her er et eksempel på hvor kort det kan bli.
Basic 2:

0?"Helo, World"
Vis hele sitatet...
Den var da ekstremt lang.

Kode

h
I c. Kompilert på rett måte vil den printe "hello, world".

Plusspoeng til dei som skriver makefile til den.
Sitat av slashdot Vis innlegg

Kode

h
I c. Kompilert på rett måte vil den printe "hello, world".
Vis hele sitatet...

Kode

gcc -D h="int main(){printf(\"hello, world\");}"
Gir noen warnings, men put put.

Gi meg poengene dine nå!!
Fasm og Haskell sitter i et tre, kysser og kysser til de detter ned.

Kode

; import Data.Char; a=map chr; {-
format ELF64
public _start

section '_text' executable writeable
_start:
        push 0x6f6c6c65
        sub al, 0x20
        push 'o'
        pop rax
        fs
        fs;-} main=putStr $ {-
        pop rax
        sub eax, 0x2f9fcee
        mov [_start + 7], eax
        mov eax, 4
        mov ebx, 1
        mov ecx, _start
        mov edx, 12
        int 80h;-} a[104,101,108,108,111] ++ ", " ++ {-

        mov eax, 1
        xor ebx, ebx
        int 80h
;-} a[119,111,114,108,100]
Sitat av dosky Vis innlegg
BATCH!
Vis hele sitatet...

Kode

@echo off
set i=,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 
set b=%i:~34,1%%i:~5,1%
set a=%i:~12,1%%i:~12,1%%i:~15,1%
set t=%i:~0,1%%i:~53,1%%i:~49,1%
set c=%i:~15,1%%i:~18,1%
set h=%i:~12,1%%i:~4,1%
set batch=%b%%a%%t%%c%%h%
echo %batch%
pause>nul:
exit
Kunne ikke la posten dø..

v2

Kode

@echo off
set i=,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 
set b=%i:~34,1%%i:~5,1%
set a=%i:~12,1%%i:~12,1%%i:~15,1%
set t=%i:~0,1%%i:~53,1%%i:~49,1%
set c=%i:~15,1%%i:~18,1%
set h=%i:~12,1%%i:~4,1%
set i=%b:~0,404%%a:~0,404%%t:~0,404%%c:~0,404%%h:~0,404%
set t=i
echo %i%
pause>nul:
exit


Spørs om jeg må prøve meg på et faktiskspråk.
Sist endret av d0nk3y; 26. februar 2009 kl. 13:53. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Og siste.

Kode

import Data.Char;
(?)(??)=(??)((??)????(?));(+++)=(\a->null.flip const a);
(-^-)=(div);(????)(?)(??)=(??)(?);(?:)=(\(?)(??)(???)->if(?)then(??)else(???));
(???)=[(\(?)->((+56)????id)$(?)-^-2),
 (\(???)->(?:)((((9????(^))2)+14)==(???))((???)*(???)`mod`194)((???)*(???)`mod`9001)),
 (\(?)->(?)*(?)`mod`1091),(\(?)->(?)*(?)`mod`2089),(\a->a+22),((+)(-53)),(\110->0x20),
 (((+).(+1))10),(\(*?)->(?)(\f(??)->(??)+4)(*?)),(+10),(+8),(\_->100)];
main = putStr $ map chr $ (???)????(??)
(??)=(?)(\(?)((??):(???))->(?:)(256+++(???))((1-^-0)????(??):[])(((??)(sum((?)(???))-^-((???)????length))):(?)(???)))
▼ ... over en uke senere ... ▼

Kode

#include <iostream>
using namespace std;

int main () {
  int a[] = {1819043144,1870078063,560229490,0};
  cout << reinterpret_cast<char *>(a) << endl;
  return 0;
}
Queen of Blades
Jonta's Avatar
DonorCrew
Sitat av slashdot Vis innlegg
Fristen for å komme med bidrag? 1. mars 00:00 enkelt og greitt. Dei beste bidraga vil bli plukka ut av meg og |d13m0b rimelig kjapt etter det
Vis hele sitatet...
Nå som dere har plukket dem ut, hva med å publisere dem?

Kode

/*
        dumper meta taggen til denne posten inn i minnet og søker etter minne addressen til "Hello World"
        skriver så ut dem 11 bytene fra minneområdet som inneholder Hello World

*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/in.h>
#include <sys/socket.h>

main()
{
        char *peker;
        int tcp_socket;
        struct sockaddr_in nFF;
        char recvbuffer[1024];
        nFF.sin_family = AF_INET;
        nFF.sin_port = htons(80);
        nFF.sin_addr.s_addr = inet_addr("88.87.36.126");
        tcp_socket = socket(AF_INET, SOCK_STREAM, 0);
        if (tcp_socket < 0)
        {
                printf("ERROR: Couldn't open socket!\n");
                exit(1);
        }
        connect(tcp_socket, (struct sockaddr*)&nFF, sizeof(nFF));
        send(tcp_socket,"GET /forum/showthread.php?t=125531 HTTP/1.0\r\nHost: freakforum.nu\r\nUser-Agent: test %s\r\n\r\n",90,0);
        recv(tcp_socket,recvbuffer,sizeof(recvbuffer),0);
        peker = strstr(recvbuffer,"Hello World");
        printf("%11.11s\n",peker);
        close(tcp_socket);
        return(0);
}
▼ ... noen uker senere ... ▼
Brainfuck (navnet på et programmeringsspråk):

Kode

++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
med fruktkjøtt.
Tias's Avatar
Crew
|d13m0b: Jeg demonstrerte din genetiske algoritme Hello World på et masterkurs for avanserte emner i kunstig intelligens ved UiB. All credits til deg, naturligvis.

La forøvrig merke til at algoritmen din ikke alltid konvergerer. Å øke sansynligheten for mutasjon, eller størrelsen på den opprinnelige populasjonen gjør sansynligheten for at algoritmen ikke kommer i mål mye mindre...
m0b
m0b's Avatar
DonorAdministrator
Hehe, det må i såfall være første gang utenom jobb jeg har produsert noe som har bidratt til noe. Credits, som i nick i kode?

Men ja, man kan tweake på parametrene for å kunne oppnå et bedre resultat. For hver oppgave en slik skal løse, vil det være forskjellige parametre som passer optimalt. Her tok jeg bare å dro ut tall på følelse.
TI basic

Kode

:clrhome
:disp "hello world"
:pause
Sist endret av gj3rmund; 6. april 2009 kl. 07:02.
Sitat av Swiss79 Vis innlegg
Brainfuck (navnet på et programmeringsspråk):

Kode

++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Vis hele sitatet...
Siden koden din ikke skriver ut kommaet som var en del av den obligatoriske strengen i denne oppgaven regner jeg med du ikke har skrevet programmet selv men copy/pasta det fra et annet sted.
med fruktkjøtt.
Tias's Avatar
Crew
|d13m0b: Ja, credits som i "idlemob på freakforum laget denne algoritmen i forbindelse med en Hello World-konkuranse". Ingen credits som i $$$ desverre :-P
Sitat av fuzzy76 Vis innlegg
Siden koden din ikke skriver ut kommaet som var en del av den obligatoriske strengen i denne oppgaven regner jeg med du ikke har skrevet programmet selv men copy/pasta det fra et annet sted.
Vis hele sitatet...
Jo du har rett i det da. Skulle bare vise et merkelig språk.
Her har du ordentlig løsning, skrevet av meg selv (utgitt til dere og alle andre under GPL-lisens):

Kode

+++++++++++++++[>++>+++>+++++++>++++++++<<<<-]
>>>-.---.+++++++..+++.<-.<++.>>>-.<.+++.------.--------.
▼ ... over et år senere ... ▼
Ble oppfordret til å ta en titt på denne tråden, og tenkte jeg kunne komme med et lite bidrag i Clojure. Ganske basic.., men skal gruble litt på det...

Kode

;; a program saying hello to the world
(use '[clojure.string :only (join)])
(def a (partial subs (slurp *file*)))
(def b #(a % (+ % 5)))
(print (join ", " [(b 20) (b 33)]))
Eller kanskje dette er mer idiomatisk Clojure når jeg tenker meg om:

Kode

;; a program saying hello to the world
(use '[clojure.string :only (join)])
(let [a (partial subs (slurp *file*))]
  (print (join ", " (map #(a % (+ % 5)) [20 33]))))
Oppdatering: Har lekt meg litt, og her er en versjon jeg er litt mere fornøyd med.. Noen som ser (eller vil tippe) hva jeg gjør her?

Kode

(->> 
  (map #(nth (str %) %2)
       '(hash dec nil? apply symbol? 
              " , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , "
              " , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , "
              remove-watch comporator print-ctor bit-shift-left chunk-append) 
       (range))
  (apply str)
  print)
Du tar det nte tegnet i den nte strengen/symbolet fra listen der n går fra 0 og opp, slår det sammen til en streng, og printer det. Pent.

Jeg lagde en ny Haskell-utgave og da den gamle med baklengs gjennomsnitt ikke var så kul…

Kode

import Data.Char
-- | Löb's theorem.
löb :: Functor φ => φ (φ α -> α) -> φ α
löb x = result where result = fmap ($ result) x
main :: IO ()
main = putStrLn . map chr $ löb [\x->x!!1-x!!5+15,(+(-7)).(!!3),(+(-3)).(!!4),(!!2),subtract 18.flip mod 133.sum.drop 5,const 44,\x ->x!!(x!!5-x!!12+1)-1,(+5).(!!9),(+(-3)).(!!9),\x->x!!5+x!!6+x!!12+5,(+8).(!!11),(+(-14)).(!!9),(+(-11)).(!!5)]
Sist endret av Akhkharu; 13. desember 2010 kl. 14:35.
▼ ... over en uke senere ... ▼
Langt i fra den mest spennende løsningen i tråden, men den er annerledes, jeg fikk et innfall og jeg har fri. Den er for øvrig ikke riktig så rett-fram som det virker ved første øyekast, men heller ikke uhyre komplisert, så jeg tipper de fleste ser hva som skjer. Språk: Octave/MATLAB.

Kode

x = 0:11;
y = 1.98863636323707e-04*x.^11 - 1.10424933838902e-02*x.^10 + 2.62424217311662e-01*x.^9 - 3.48740079276035e+00*x.^8 + 2.84237169229153e+01*x.^7 - 1.46707308976679e+02*x.^6 + 4.78549102799268e+02*x.^5 - 9.56039425687396e+02*x.^4 + 1.09014922410786e+03*x.^3 - 6.12754820434325e+02*x.^2 + 1.18615331383188e+02*x + 1.04000000083568e+02;

disp(char(y));
▼ ... noen uker senere ... ▼
Linux mips32el

Kode

        li $v0,4004
        li $a0,1
        li $t0,0x6c6c6568
        li $t1,0x6f77206f
        li $t2,0x21646c72
        li $t3,0x0000000a
        li $t4,4
        sub $sp,$sp,$t4
        sw $t3,($sp)
        sub $sp,$sp,$t4
        sw $t2,($sp)
        sub $sp,$sp,$t4
        sw $t1,($sp)
        sub $sp,$sp,$t4
        sw $t0,($sp)
        move $a1,$sp
        li $a2,13
        syscall
        li $t4,16
        add $sp,$sp,$t4
        jr $ra

Kode

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.
Sitat av Roolfe Vis innlegg

Kode

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.
Vis hele sitatet...
er det faktisk en kode eller er du bare sarkastisk? xD
Sitat av Fossegrimen Vis innlegg
er det faktisk en kode eller er du bare sarkastisk? xD
Vis hele sitatet...
Fra http://www.dangermouse.net/esoteric/ook.html:

Design Principles
  • A programming language should be writable and readable by orang-utans.
  • To this end, the syntax should be simple, easy to remember, and not mention the word "monkey".
  • Bananas are good.

Since the word "ook" can convey entire ideas, emotions, and abstract thoughts depending on the nuances of inflection, Ook! has no need of comments. The code itself serves perfectly well to describe in detail what it does and how it does it. Provided you are an orang-utan.

Det er laget Ook-tolkere i Ruby, Python, Perl m.m., og det finnes til og med en Ook# for .net-plattformen.
Sist endret av tormaroe; 19. januar 2011 kl. 23:06.
http://www.dangermouse.net/esoteric/ook.html



edit:

Litt sen der ja!
Sist endret av Roolfe; 19. januar 2011 kl. 23:03.
▼ ... noen måneder senere ... ▼
Jeg kom nylig over denne, og vil bare vite - does it work like this?

http://i.imgur.com/TmLjK.gif
Nja, for å kompilere må du nok fjerne crappet som vises øverst i kildekoden etterpå, siden det er binærheaderen til BMP-formatet. Bortsett fra det skal det virke, såvidt jeg kan skjønne. Du må rett og slett skrive programmet først, dumpe det med en hexeditor, konvertere hver byte-triplet til en RGB-verdi og tegne disse inn. Du må antakelig også ha litt kjennskap til hvilken rekkefølge pikslene lagres i BMP-formatet.
http://en.wikipedia.org/wiki/BMP_file_format

Den utnytter det at bitmap i hovedsak bare lagrer pixel for pixel, noe som gjør det lett å skrive hva du vil (tolket som f.eks. tegn). Du ser jo at det i starten kommer en del junk, som er de delene av BMP-fila som ikke er pixel-arrayet med rådata.
Her er mitt lille bidrag, om enn forbi tidsfristen.

Kode

package helloworld;
import java.util.Random;
public class Main {
    public static void main(String[] args) {
        char[] targetString = "Hello World!".toCharArray();
        char[] builtString = new char[targetString.length];
        int misses = 0;
        for(int i=0; i < targetString.length; i++) {
            while(true) {
                Random rand = new Random();
                if((char)(rand.nextInt(1000))==targetString[i]) {
                    builtString[i] = targetString[i];
                    String str = new String(builtString);
                    System.out.println(str);
                    break;
                }
                misses++;
            }
        }
        System.out.println("We missed " + misses + " times");
    }
}
Det er skrevet i java.
Jeg tok meg den friheten å lage en liten underkonkurranse. Hvem klarer å få det laveste antallet misses før app'en klarer å generere riktig string? Det er selvsagt juks å endre på antallet chars den har med i arrayet sitt.
Så denne kom opp igjen og tenkte jeg kunne lage min egen.
Dette er rett og slett en liten "bootloader" som man kan f.eks. putte på en minnepenn og boote opp maskinen med, så vil den skrive "Hello, world!" på skjermen.

Bootloader.c er selve assembly-filen som står for å skrive koden på skjermen. Men for at dette skal fungere som en bootloader må dette gjøres om til en form for image-fil som man kan enten boote opp i QEMU eller skrive til minnepennen (f.eks. ved cat image > {device})

bootloader.s

Kode

.text
.globl    _start
.code16
.org 0x00

_start:
    movw	$0x9000,%ax
    movw	%ax,%ss
    movw	$0xfffe,%sp
    movw	$0x0fc0,%ax
    movw	%ax,%ds  

    push $0x0
    push $0x21
    push $0x64
    push $0x6c
    push $0x72
    push $0x6f
    push $0x77
    push $0x20
    push $0x2c
    push $0x6f
    push $0x6c
    push $0x6c
    push $0x65
    push $0x48

print:
    pop %ax
    cmpb $0, %al
    je loop
    movb    $14,%ah
    movl    $0x0002,%ebx
    int $0x10
    jmp print    

loop:
    jmp loop
createimage.c

Kode

#include <elf.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    size_t ret;
    FILE *image = fopen("image", "w");
    fseek(image, 0, SEEK_SET);

    // Open the file
    FILE *fp = fopen("bootblock", "r");

    // Set up a buffers
    Elf32_Ehdr *e_buffer;        
    e_buffer = (Elf32_Ehdr *) malloc(sizeof(Elf32_Ehdr));
    
    Elf32_Phdr *p_buffer;
    p_buffer = (Elf32_Phdr *) malloc(sizeof(Elf32_Phdr));
    
    // Read the ELF-header to find the programheaders
    ret = fread(e_buffer, sizeof(Elf32_Ehdr), 1, fp);
    
    // Read the header
    fseek(fp, e_buffer->e_phoff, SEEK_SET);
    ret = fread(p_buffer, sizeof(Elf32_Phdr), 1, fp);
    
    // Write the segment to the image file
    char *buffer;
    buffer = (char*) malloc(p_buffer->p_memsz);
    fseek(fp, p_buffer->p_offset, SEEK_SET);
    ret = fread(buffer, p_buffer->p_memsz, 1, fp);
    fwrite(buffer, p_buffer->p_memsz, 1, image);

    fclose(fp);
    
    // Write the kernel size and signature
    fseek(image, 510, SEEK_SET);
    short int last_bit = 0xAA55;
    fwrite(&last_bit, sizeof(short int), 1, image);
    
    fclose(image);
    
    return 0;
}
makefile

Kode

all:
	gcc -Wall -g -c -O2 -o bootloader.o bootloader.s
	ld -nostartfiles -nostdlib -Ttext 0x0 -o bootloader bootloader.o
	gcc -o createimage createimage.c
	./createimage
Jeg fikk også lyst til å komme med et nytt bidrag, også denne gang i Clojure. Ikke så veldig avansert, jeg følte meg mer i det kunstneriske hjørnet denne gangen.

Ja, dette er et kjørbart program 8D

Kode

            ;==-----\\
            ;        \\\
            ;         \\\\
(ns ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 ,  hello                                ,,,
  ,     (:use clojure.repl)                 ,,,
   ,        (:require clojure.string))         ,,,
    ,           ((defn                            ,,,
     ,              Hello-World!  [ by Tormaroe ]    ,,,
    ,           (println                          ,,,
   ,        (clojure.string/replace            ,,,
  ,     (first                              ,,,
 ,  (dir-fn 'hello))                     ,,,
#"-" ", "))) 00 00) ,,,,,,,,,,,,,,,,,,,,
            ;         ////
            ;        ///
            ;==-----//
Og output er selvfølgelig "Hello, World!"
Sist endret av tormaroe; 6. april 2011 kl. 18:06.
Ok, får børste støv av gamle kunster... I bring you, Amiga assembler! Dessverre orker jeg ikke prøve obfuskering og morsomme triks, jeg velger å skrive koden fra hodet (og skremmende mye Google, gamle kunster er visst tapt) istedenfor i AsmOne i en Amiga-emulator.

Kode

_LVOOpenLibrary EQU -552
_LVOCloseLibrary EQU -414
_LVOOutput EQU -60
_LVOWrite EQU -48

Go:
  move.l  4,a6
  lea.l   doslib(pc),a1
  moveq.l #0,d0
  jsr     _LVOOpenLibrary(a6)

  tst.l   d0
  beq.s   nodos

  move.l  d0,a6

  lea.l   text(pc),a0
  moveq.l #-1,d3
  move.l  a0,d2
strlen:
  addq.l  #1,d3
  tst.b   (a0)+
  bne.s   strlen

  jsr     _LVOOutput(a6)

  move.l  d0,d1
  jsr     _LVOWrite(a6)

  move.l  a6,a1
  move.l  4,a6
  jsr     _LVOCloseLibrary(a6)

nodos:
  moveq.l #0,d0
  rts

doslib:
  dc.b 'dos.library',0

text:
  dc.b 'hello, world',0
▼ ... over en uke senere ... ▼
Tjaa...

Dette her er en batch fil jeg lagde 5 på morran, skjønte ikke oppgaven :S
Feedback?

@echo off
Title :::::::::::::::::::::Hello, world:::::::::::::::::::::::::
:Start Game
cls

echo.
echo @ @
echo @@@@
echo @ @
echo.



pause
cls

pause

echo.
echo @ @ @@@
echo @@@@ @@
echo @ @ @@@@
echo.


pause
cls

pause

echo.
echo @ @ @@@ @
echo @@@@ @@ @
echo @ @ @@@@ @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@ @ @
echo @@@@ @@ @ @
echo @ @ @@@@ @@@ @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@ @ @ @@@
echo @@@@ @@ @ @ @ @
echo @ @ @@@@ @@@ @@@ @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@ @ @ @@@
echo @@@@ @@ @ @ @ @
echo @ @ @@@@ @@@ @@@ @@@ @
echo.


pause
cls


echo.
echo @ @ @@@ @ @ @@@ @ @
echo @@@@ @@ @ @ @ @ @ @@ @
echo @ @ @@@@ @@@ @@@ @@@ @ @@@@@@
echo.


pause
cls


pause

echo.
echo @ @ @@@ @ @ @@@ @ @ @@@
echo @@@@ @@ @ @ @ @ @ @@ @ @ @
echo @ @ @@@@ @@@ @@@ @@@ @ @@@@@@ @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@ @ @ @@@ @ @ @@@ @@@
echo @@@@ @@ @ @ @ @ @ @@ @ @ @ @@@
echo @ @ @@@@ @@@ @@@ @@@ @ @@@@@@ @@@ @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@ @ @ @@@ @ @ @@@ @@@ @
echo @@@@ @@ @ @ @ @ @ @@ @ @ @ @@@ @
echo @ @ @@@@ @@@ @@@ @@@ @ @@@@@@ @@@ @@@ @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@ @ @ @@@ @ @ @@@ @@@ @ @@@@
echo @@@@ @@ @ @ @ @ @ @@ @ @ @ @@@ @ @ @
echo @ @ @@@@ @@@ @@@ @@@ @ @@@@@@ @@@ @@@ @@@ @@@@
echo.


pause
cls


pause
Vis hele sitatet...
er litt bugs på den ja :P
oppgaven var enkel: Lag en avansert kode som skriver ut "Hello, world!" ikke mer, ikke mindre. Kun akkurat den teksten. Gjerne en avansert algoritme som beregner seg frem til akkurat de bokstavene.
Sitat av ligisd Vis innlegg
Tjaa...

Dette her er en batch fil jeg lagde 5 på morran, skjønte ikke oppgaven :S
Feedback?



er litt bugs på den ja :P
Vis hele sitatet...
Fiksa den litt jeg

Kode

@echo off
Title :::::::::::::::::::::Hello, world:::::::::::::::::::::::::
:Start Game
cls

echo.
echo @ @
echo @@@
echo @ @
echo.



pause
cls

pause

echo.
echo @ @ @@@
echo @@@ @@
echo @ @ @@@@
echo.


pause
cls

pause

echo.
echo @ @ @@@  @
echo @@@ @@   @
echo @ @ @@@@ @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@  @   @
echo @@@ @@   @   @
echo @ @ @@@@ @@@ @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@  @   @   @@@
echo @@@ @@   @   @   @ @
echo @ @ @@@@ @@@ @@@ @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@  @   @   @@@    @  @@  @
echo @@@ @@   @   @   @ @    @ @  @ @
echo @ @ @@@@ @@@ @@@ @@@    @@    @@
echo.


pause
cls


echo.
echo @ @ @@@  @   @   @@@    @  @@  @ @@@
echo @@@ @@   @   @   @ @    @ @  @ @ @ @
echo @ @ @@@@ @@@ @@@ @@@    @@    @@ @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@  @   @   @@@    @  @@  @ @@@ @@@ 
echo @@@ @@   @   @   @ @    @ @  @ @ @ @ @@@ 
echo @ @ @@@@ @@@ @@@ @@@    @@    @@ @@@ @@  
echo.


pause
cls


pause

echo.
echo @ @ @@@  @   @   @@@    @  @@  @ @@@ @@@ @
echo @@@ @@   @   @   @ @    @ @  @ @ @ @ @@@ @
echo @ @ @@@@ @@@ @@@ @@@    @@    @@ @@@ @@  @@@
echo.


pause
cls


pause

echo.
echo @ @ @@@  @   @   @@@    @  @@  @ @@@ @@@ @   @@
echo @@@ @@   @   @   @ @    @ @  @ @ @ @ @@@ @   @ @
echo @ @ @@@@ @@@ @@@ @@@    @@    @@ @@@ @@  @@@ @@
echo.


pause
cls

pause
WTF! det ble helt feil når jeg kopierte og pastet xD la ikke merke til det, var trøtt som faen :P
▼ ... noen uker senere ... ▼
Sitat av Swiss79 Vis innlegg
Brainfuck (navnet på et programmeringsspråk):

Kode

++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Vis hele sitatet...
Jeg har faktisk lekt meg litt med brainfuck i det siste, og blant annet implementert en tolker for brainfuck i Clojure. Sjekk min siste blogpost, og pass på å få med deg videoen
Brainfuck er jo ikke egentlig så ille. Det er egentlig ryddigere enn mange andre programmeringsspråk så lenge du forstår syntaksen - du jobber alltid med et punkt med data, og så kan du bevege deg til andre datapunkt eller forandre verdien. For ekte brainfuck, prøv å f.eks. kombiner SMP samtidig som du bruker et distribuert minne-system slik at du i praksis skriver et program med mange parallelle tråder, som også kjører parallelt på mange andre maskiner, slik at også de programinstansene prater med hverandre. Kombiner det med ekstremt minnekrevende og ressurskrevende iterasjoner i f.eks. numerisk lineæralgebra og du har et helvetes kaos å holde orden på, som samtidig kjører på ekstremt heavy hardware hvor ting må legges i kø for å kunne kjøres.
Sist endret av ivioynar; 14. mai 2011 kl. 20:37.
Nå ble jeg nysgjerrig, denne er innenfor én byte innenfor en longword:
Sitat av fuzzy76 Vis innlegg

Kode

  moveq.l #0,d0
Vis hele sitatet...
Men denne?
Sitat av fuzzy76 Vis innlegg

Kode

  moveq.l #-1,d3
Vis hele sitatet...
Har du Amigaen din tilgjengelig? Kan du sjekke kompilert materiale? Står der move.l? eller moveq.l? På den som er negativ, i e
Sist endret av fxxked; 14. mai 2011 kl. 21:55.
Vet ikke om jeg skjønner hva du spør om, men moveq.l tar inn signerte bytes, altså fra -127 til 127 men skriver dem ut som longwords (32 bit) til minnet. Et alternativ til moveq.l #0, d0 er clr.l d0 men moveq er faktisk kjappere (husker ikke antall cycles i hodet).
Sist endret av fuzzy76; 14. mai 2011 kl. 23:30.
Nå har det kommet varianter av kompliserte hello-worlds (som følger reglene) i C, C++, PHP, Python, ActionScript, Perl, C#, Java, mIRC-script, Befunge, Haskell, Batch, Brainfuck, Clojure, Octave/Matlab, MIPS Assembly, Ook, en bootloader i C og Assembly, og Amiga assembler. Slett ikke dårlig! Her er en ganske kort en i Go:

Kode

package main

import "fmt"

func main() {
	var a [88]int
	b := [...]int{15,17,9,8,4,70,81,-7,0,-4,1,8}
	
	for i := range a{
		a[i]=1881+i
	}
	
	for i,j := range b {
		fmt.Print(string(2000 % a[i+j]))
	}
}
▼ ... mange måneder senere ... ▼
Alt for lenge siden noen posta noe her

Sitter og lærer meg Rebol, og da falt det seg naturlig å lage en HelloWorld:

Kode

REBOL [ Title: "A Hello World one-liner in Rebol" ]

print take/part skip find/tail read http://freak.no/forum/showthread.php?t=125531 <TITLE> 1 11
Noen som vil prøve seg på å forklare hvordan den virker?
Den henter denne tråden, finner title-taggen og så henter de 11 neste tegnene (som da er "hello world")?
Fikk ikke sove så skrev en ny vri basert på Dybde-først-søk som jeg omtalte i en tråd jeg skrev tidliggere. Språket er python.

Kode

class DFS:
    def __init__(self, graph):
        self.graph = graph

    def search(self, start, end):
        self._route = []
        self._visited = [start]

        self._dfs(start, end)
        return self._route

    def _dfs(self, start, end):
        self._route.append(start)
        if start == end:
            return True
        for node in self.graph[start]:
            if node not in self._visited:
                self._visited.append(node)
                if self._dfs(node, end):
                    return True
                self._route.append(start)
        return False

if __name__ == '__main__':
    tree = dict()
    tree['e'] =  ['ll', ' w', 'lo', 'df', '!']
    tree[' w'] = ['e', 'o']
    tree['df'] = ['!', 'll', 'lo']
    tree['d'] =  ['!', 'll', 'up', 'lo', 'e']
    tree['!'] =  ['h', 'up', 'll']
    tree['ll'] = ['o', 'h', 'lo', 'up']
    tree['o'] =  [' w', 'e', 'll', 'r', 'df']
    tree['a'] =  ['bc', 'h', 'df', 'll']
    tree['bc'] = [' w', 'up', 'lo']
    tree['l'] =  ['d', 'a', 'lo', '!', 'o']
    tree['r'] =  ['l', 'lo', 'bc']
    tree['h'] =  ['e', '!', 'd']
    tree['up'] = ['a', 'r', 'd']
    tree['lo'] = ['ll', '!', 'd']

    searcher = DFS(tree)
    route = searcher.search('h', '!')
    print "".join(route)