[Concours de code]Echauffement pour l'IOCCC

Echauffement pour l'IOCCC [Concours de code] - C - Programmation

Marsh Posté le 07-12-2005 à 17:09:33    

Vous ! oui Vous qui ne faîtes rien qu'a glander sur BlaBla@Programmation en attendant l'heure de la pause, Vous qu'on sous-exploite alors que Linus Torvalds (celui qui dit que les goto c'est bien) ne vous arrive même pas à la cheville. Exprimez votre besoin de liberté en participant à notre grand concours "Toi aussi fait du code pourri qui marche (défois)".
 
Le but est de réaliser un programme permettant de résoudre un labyrinthe et afficher le chemin d'un point A à un point B.
Le défit ultime est de pondre un code source le plus petit possible (le moins de caractère), les espaces, tabulations et retour à la ligne (<cr><lf> et/ou <lf> ) ne seront pas compté (tous les caractères non-imprimables de façon général).
 
 
Données
 
Voici le code qui devra obligatoirement se trouver au début de votre code source et qui ne devra en aucun cas être modifié (pour que tout le monde ait les même bases) :
 

Code :
  1. #define H 5
  2. #define W 5
  3. #define DI 0
  4. #define DJ 0
  5. #define AI 3
  6. #define AJ 3
  7. static char l[H][W] =
  8. {{0x7, 0x5, 0x0, 0x5, 0x9},
  9. {0x3, 0x1, 0x4, 0x9, 0xa},
  10. {0x0, 0xc, 0x3, 0x4, 0x0},
  11. {0xa, 0x3, 0xc, 0xb, 0xa},
  12. {0xe, 0x6, 0x1, 0xc, 0xe}};


 
H est la hauteur du labyrinthe
W est la largeur du labyrinthe
DI, DJ sont les coordonnées du point de départ
AI, AJ sont les coordonnées du point d'arrivé
l est le labyrinthe, chaque case est codé comme suit (les bit sont décrit en partant de celui ayant le poids le plus faible):
 1er bit = 1 signifie qu'il y a un mur en haut  
 2ieme bit = 1 signifie qu'il y a un mur à gauche
 3ieme bit = 1 signifie qu'il y a un mur en bas
 4ieme bit = 1 signifie qu'il y a un mur à droite
 5ième-8ième bits : non-utilisés.  
exemples :
 0xa : mur à gauche et à droite
 0x3 : mur en haut et à gauche
 
Quelques labyrinthes que le programme doit pouvoir résoudre (bleu = départ, rouge = arrivée) :
a)http://www.gburri.org/superconcours/lab1.png b)http://www.gburri.org/superconcours/lab2.png c)http://www.gburri.org/superconcours/lab3.png
 
a) Le labyrinthe de l'exemple fournit
b)

#define H 5
#define W 5
#define DI 2
#define DJ 2
#define AI 0
#define AJ 4
static char l[H][W] =  
{{0x0, 0x0, 0x0, 0x0, 0x0},
 {0x0, 0x0, 0x4, 0x0, 0x0},
 {0x0, 0x8, 0xb, 0x2, 0x0},
 {0x0, 0x0, 0x0, 0x0, 0x0},
 {0x0, 0x0, 0x0, 0x0, 0x0}};


c) Pour ce cas ci le programme ne doit pas tourner indéfiniment

#define H 5
#define W 5
#define DI 2
#define DJ 2
#define AI 0
#define AJ 3
static char l[H][W] =  
{{0x3, 0x9, 0x7, 0x5, 0xd},
 {0xa, 0x2, 0x1, 0x9, 0xb},
 {0xa, 0x2, 0x0, 0x8, 0xa},
 {0xa, 0x6, 0x4, 0xc, 0xa},
 {0x6, 0x5, 0x5, 0x5, 0xc}};


 
Resultat
 
Le résultat doit obligatoirement ressembler à un truc comme ça (pour le labyrinthe fournit). Le chemin peut également être fournit dans l'ordre inverse :

(0,0)
(0,1)
(0,2)
(1,2)
(1,3)
(2,3)
(2,2)
(3,2)
(3,1)
(4,1)
(4,2)
(4,3)
(3,3)


 
Prescriptions générales
 

  • Le code ne doit pas fonctionner uniquement avec l'exemple mais également avec des labyrinthes de tailles différentes ayant ou non une solution.
  • Dans le cas d'un labyrinthe sans solution, le programme de doit pas tourner en boucle.
  • On ne peut pas sortir du labyrinthe (les sorties ne peuvent pas être impruntées).
  • Pour compter le nombre de caractère vous pouvez utiliser ce petit utilitaire : version windows, version linux.
  • Le code doit être à la norme iso C99 (je test avec >gcc -std=c99 source.c).
  • Aucun warning doit être levé à la compilation.
  • Un seul fichier pour le code source
  • Les macros et les gotos sont vos amis :D.
  • Les drogues ne sont en aucun cas interdits.


 
Scores à battre (nb de caractère)
 

  • 386 0x90 (invalide : tourne en boucle lorsqu'il n'y a pas de solution et utilise les sorties pour faire des sauts) -> voir
  • 389 fra0 (dépend de la taille de la pile) -> voir
  • 390 matafan (dépend de la taille de la pile) -> http://forum.hardware.fr/hardwaref [...] 62282]voir
  • 393 0x90 (ne fonctionne pas d'après ce post (j'ai effectivement pu vérifier))-> voir
  • 394 PowerKiki (dépend de la taille de la pile) -> voir
  • 397 Ummon(dépend de la taille de la pile) -> voir
  • 410 Ummon (dépend de la taille de la pile) -> voir
  • 419 matafan (dépend de la taille de la pile) -> voir
  • 431 fra0 (invalide : tourne en boucle lorsqu'il n'y a pas de solution) -> voir


Message édité par Ummon le 19-09-2008 à 11:26:40
Reply

Marsh Posté le 07-12-2005 à 17:09:33   

Reply

Marsh Posté le 07-12-2005 à 17:14:56    

torvalds :o

Reply

Marsh Posté le 07-12-2005 à 17:39:27    

Code :
  1. #include <stdio.h>
  2. int main(){return printf("(0,0)\n(0,1)\n(0,2)\n(1,2)\n(1,3)\n(2,3)\n(2,2)\n(3,1)\n(3,2)\n(4,1)\n(4,2)\n(4,3)\n(3,3)\n" );}


j'ai gagné http://yelims2.free.fr/Fete/Danseurvert.gif


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 07-12-2005 à 17:40:42    

petit malin, mais : "Le code ne doit pas fonctionner uniquement avec l'exemple.", faut lire jusqu'a la fin :o. de plus il manque les argc et argv dans le main et le retour. Suivant !  


Message édité par Ummon le 07-12-2005 à 17:41:52
Reply

Marsh Posté le 07-12-2005 à 17:49:20    

Tsss, le proto sans argc / argv est légal, et le return y est : il renvoie printf, et j'aurai du l'enlever:
http://www.comeaucomputing.com/techtalk/c99/#return0
Bon, version corrigée qui marche pour d'autres exemples:

Code :
  1. #include <stdio.h>
  2. int main(int argc, char**argv){printf(argv[1]);}


La solution est passée en premier paramètre.
 
 
 
Bon ok ok, je sors. Mais que veux-tu, je suis désavantagé : j'ai beau me forcer, je suis incapable de concevoir un code illisible :spamafote:


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 07-12-2005 à 17:54:50    

Bon ok ok je modifie le argc/argv (je pensais que c'était obligatoire) mais le but n'est non plus de pourrir le topic...

Reply

Marsh Posté le 07-12-2005 à 18:12:28    

ton codage du plateau est assez laid, pour tester plus proprement,
le programme devrait lire stdin avec un format du genre

Code :
  1. 9
  2. 7
  3. xxxxxxxxx
  4. xD...x..x
  5. xxx..x..x
  6. x.x...x.x
  7. x...x...x
  8. x...x..Ax
  9. xxxxxxxxx

Reply

Marsh Posté le 07-12-2005 à 18:40:16    

Ah ouais c'est beaucoup plus propre comme ça tout d'un coup...
([:pingouino])
 
Et brusquement vachement plus facile à parser
([:pingouino][:pingouino][:pingouino])
 
D'ailleurs t'as ptet pas remarqué, mais avec ton super format ultra facile à parser, fournir les tailles du labyrinthe c'est redondant.
([:pingouino][:pingouino][:pingouino][:pingouino][:pingouino])

Message cité 1 fois
Message édité par masklinn le 07-12-2005 à 18:42:34

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-12-2005 à 18:47:14    

masklinn a écrit :

Ah ouais c'est beaucoup plus propre comme ça tout d'un coup...
([:pingouino])
 
Et brusquement vachement plus facile à parser
([:pingouino][:pingouino][:pingouino])
 
D'ailleurs t'as ptet pas remarqué, mais avec ton super format ultra facile à parser, fournir les tailles du labyrinthe c'est redondant.
([:pingouino][:pingouino][:pingouino][:pingouino][:pingouino])


 
Son format ( a base de x et de . ) est le format standard des entrainements prologins il me semble [:spamafote]


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 07-12-2005 à 18:50:30    

J'crois pas que ce soit le but de l'exercice là [:dawa]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-12-2005 à 18:50:30   

Reply

Marsh Posté le 07-12-2005 à 18:54:13    

Bha d'un autre coté, intégrer le labyrinthe au code c'est pas top, ca demande de recompiler pour avoir la solution d'un autre labyrinthe. Bon ca permet de résoudre le pb uniquemnent à base de préprocesseur ( bonne chance :) ) mais ca fait du programme finit kkchose de pas très utilisable quand même :/


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 07-12-2005 à 22:51:14    

Donc la qualite du chemin propose (longueur, fait qu'on revinnent parfois sur ses pas...) n'intervient absolument dans la "notation" du programe ? Ni la beaute de l'algorithme utilise ? Seulement la taille du programme ?

Reply

Marsh Posté le 07-12-2005 à 22:54:35    

matafan a écrit :

Donc la qualite du chemin propose (longueur, fait qu'on revinnent parfois sur ses pas...) n'intervient absolument dans la "notation" du programe ? Ni la beaute de l'algorithme utilise ? Seulement la taille du programme ?


 
C'est vrai que si y'a pas de notion de qualité du chemin, spa génial :/ un simple algo de "je colle au mur de droite sauf quand je suis deja passé par la" peut faire l'affaire


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 07-12-2005 à 23:19:57    

matafan a écrit :

Donc la qualite du chemin propose (longueur, fait qu'on revinnent parfois sur ses pas...) n'intervient absolument dans la "notation" du programe ? Ni la beaute de l'algorithme utilise ? Seulement la taille du programme ?


Non la qualité du chemin n'importe pas, il faut juste que le chemin soit cohérent, c-à-d que chaque point donné soit contigue au précédent et commence au point de départ et finit au point d'arrivé.
Le but ultime est de minimiser le nombre de caractère (par l'utilisation de macro, de décalage de bit ou autre..)!


Message édité par Ummon le 07-12-2005 à 23:20:39
Reply

Marsh Posté le 08-12-2005 à 01:12:28    

Bon voila ma solution, surement pas optimale mais j'aurais l'honneur d'avoir posté le 1er ^^ :


#define DJ 0
#define AI 3
#define AJ 3
static char l[H][W] =  
{{0x7, 0x5, 0x0, 0x5, 0x9},
{0x3, 0x1, 0x4, 0x9, 0xa},
{0x0, 0xc, 0x3, 0x4, 0x0},
{0xa, 0x3, 0xc, 0xb, 0xa},
{0xe, 0x6, 0x1, 0xc, 0xe}};
 
     #include <stdio.h>
    #include  <stdlib.h>
   int x=DI,y=DJ,d=4; int
  main(void){while(x-AI||y
 -AJ){while(l[y][x]&d||rand
 ()%2||!printf("(%i,%i)\n",
  y,x)){(d>>=1)||(d=8);}(d
   &1)?y+=H-1:(d&2)?x+=W-
    1:(d&4)?y++:x++;y%=H
     ;x%=W ;}return 0;}


[edit]
j'ai pas eu l'occasion de le tester avec différents laby ( flemme de coder un générateur ), si kkun arrive à le prendre en défaut ca m'étonnerait pas j'ai fait ca vitefait ^^


Message édité par 0x90 le 08-12-2005 à 01:13:38

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 08-12-2005 à 01:27:08    

sympa,
dans le style drunken master

Code :
  1. #define H 5
  2. #define W 5
  3. #define DI 0
  4. #define DJ 0
  5. #define AI 3
  6. #define AJ 3
  7. static char l[H][W] =
  8. {{0x7, 0x5, 0x0, 0x5, 0x9},
  9. {0x3, 0x1, 0x4, 0x9, 0xa},
  10. {0x0, 0xc, 0x3, 0x4, 0x0},
  11. {0xa, 0x3, 0xc, 0xb, 0xa},
  12. {0xe, 0x6, 0x1, 0xc, 0xe}};
  13. #include<stdio.h>
  14. #include<stdlib.h>
  15. #define l(n,p,k)case n:if(!((l[y][x]>>n)&1)&&p)k;else goto _;break;
  16. int main(){int x=DJ,y=DI;while(
  17. printf("(%d,%d)\n",y,x)&&x-AJ|y
  18. -AI)_:switch(rand()&3){l(0,y>0,
  19. --y)l(1,x>0,--x)l(2,y<H-1,++y)l
  20. (3,x<W-1,++x)}return 0;}


ce programme ne perd jamais espoir ...
(edit petit lapin & mise en page, mdr le Vi)
ps :j'ai surement inversé I & J

Message cité 1 fois
Message édité par fra0 le 08-12-2005 à 03:27:32
Reply

Marsh Posté le 08-12-2005 à 01:57:26    

fra0 a écrit :

sympa,
dans le style drunken master

Code :
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define l(n,p,k) case n:if(!((l[y][x]>>n)&1)&&p)k;else goto _;break;
  4. int main(){int x=DJ,y=DI;while(x-AJ|y-AI&&printf("(%d,%d)\n",y,x))
  5. _:switch(rand()&3){l(0,y>0,--y)l(1,x>0,--x)l(2,y<H-1,++y)l(3,x<W-1,++x)}
  6. return 0;}


ce programme ne perd jamais espoir ...


 
Si j'ai bien compris le dessin en haut, par les trous au milieu de chaque bords on peut passer, et si j'ai bien compris ton code, il le gère pas non ?


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 08-12-2005 à 01:59:38    

"On ne peut pas sortir du labyrinthe sans autorisation préalable."
 
voui, j'ai pas compris à qui il fallait demander l'autorisation

Reply

Marsh Posté le 08-12-2005 à 02:01:16    

sans aucun doute, t'es devant et tu pourrais encore gagner quelques octets
avec d>>=1
et tes houuuu

Reply

Marsh Posté le 08-12-2005 à 02:10:30    

Voui je gagne un peu avec quelques optims :


#define H 5
#define W 5
#define DI 0
#define DJ 0
#define AI 3
#define AJ 3
static char l[H][W] =  
{{0x7, 0x5, 0x0, 0x5, 0x9},
{0x3, 0x1, 0x4, 0x9, 0xa},
{0x0, 0xc, 0x3, 0x4, 0x0},
{0xa, 0x3, 0xc, 0xb, 0xa},
{0xe, 0x6, 0x1, 0xc, 0xe}};
 
#include             <stdio.h>
 #include           <stdlib.h>
  int main         () {int d=
   4,e=DJ,a       =DI ;while   (
    a-AI||e-     AJ){while(
     l[e][a]&   d||rand()&    1||
      !printf( "(%i,%i)\n"    ,e,
       a))(d/=2 )||(d=8);     (d&
        1)?e+=H-1:(d&2)?      a+=
         W-1:(d&4)?e++:       ++a
          ;e%=H ;a%=W;        } }


 
[edit]
J'ai refait un peu la présentation :whistle:


Message édité par 0x90 le 08-12-2005 à 02:46:17

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 08-12-2005 à 06:45:05    

Je propose la première solution déterministe, avec une bête recherche en profondeur par récursion :

Code :
  1. #define H 5
  2. #define W 5
  3. #define DI 0
  4. #define DJ 0
  5. #define AI 3
  6. #define AJ 3
  7. static char l[H][W] = 
  8. {{0x7, 0x5, 0x0, 0x5, 0x9},
  9. {0x3, 0x1, 0x4, 0x9, 0xa},
  10. {0x0, 0xc, 0x3, 0x4, 0x0},
  11. {0xa, 0x3, 0xc, 0xb, 0xa},
  12. {0xe, 0x6, 0x1, 0xc, 0xe}};
  13. #include <stdio.h>
  14. #define u unsigned
  15. #define r return
  16. u f(u i, u j)
  17. {
  18. u c = ~l[i][j];
  19. if (i<H && j<W && c&16) {
  20.  l[i][j] |= 16;
  21.  if (i==DI && j==DJ
  22.      || c&1 && f(i-1,j)
  23.      || c&2 && f(i,j-1)
  24.      || c&4 && f(i+1,j)
  25.      || c&8 && f(i,j+1))
  26.  {
  27.   printf("(%u,%u)\n", i, j);
  28.   r 1;
  29.  }
  30. }
  31. r 0;
  32. }
  33. int main()
  34. {
  35. r f(AI,AJ);
  36. }


L'utilisation d'unsigned permet d'économiser la comparaison à 0 de i et j.
 
Si j'ai bien compté on a pour l'instant 0x90 à 386 caractères, moi à 419 et fra0 à 431.
 
Edit : j'inverse les points de départ et d'arrivée pour obtenir un affichage à l'endroit.


Message édité par matafan le 08-12-2005 à 07:07:30
Reply

Marsh Posté le 08-12-2005 à 08:48:56    

matafan >
J'ai quelques erreurs avec ton code (gcc 3.2.3) :
include/stdio.h:206: parse error before "size_t"
 
peut-être dû à l'utilisation de macros..

Message cité 1 fois
Message édité par Ummon le 08-12-2005 à 08:49:44
Reply

Marsh Posté le 08-12-2005 à 09:11:01    

J'ai ajouté deux clause pour clarifier certains points :  

  • Dans le cas d'un labyrinthe sans solution, le programme de doit pas tourner en boucle.
  • On ne peut pas sortir du labyrinthe (les sorties ne peuvent pas être impruntées).

Reply

Marsh Posté le 08-12-2005 à 09:11:53    

bin alors pourquoi y'a des sorties ?

Reply

Marsh Posté le 08-12-2005 à 09:22:32    

Simplement pour compliquer un petit peu et obliger à gérer le cas ou l'on sort du tableau (se balader aléatoirement dans la mémoire :) ).

Reply

Marsh Posté le 08-12-2005 à 09:23:39    

Bon je propose mon code :

Code :
  1. #define H 5
  2. #define W 5
  3. #define DI 0
  4. #define DJ 0
  5. #define AI 3
  6. #define AJ 3
  7. static char l[H][W] =
  8. {{0x7, 0x5, 0x0, 0x5, 0x9},
  9. {0x3, 0x1, 0x4, 0x9, 0xa},
  10. {0x0, 0xc, 0x3, 0x4, 0x0},
  11. {0xa, 0x3, 0xc, 0xb, 0xa},
  12. {0xe, 0x6, 0x1, 0xc, 0xe}};
  13. #include<stdio.h>
  14. #define I [i][j]
  15. #define Q(A) &&~l I&A&&p(i
  16. #define R return
  17. int p(int i,int j)
  18. {
  19.    if(l      I&16
  20.    )R 0      ;l I
  21.    |=16      ;R (
  22.    i ==      DI&&
  23.    j ==      DJ||
  24.    i Q(      1)-1
  25.    ,j )      || j
  26.    Q(2)      ,j-1
  27.    )||i      <H-1
  28.    Q(4)      +1,j
  29.    )||j      <W-1
  30.     Q(8),j+1))&&
  31.  
  32.    printf("(%i,%i)\n",i,j);
  33. }
  34. int main()
  35. {
  36.    R p(AI,AJ);
  37. }


 
Il sort ca :

(0,0)
(0,1)
(0,2)
(1,2)
(1,3)
(2,3)
(2,2)
(3,2)
(3,1)
(4,1)
(4,2)
(4,3)
(3,3)


 
Il retourne 0 si pas de solution


Message édité par Ummon le 08-12-2005 à 10:09:08
Reply

Marsh Posté le 08-12-2005 à 10:31:54    

Code :
  1. #define H 5
  2. #define W 5
  3. #define DI 0
  4. #define DJ 0
  5. #define AI 3
  6. #define AJ 3
  7. static char l[H][W] = 
  8. {{0x7, 0x5, 0x0, 0x5, 0x9},
  9. {0x3, 0x1, 0x4, 0x9, 0xa},
  10. {0x0, 0xc, 0x3, 0x4, 0x0},
  11. {0xa, 0x3, 0xc, 0xb, 0xa},
  12. {0xe, 0x6, 0x1, 0xc, 0xe}};
  13. #include <stdio.h>
  14. #define L l[i][j]
  15. #define E(c, x) )|| c && ~L & x && r(i
  16. int r(int i, int j)
  17. {
  18.    return ~L &16?L |=16,(i==DI && j==DJ( E(i, 1) -1,j E(j, 2) ,j-1 E(i<H-1, 4) +1,j E(j<W-1, 8) ,j+1)) && printf("(%d,%d)\n",i,j):0;
  19. }
  20. int main()
  21. {
  22.    r(AI, AJ);
  23. }


 
moi, j'aimes pas quand il y a plusieurs lignes dans une fonction.
 
396 caracteres pour une sortie identique a Ummon.


Message édité par PowerKiKi le 08-12-2005 à 11:01:55
Reply

Marsh Posté le 08-12-2005 à 11:28:15    

On peut utiliser un fichier XML pour le labyrinthe ? On pourrait alors faire une validation avec un XSD [:dawa]
 
J'peux faire ça en PHP ?
 
En JavaScript ?
 
 
Y'a quoi comme compilo C pour être sur qu'on est valide C99 ?
 

Reply

Marsh Posté le 08-12-2005 à 11:35:32    

Alors c'est uniquement en 'C99' ... mais bon si cela t'amuses tu peux le faire dans un autre langage.
Pour le labyrinthe en xml, bein c'est pas en accord avec la donnée.
Sinon pour le compilo tu peux prendre 'gcc' par exemple.

Reply

Marsh Posté le 08-12-2005 à 11:37:33    

FlorentG a écrit :

On peut utiliser un fichier XML pour le labyrinthe ? On pourrait alors faire une validation avec un XSD [:dawa]


 [:moule_bite]  
 
Et valider quoi d'abord, que le labyrinthe a une solution [:petrus dei]

Message cité 1 fois
Message édité par masklinn le 08-12-2005 à 11:37:52

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-12-2005 à 11:39:14    

gcc c'est linusqusse, non ? [:petrus75]
 
 
Nan bon, j'vais essayer si je trouve le temps, ça me fera travailler l'algoritmique et l'obfuscation [:kbchris]

Reply

Marsh Posté le 08-12-2005 à 11:40:23    

masklinn a écrit :

Et valider quoi d'abord, que le labyrinthe a une solution [:petrus dei]


Que le labyrinthe est correctement structuré [:moule_bite]

Reply

Marsh Posté le 08-12-2005 à 11:42:56    

FlorentG a écrit :

On peut utiliser un fichier XML pour le labyrinthe ? On pourrait alors faire une validation avec un XSD [:dawa]
 
J'peux faire ça en PHP ?
 
En JavaScript ?
 
 
Y'a quoi comme compilo C pour être sur qu'on est valide C99 ?


 
lol, ur teh bloatman

Reply

Marsh Posté le 08-12-2005 à 11:44:23    

chrisbk a écrit :

lol, ur teh bloatman


I'm teh modernman u 0ld-monk3y

Reply

Marsh Posté le 08-12-2005 à 11:47:07    

FlorentG a écrit :

gcc c'est linusqusse, non ? [:petrus75]


Ya des ports sous winwin

FlorentG a écrit :

Que le labyrinthe est correctement structuré [:moule_bite]


haha lol [:moule_bite]  

FlorentG a écrit :

I'm teh modernman u 0ld-monk3y


Non, retourne faire du java [:bistou tt]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-12-2005 à 11:47:21    

shitz0r, its because of moron like u taht cant do sh*t in less than 3gb that we need 5ghz pc to run a stupid not3p4d

Reply

Marsh Posté le 08-12-2005 à 11:50:12    

masklinn a écrit :

Ya des ports sous winwin


Je sais, je sais. Au pire j'ai un cygwin où doit y avoir un gcc.
 


hihihi lol
 

masklinn a écrit :

Non, retourne faire du java [:bistou tt]


Merci, mais j'ai arrêté
 

chrisbk a écrit :

shitz0r, its because of moron like u taht cant do sh*t in less than 3gb that we need 5ghz pc to run a stupid not3p4d


My bloat-stuff is so optimised, it's waaay faster than ur vintage prog style


Message édité par FlorentG le 08-12-2005 à 11:50:24
Reply

Marsh Posté le 08-12-2005 à 12:04:14    

FlorentG a écrit :

gcc c'est linusqusse, non ?


Pas forcément. Sous Windows, il y a cygwin et mingw.  
 
Voir Code::Blocks, par exemple... (IDE sur mingw)
 
http://www.codeblocks.org/


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 08-12-2005 à 12:07:03    

Justement, j'ai déjà cygwin d'installouillé, donc c'est bon :) Y'a un gcc 3.4.4 avec

Reply

Marsh Posté le 08-12-2005 à 14:31:49    

J'viens de remarquer un truc marrant: avec ce format de labyrinthes on peut créer des passages à un seul sens [:atsuko]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed