Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1201 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [Concours de code]Echauffement pour l'IOCCC

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Page Précédente
Auteur Sujet :

[Concours de code]Echauffement pour l'IOCCC

n°1261160
Ummon
Posté le 07-12-2005 à 17:09:33  profilanswer
 

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
mood
Publicité
Posté le 07-12-2005 à 17:09:33  profilanswer
 

n°1261167
black_lord
Truth speaks from peacefulness
Posté le 07-12-2005 à 17:14:56  profilanswer
 

torvalds :o

n°1261190
HelloWorld
Salut tout le monde!
Posté le 07-12-2005 à 17:39:27  profilanswer
 

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
n°1261192
Ummon
Posté le 07-12-2005 à 17:40:42  profilanswer
 

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
n°1261200
HelloWorld
Salut tout le monde!
Posté le 07-12-2005 à 17:49:20  profilanswer
 

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
n°1261201
Ummon
Posté le 07-12-2005 à 17:54:50  profilanswer
 

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...

n°1261206
fra0
Posté le 07-12-2005 à 18:12:28  profilanswer
 

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

n°1261210
masklinn
í dag viðrar vel til loftárása
Posté le 07-12-2005 à 18:40:16  profilanswer
 

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
n°1261217
0x90
Posté le 07-12-2005 à 18:47:14  profilanswer
 

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.
n°1261223
masklinn
í dag viðrar vel til loftárása
Posté le 07-12-2005 à 18:50:30  profilanswer
 

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
mood
Publicité
Posté le 07-12-2005 à 18:50:30  profilanswer
 

n°1261229
0x90
Posté le 07-12-2005 à 18:54:13  profilanswer
 

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.
n°1261336
matafan
Posté le 07-12-2005 à 22:51:14  profilanswer
 

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 ?

n°1261338
0x90
Posté le 07-12-2005 à 22:54:35  profilanswer
 

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.
n°1261351
Ummon
Posté le 07-12-2005 à 23:19:57  profilanswer
 

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
n°1261383
0x90
Posté le 08-12-2005 à 01:12:28  profilanswer
 

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.
n°1261385
fra0
Posté le 08-12-2005 à 01:27:08  profilanswer
 

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
n°1261395
0x90
Posté le 08-12-2005 à 01:57:26  profilanswer
 

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.
n°1261396
fra0
Posté le 08-12-2005 à 01:59:38  profilanswer
 

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

n°1261399
fra0
Posté le 08-12-2005 à 02:01:16  profilanswer
 

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

n°1261405
0x90
Posté le 08-12-2005 à 02:10:30  profilanswer
 

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.
n°1261427
matafan
Posté le 08-12-2005 à 06:45:05  profilanswer
 

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
n°1261456
Ummon
Posté le 08-12-2005 à 08:48:56  profilanswer
 

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
n°1261473
Ummon
Posté le 08-12-2005 à 09:11:01  profilanswer
 

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).

n°1261474
chrisbk
-
Posté le 08-12-2005 à 09:11:53  profilanswer
 

bin alors pourquoi y'a des sorties ?

n°1261482
Ummon
Posté le 08-12-2005 à 09:22:32  profilanswer
 

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 :) ).

n°1261484
Ummon
Posté le 08-12-2005 à 09:23:39  profilanswer
 

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
n°1261528
PowerKiKi
Posté le 08-12-2005 à 10:31:54  profilanswer
 

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
n°1261571
FlorentG
Unité de Masse
Posté le 08-12-2005 à 11:28:15  profilanswer
 

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 ?
 

n°1261576
Ummon
Posté le 08-12-2005 à 11:35:32  profilanswer
 

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.

n°1261578
masklinn
í dag viðrar vel til loftárása
Posté le 08-12-2005 à 11:37:33  profilanswer
 

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
n°1261580
FlorentG
Unité de Masse
Posté le 08-12-2005 à 11:39:14  profilanswer
 

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]

n°1261581
FlorentG
Unité de Masse
Posté le 08-12-2005 à 11:40:23  profilanswer
 

masklinn a écrit :

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


Que le labyrinthe est correctement structuré [:moule_bite]

n°1261585
chrisbk
-
Posté le 08-12-2005 à 11:42:56  profilanswer
 

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

n°1261587
FlorentG
Unité de Masse
Posté le 08-12-2005 à 11:44:23  profilanswer
 

chrisbk a écrit :

lol, ur teh bloatman


I'm teh modernman u 0ld-monk3y

n°1261588
masklinn
í dag viðrar vel til loftárása
Posté le 08-12-2005 à 11:47:07  profilanswer
 

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
n°1261589
chrisbk
-
Posté le 08-12-2005 à 11:47:21  profilanswer
 

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

n°1261591
FlorentG
Unité de Masse
Posté le 08-12-2005 à 11:50:12  profilanswer
 

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
n°1261597
Emmanuel D​elahaye
C is a sharp tool
Posté le 08-12-2005 à 12:04:14  profilanswer
 

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/
n°1261599
FlorentG
Unité de Masse
Posté le 08-12-2005 à 12:07:03  profilanswer
 

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

n°1261737
masklinn
í dag viðrar vel til loftárása
Posté le 08-12-2005 à 14:31:49  profilanswer
 

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
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Concours de code]Echauffement pour l'IOCCC

 

Sujets relatifs
Problème de lecture .wmv dans le code HTMLComment on code des bretelles en ada ?
récupérer le code source page Web https..(dhtml, javascript) avec vba?Code VBA permettant de supprimer un faux message d'erreur
Code de retour d'un batch windowsj'ai du code vbscript que j'aimerais transformer en vb6
[VBA-EXCEL 2003] SaveCopyAs mais sans le code VBA ou macroj'ai le code source des page html qui s'affiche en local
Fonction pour pour convertir le code HTMLPb code php : page de connexion
Plus de sujets relatifs à : [Concours de code]Echauffement pour l'IOCCC


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR