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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Auteur Sujet :

[Concours de code]Echauffement pour l'IOCCC

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

Reprise du message précédent :
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 08-12-2005 à 14:31:49  profilanswer
 

n°1261740
0x90
Posté le 08-12-2005 à 14:32:57  profilanswer
 

Arf les règles on changé, vis à vis de la "non-solution" :/


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1261757
Ummon
Posté le 08-12-2005 à 14:48:10  profilanswer
 

Ouais, en fait c'était plus ou moins implicitement dit dans cette phrase :
"Le code ne doit pas fonctionner uniquement avec l'exemple mais également avec des labyrinthes de tailles différentes ayant ou non une solution" mais c'est vrai que ce n'était pas très clair, je l'ai donc explicitement dit.
Par contre il n'est pas nécessaire d'annoncer qu'il n'y a pas de solution, il suffit de ne rien afficher.

n°1261790
0x90
Posté le 08-12-2005 à 15:07:38  profilanswer
 

Chuis entrain de refaire une solution alors, "sans rand" ;)


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1261908
fra0
Posté le 08-12-2005 à 16:34:00  profilanswer
 

faudrait savoir ce que tu appelles des warnings aussi,
certains compilateurs gueulent quand int main() ne renvoie pas de valeur,
quand on utilise printf sans inclure stdio.h
quand on initialise un tableau de char avec des ints
etc....

n°1261912
Ummon
Posté le 08-12-2005 à 16:40:38  profilanswer
 

pas de warnings avec gcc :
gcc main.cpp (bon là tu vas me dire oui mais avec quelle version... ^.^)
 
Bon voila, c'est pour éviter de faire des raccourcis dégeux

n°1261928
fra0
Posté le 08-12-2005 à 17:07:22  profilanswer
 

juste pour signaler que ma solution invalide (mais qui marche quelle que soit la taille de la pile) fait 231 caractères.

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(
  5. printf("(%d,%d)\n",y,x)&&x-AJ|y
  6. -AI)_:switch(rand()&3){l(0,y,--
  7. y)l(1,x,--x)l(2,y<H-1,++y)l(3,x
  8. <W-1,++x)}}

n°1261937
Ummon
Posté le 08-12-2005 à 17:17:46  profilanswer
 

On compte tous les caractères du fichier, y compris l'entête obligatoire donc ca fait bien 431 (c pour tout le monde la même chose).
Si tu veux qu'il soit valide il faut simplement gérer le cas ou le labyrinthe n'est pas faisable.


Message édité par Ummon le 08-12-2005 à 17:23:56
n°1261947
fra0
Posté le 08-12-2005 à 17:23:59  profilanswer
 

ah ok, je me disais aussi...
 
je veux bien que tu mettes mon score à jour quand même (ou que tu m'enlèves du tableau)
 
144 fais gaffe, ton programme arrive en (4,3) ...
 

n°1261954
0x90
Posté le 08-12-2005 à 17:31:37  profilanswer
 

fra0 a écrit :

ah ok, je me disais aussi...
 
je veux bien que tu mettes mon score à jour quand même (ou que tu m'enlèves du tableau)
 
144 fais gaffe, ton programme arrive en (4,3) ...


Uep dans une version il oubliait la dernière étape, t'as testé la Vi ou une d'avant ?
'Fin bref, une nouvelle, sans rand, sans warning, plus compacte, et featuring des pointeurs ^^


#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>
#define a(a,b) &&~m[a]&16&&~(*m|= 16)&b&&f(a+p)||
f(p){char*m=*l+p;return(DJ*W+DI==p||W<p a(-W,1)p%
W!=W-1 a(1,8)p+W<W*H a(W,4)p%W a(-1,2)0)&&printf(
        "(%i,%i)\n",p/W,p%W);}main(){f(AJ*W+AI);}


 
PS : on peut avoir la source du compteur de lettre pour nux ?
 
[edit]
J'ai oublié quelques optims, je poste dans kks minutes ...
 
[re-edit]
ayé patché ...

Message cité 1 fois
Message édité par 0x90 le 08-12-2005 à 17:50:35

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
mood
Publicité
Posté le 08-12-2005 à 17:31:37  profilanswer
 

n°1261961
matafan
Posté le 08-12-2005 à 17:40:31  profilanswer
 

Faudrait obliger a compiler avec gcc -std=c99, parce qu'autrement on peut eviter l'include sans avoir de warnings et ca fait gagner des caracteres.

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

Ummon, tu testes aussi avec des labyrinthes empêchant la technique de coller à un mur?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1261964
FlorentG
Unité de Masse
Posté le 08-12-2005 à 17:43:01  profilanswer
 

Ah c'est pour ça qu'il ne me gueule pas dessus, ayant aucun include ? :D

n°1261965
matafan
Posté le 08-12-2005 à 17:43:49  profilanswer
 

Ummon -> peux-tu ajouter ma solution dans ton premier post ?

n°1261970
0x90
Posté le 08-12-2005 à 17:48:14  profilanswer
 

matafan a écrit :

Faudrait obliger a compiler avec gcc -std=c99, parce qu'autrement on peut eviter l'include sans avoir de warnings et ca fait gagner des caracteres.


ah ben merde, je pensais qu'il gueulerait, effectivement non ...
'fin bon ca change pas grand chose pour le stdio, tlm est forcé de s'en servir.


Message édité par 0x90 le 08-12-2005 à 17:48:34

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1261973
fra0
Posté le 08-12-2005 à 17:55:19  profilanswer
 

oui j'avais testé ton vi,
sans vouloir chipoter, c'est d'ailleurs le seul qui marche ici (avec le mien sur 2 compilos standard)

n°1261979
Ummon
Posté le 08-12-2005 à 18:02:22  profilanswer
 

masklinn a écrit :

Ummon, tu testes aussi avec des labyrinthes empêchant la technique de coller à un mur?


hum ? si tu veux savoir si l'algo est possible c'est oui mais j'ai bien peur qu'il ne fonctionne pas dans tous les cas.

n°1261981
matafan
Posté le 08-12-2005 à 18:04:51  profilanswer
 

Ummon a écrit :

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


Ben je sais pas, ca passe sans probleme chez moi (gcc 3.3.6, glibc 2.3.5). D'ailleurs si tu as une erreur dans stdio.h, ca peut pas vraiment a cause de mon code puisque les defines sont apres l'include. Incompatibilite entre glibc et gcc ?

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

Ummon a écrit :

hum ? si tu veux savoir si l'algo est possible c'est oui mais j'ai bien peur qu'il ne fonctionne pas dans tous les cas.


Non, je veux savoir si t'as des labyrinthes de test qui le font échouer :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1261988
Ummon
Posté le 08-12-2005 à 18:09:21  profilanswer
 

nan c'est ma faute, c'est bon je l'ai ajouté ^^ dsl

n°1261991
Ummon
Posté le 08-12-2005 à 18:10:34  profilanswer
 

masklinn a écrit :

Non, je veux savoir si t'as des labyrinthes de test qui le font échouer :o


Oui, je vais rajouté 2 labyrinthes de test dans l'ennoncé pour avoir plus de cas possible.

n°1262003
0x90
Posté le 08-12-2005 à 18:32:12  profilanswer
 

--*-- Code buggé, voire plus bas ( ou tout en haut ) --*--
 
En fait il faut rajouter 3 ints pour que mon code soit c99 compliant ( sans warnings avec std=c99, et dans ce cas la mon score est de 395, mais avec un peu d'optim je descends encore un poil :


#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>
#define a(a,b) &&~(*l)[a+p]&16&&b&~((*l)[p]|=16)&&f(a+p)||
int f(int p){return(DJ*W+DI==p||W<p a(-W,1)p%W!=W-1 a(1,8)
p+W<W*H a(W,4)p%W a(-1,2)0)&&printf("(%i,%i)\n",p/W,p%W);}
                                   int main(){f(W*AJ+AI);}

Message cité 1 fois
Message édité par 0x90 le 08-12-2005 à 21:28:19

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1262004
red factio​n
Posté le 08-12-2005 à 18:33:16  profilanswer
 

faut til absolument trouve le chemin le plus court ?
si on passe a travers lautre cote du labyrinthe on revient de l'autre coté????

Message cité 1 fois
Message édité par red faction le 08-12-2005 à 18:34:19
n°1262007
0x90
Posté le 08-12-2005 à 18:36:25  profilanswer
 

red faction a écrit :

faut til absolument trouve le chemin le plus court ?
si on passe a travers lautre cote du labyrinthe on revient de l'autre coté????


 
pas forcément le plus court (cf les solutions a base de rand() qui sont assez proche du comportement humain (dumoins la mienne, j'ai pas analysé a fond les autres),  par contre pas de traversée à la pacman ( jme suis fait avoir la dessus moi aussi :sweat: )


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1262010
matafan
Posté le 08-12-2005 à 18:38:30  profilanswer
 

Rahhh ca m'ennerve, avec le decalage horraire tout le monde aura deja poste des solutions quasi-optimales avant que je m'y remette :kaola:

n°1262012
0x90
Posté le 08-12-2005 à 18:39:45  profilanswer
 

bwarf, y'a encore de la place pour réduire la ...


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1262020
Ummon
Posté le 08-12-2005 à 18:50:19  profilanswer
 

matafan a écrit :

Rahhh ca m'ennerve, avec le decalage horraire tout le monde aura deja poste des solutions quasi-optimales avant que je m'y remette :kaola:


Je pense qu'il y a une grande marge de maneuvre ! Bonne chance ;)

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

0x90 a écrit :

En fait il faut rajouter 3 ints pour que mon code soit c99 compliant ( sans warnings avec std=c99, et dans ce cas la mon score est de 395, mais avec un peu d'optim je descends encore un poil :


#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>
#define a(a,b) &&~(*l)[a+p]&16&&b&~((*l)[p]|=16)&&f(a+p)||
int f(int p){return(DJ*W+DI==p||W<p a(-W,1)p%W!=W-1 a(1,8)
p+W<W*H a(W,4)p%W a(-1,2)0)&&printf("(%i,%i)\n",p/W,p%W);}
                                   int main(){f(W*AJ+AI);}



J'ai des warnings sur ton code perso, avec gcc 3.4.4
 
Et au moins un maze qu'il arrive pas à résoudre alors qu'il y a une solution :o
 

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

Message cité 1 fois
Message édité par masklinn le 08-12-2005 à 19:01:47

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1262041
red factio​n
Posté le 08-12-2005 à 19:14:55  profilanswer
 

De combien de temps cpu dispose-t-on ?

n°1262042
Ummon
Posté le 08-12-2005 à 19:20:04  profilanswer
 

faudrait pas dépasser 1 jour ^^, t'es partit sur un algorithme génétique ?

n°1262045
red factio​n
Posté le 08-12-2005 à 19:21:50  profilanswer
 

non disons un peu trop random

n°1262047
0x90
Posté le 08-12-2005 à 19:23:35  profilanswer
 

masklinn a écrit :

J'ai des warnings sur ton code perso, avec gcc 3.4.4
 
Et au moins un maze qu'il arrive pas à résoudre alors qu'il y a une solution :o
 

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



 
Quoi comme warning ? (d'après l'énoncé la ligne de compil c'est gcc -std=c99 fichier.c )
 
une version plus cours d'un caractère :


#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}};
 
 
#define a(a,b) &&~(* l)[a+p]&16&&b&~((* l)[p]|=16)&&f (a+p)||
#include                                            <stdio.h>
int f(int p){return(DJ*W+DI==p||W<p a(-W,1)(p+1)%W a(1,8)p/W+
1<H a(W,                                            4)p%W a(-
1,2)0)&&printf("(%i,%i)\n",p/W,p%W); }int main(){f(W*AJ+AI);}


 
Et je vais voir pour le maze pkoi il le résouds pas :/
 
[edit]
 
ptin c'est imbitable ces séries de char :/

Message cité 1 fois
Message édité par 0x90 le 08-12-2005 à 19:25:01

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1262049
masklinn
í dag viðrar vel til loftárása
Posté le 08-12-2005 à 19:31:39  profilanswer
 

0x90 a écrit :

Quoi comme warning ? (d'après l'énoncé la ligne de compil c'est gcc -std=c99 fichier.c )


Citation :

$ gcc -Wall -pedantic -std=c99 x90.c -o x90
x90.c: In function `f':
x90.c:18: warning: suggest parentheses around && within ||
x90.c:18: warning: suggest parentheses around && within ||
x90.c:19: warning: suggest parentheses around && within ||
x90.c:19: warning: suggest parentheses around && within ||
$
$ gcc -v
Reading specs from /usr/lib/gcc/i486-linux/3.4.4/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --libexecdir=/usr/lib --with-gxx-include-dir=/usr/include/c++/3.4 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --program-suffix=-3.4 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk --disable-werror i486-linux
Thread model: posix
gcc version 3.4.4 20050314 (prerelease) (Debian 3.4.3-13)



---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1262051
Ummon
Posté le 08-12-2005 à 19:35:52  profilanswer
 

pas de -Wall !

n°1262054
red factio​n
Posté le 08-12-2005 à 19:37:31  profilanswer
 

lolilol

n°1262056
masklinn
í dag viðrar vel til loftárása
Posté le 08-12-2005 à 19:38:52  profilanswer
 

Ummon a écrit :

pas de -Wall !


Si, toujours :o
 
Pas de warnings, c'est pas de warnings en -Wall :o
 
(et encore là j'ai fait preuve d'honnêteté en explicitant le -Wall, paske dans les faits j'ai un alias gcc="gcc -Wall" :whistle: )


Message édité par masklinn le 08-12-2005 à 19:39:27

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1262059
0x90
Posté le 08-12-2005 à 19:42:35  profilanswer
 

amusant, j'ai pas plus de warning en pedantic qu'en -Wall , par contre, il a quoi de particulier ton maze, j'ai bcp bcp de mal à le visualiser la :/


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1262060
masklinn
í dag viðrar vel til loftárása
Posté le 08-12-2005 à 19:43:19  profilanswer
 

C'est pas le maze, ça le fait avec ton code d'origine :/


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1262061
0x90
Posté le 08-12-2005 à 19:46:13  profilanswer
 

Jviens de capter la raison de l'echec, et faut que je trouve comment résoudre ca, aarg :/ ( et je sens que chuis pas le seul à avoir ce défaut dans les non-randoms )


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1262065
masklinn
í dag viðrar vel til loftárása
Posté le 08-12-2005 à 19:55:02  profilanswer
 

L'idéal pour être sûr d'avoir toutes les solutions c'est de créer un arbre des parcours, mais ça prend pas mal de code, ça bouffe beaucoup de ressources (je l'ai implémenté en vitesse en python et le maze 2 fait un peu mal au cul [:pingouino]) et il faut faire un tri après la génération de l'arbre pour isoler le meilleur parcours :/


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1262079
0x90
Posté le 08-12-2005 à 20:12:27  profilanswer
 

en fait après re-réflexion, je sais pas trop pkoi je trouve pas la solution :/


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4

Aller à :
Ajouter une réponse
 

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