Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Concours]Le code le plus sale

Laissez sortir le programmeur sale qui est en vous

Staff 22 novembre 2010 à 19:15:13

Bonjour,

J'ouvre ce topic pour vous permettre de poster votre code le plus "sale". Pour limiter les polémiques sur le mot sale, on le définira comme étant le code qui enfreint les règles suivantes :

  • Indentation.
  • Pertinence des noms de variables.
  • Pertinence des commentaires.
  • Pertinence des noms de fonctions.
  • Ne pas mélanger les déclarations de variables avec le code.
  • Ne pas faire un usage abusif des variables globales.
  • Ne pas faire un usage abusif des macros.
  • Ne pas gaspiller la mémoire.


Tout est permis, cependant, le code doit satisfaire à un besoin, et doit être fonctionnel (donc non-bogué) bien sûr, et être sous forme d'un mini projet (pas la peine de mettre 10 fichiers sources, un petit programme de 100 lignes en console est largement suffisant)!

Petit changement :


Le concours est maintenant divisé en 3 catégories : Code "obfusqué", code sale et code illisible. Chaque candidat peut participer à une ou à toutes les catégories.

Nous voterons donc un gagnant par catégorie ;) .

(Concours inspiré de l'obfuscation)

Comment participer :


Il faudra poster les trois codes dans un seul post, en respectant la représentation suivante (il s'agit des balises titre1 et titre2) :

[Code candidat]



[Obfusc]


//code

[Code sale]


//code

[Code illisible]


//code


Date limite : 12 décembre 2010 à minuit.

Il est bien évidemment interdit d'éditer les posts de candidature à partir de cette date ;) .

à vous de jouer.
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 19:37:37

Zut, j'ai un segfault.
  • Partager sur Facebook
  • Partager sur Twitter
- Il y a un chemin vers chaque sommet, même le plus haut -
22 novembre 2010 à 19:39:57

Ah ah, ça a l'air marrant :D
Par contre, faudrait définir un programme commun a tout le monde a réaliser je trouve. Si c'est fait, je participe a coup sûr :p
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 19:44:27

Mouhahahahahhahahha ! Je participe !

Par contre faudrait mettre des limites : limite d'instructions, de caractères, de lignes, pour que ce soit plus difficile (sinon tu mets des boucles imbriquées partout, etc.. Pour rendre ton code illisible, ça n'a pas vraiment grand chose d'intéressant).
  • Partager sur Facebook
  • Partager sur Twitter
Je suis professeur de mathématiques sur LiveMentor, pour niveaux collège/lycée/prépa MPSI :)
22 novembre 2010 à 19:45:46

Sans oublier des goto ^^
+ 1 pour définir un programme à "salir"
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 19:47:57

Je participe sans hésiter :)
  • Partager sur Facebook
  • Partager sur Twitter
"If debbugging is the process of removing bugs, then programming must be the process of putting them in." (Edsger Dijkstra)
22 novembre 2010 à 19:48:37

Mouuais je pense qu'il faudrait restreindre à la console pour plus de simplicité.
  • Partager sur Facebook
  • Partager sur Twitter
Je suis professeur de mathématiques sur LiveMentor, pour niveaux collège/lycée/prépa MPSI :)
22 novembre 2010 à 19:54:20

Je m'y mets, rien que pour le fun ^^

Ca promet de bons moments de rire ^^
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 19:57:00

Ce qui serait sympa, c'est d'écrire un code qui automatise ce genre de chose (qui rend sale le code d'origine). Oui, cela existe déjà :-° ...
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
22 novembre 2010 à 19:59:34

Citation : yoch

Ce qui serait sympa, c'est d'écrire un code qui automatise ce genre de chose (qui rend sale le code d'origine). Oui, cela existe déjà :-° ...


Un Obfu.. obguscat... >_<
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 20:01:08

Sympa, peut être que je participerais si je trouve le temps ;) .
  • Partager sur Facebook
  • Partager sur Twitter
Staff 22 novembre 2010 à 20:13:30

Oui effectivement on pourrait limiter le sujet mais je ne pense pas que cela soit très intéressant, par contre oui on pourrait dire qu'il ne s'agit que d'un mini projet console de 100 à 200 lignes, c'est bien assez marrant comme ca :) .
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 20:18:20

:lol: Qu'est ce qu'on s'amuse bon j'ai une idée mais je la modifierai un peu plus tard :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define A(M_N, MAX) (rand() % (MAX - M_N + 1)) + M_N;
#define ____ 9
#define V int
#define I void
#define CLEAR '\n'
#define DEHORS(N1, N2, N3) N1<=N2 && N1>=3

V _, __, ___[____][____] = {
                            {1,2,3,4,5,6,7,8,9},
                            {7,8,9,1,2,3,4,5,6},
                            {4,5,6,7,8,9,1,2,3},
                            {9,1,2,3,4,5,6,7,8},
                            {6,7,8,9,1,2,3,4,5},
                            {3,4,5,6,7,8,9,1,2},
                            {8,9,1,2,3,4,5,6,7},
                            {5,6,7,8,9,1,2,3,4},
                            {2,3,4,5,6,7,8,9,1}}, _A_ = 0, _B_, _C_, _D_, _E_;

FILE *_________ = NULL;

I F1();

V main()
{
srand(time(NULL)),F1();
for (_ = 0; _ < ____ ; _++)
{
for (__ = 0; __ < ____ ; __++)printf("%d ", ___[_][__]);
printf("%c", CLEAR);
}
printf("%c", CLEAR);
F1();
for (_ = 0; _ < ____ ; _++)
{
for (__ = 0; __ < ____ ; __++)
printf("%d ", ___[_][__]);
printf("%c", CLEAR);
}
system("pause");
system("start http://www.siteduzero.com");
return 0;
}


I F1()
{
for (_A_ = 0; _A_ < 1000; _A_++)
{
_B_ = A(0, 1);
do
{
_D_ = A(0, ____-1);
if (DEHORS(_D_,0,2)){
_E_ = A(0, 2);}
else if (DEHORS(_D_,3,5)){
_E_ = A(3, 5);}
else if (DEHORS(_D_,6,8)){
_E_ = A(6, 8);}
}
while(_D_ == _E_);

switch (_B_)
{
case 0:
for (_ = 0; _ < ____ ; _++)
{
_C_ = ___[_][_D_];
___[_][_D_] = ___[_][_E_];
___[_][_E_] = _C_;
}
break;
case 1:
for (_ = 0; _ < ____ ; _++)
{
_C_ = ___[_D_][_];
___[_D_][_] = ___[_E_][_];
___[_E_][_] = _C_;
}
break;
}
}
}
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 20:29:41

Je suis pour le programme console !
Histoire de lancer le concours, je propose le programme suivant : le jeu "Nombre mystère", tout simplement. C'est simple, et on peut bien salir :p

Si quelqu'un d'autre a une idée plus originale, qu'il la soumette !
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 20:32:28

Citation : Smil

Si quelqu'un d'autre a une idée plus originale, qu'il la soumette !

Le plus ou moins de m@teo21 :-°
  • Partager sur Facebook
  • Partager sur Twitter
"If debbugging is the process of removing bugs, then programming must be the process of putting them in." (Edsger Dijkstra)
22 novembre 2010 à 20:33:43

Citation : schadocalex

Citation : Smil

Si quelqu'un d'autre a une idée plus originale, qu'il la soumette !

Le plus ou moins de m@teo21 :-°


La calculette? :lol:
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 20:35:13

Citation : lepetitzero

Citation : schadocalex

Citation : Smil

Si quelqu'un d'autre a une idée plus originale, qu'il la soumette !

Le plus ou moins de m@teo21 :-°


La calculette? :lol:


ou ? un programme por calculer l'IMC pour vous empêcher d'aller au Macdo

EDIT un programme qui génere des grille de Sudoku ?
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 20:57:42

Hop hop hop!


[Code candidat]



[Obfusc]


#include <stdio.h>
#define o_O(o) putchar (o)

int main(int O_o,char**o_o_O){int _O;char *O_;
   goto O_O_O;O_O_O:O_=o_o_O[0x25&0x41];if(!O_)
   goto O_O;o_:if(*(O_+1)==0)
   goto o_o;O_++;
   goto o_;o_o:_O=1;O_o=0;o_o_O:if(O_<o_o_O[' '>>5])
   goto O_o_O;O_o+=(*O_-(0x18<<1))*_O;_O*=10;O_--;
   goto o_o_O;O_o_O:o_o_O[0x10>>4]=0;O_O:if(O_o<=0)
   goto O_O_o;_O=0;O_O_:if(_O>=O_o)
   goto o_o_o;o_O(0x22|0xa);o_O(0x21&0x24);_O++;
   goto O_O_;o_o_o:o_O(0x14>>1);O_o=O_o-(0x19&0x23);main(O_o,o_o_O);O_O_o:
   return 0;}

[Code sale]


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(int OO,char **oo)
{
   int *oO=malloc(0x64);char *Oo=oo[1];if(!Oo||!*Oo)goto OoO;
   oOo:(isdigit(*Oo))?*(++oO)=*Oo-0x30:(*Oo==0x2B)?*(oO-1)=*oO+*(oO-1):
   (*Oo==0x2D)?*(oO-1)=*oO-*(oO-1):(*Oo==0X2F)?*(oO-1)=*oO/ *(oO-1):
   (*Oo==0X2A)?*(oO-1)=*oO**(oO-1):0x1337;
   (*Oo==0x2B||*Oo==0x2D||*Oo==0x2F||*Oo==0x2A)?oO--:0;
   if(*(++Oo))goto oOo;printf("%d\n",*oO);OoO:return 0;
}

[Code illisible]


#include <stdio.h>

#define P putchar(_);


int main(){char _;_^=_;_=1<<('0'>>3);_|=1<<3;P _<<=2;_|=1<<((' '|16)>>3);
_|=1<<2;_|=1;P _>>=3;_|=1<<6;_|=1<<5;P _^=0;_>>=1;_<<=1;P _=(_^0)|3;
P _=_%2;_<<= 5;P _|=7;_|=7<<4;P _>>=4;_|=3<<5; _|=1<<3;P _>>=1;_<<=4;
_|=2;P _&=~_;_^=3;_<<= 5;_|=3<<2;P _&=~(1<<3);P _>>=1;_^='2';_|=1<<5;_|=1;
P _>>=4;_|=1<<3;P return 0;}

  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 21:05:37

Boh, j'éditerais alors, je pense pouvoir faire mieux niveau offuscation ;) .
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 21:13:58

Juste une chose : on ne devrait pas autoriser les define, ça devient vraiment n'importe quoi rapidement, sans faire d'effort particulier :p
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 21:16:12

C'est Pouet Forever qui va gagner a ça, quand il se fout des gens, il est vraiment très fort a ça ;-)

Petit exemple made Pouet ;-) (ne t'inquiète je me fou pas de toi, je dis juste que pour coder un truc comme ça qui marche en plus, je dis chapeau, respect)
#include <stdio.h>

int main(){unsigned _=0xFF000000;while(~0){int __;goto _l;_I:printf("Le max = %d, le min = %d\n",(_>>(1<<4))&((1<<(1<<3))-1),(_>>(3<<3))&((1<<(1<<3))-1));
printf("Frequence max : %d, frequence min : %d\n",(_>>0)&((1<<(1<<3))-1),(_>>(1<<3))&((1<<(1<<3))-1));
goto _i;_l:printf("Entrer un nombre a: ? (0 a 20, negatif pour sortir de la boucle) ");scanf("%d",&__);
if (__<1>>1)goto _I;else if(__>((1<<4)|(1<<2)))printf("Ce nombre ne sera pas pris en compte\n");
else{if(__<(_>>(3<<3))){_=((_&(~0U>>(1<<3)))|(unsigned)__<<(3<<3));_=(_^((_>>(1<<3))&((1<<(1<<3))-1))<<(1<<3))|1<<(1<<3);}
else if(__==(_>>(3<<3))){_+=(1<<(1<<3));}if(__>((_>>(1<<(1<<2)))&((1<<(1<<3))-1))){_=(_^(((_>>(1<<(1<<2)))&((1<<(1<<3))-1))<<(1<<4)))|
(unsigned)__<<(1<<(1<<2));_=(_^(_&((1<<(1<<3))-1)))|1;}else if(__==((_>>(1<<(1<<2)))&((1<<(1<<3))-1))){_+=1;}}}_i:return 0;}


Je précise le code n'est pas du tout de moi, ne m'inscris pas encore '-'
  • Partager sur Facebook
  • Partager sur Twitter
http://cpp-rendering.io : Vous trouverez tout ce dont vous avez besoin sur Vulkan / OpenGL et le rendu 3D !
22 novembre 2010 à 21:26:21

OMG C'est quoi ça ????

Sinon, jeu nombre mystère en version ultra-compact rien que pour vous (pas utilisé de goto finalement :p ) :

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

int main(){ // La je définis des variables
int je, code, mal=1;
je=rand(); printf("Le nombre mystere est généré\n"); // Comme ça l'utilisatur sait qu'il peut commencer a jouer
while(mal){ // La boucle principale du programme
printf("Entrer un nombre : ");
scanf("%d",&code);
if(code>je) printf("C'est moins\n");
else if(code<je) printf("C'est plus\n");
else {printf("Bravo vous avez gagné");mal=0;}}}
// Finit !
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 21:28:28

Bon j'ai édité pour que vous puissiez compilez(oui une fonction fopen sans que je vous donne le fichier :lol:
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 21:30:31

Bon ok, c'est parti pour un truc avec des defines.
  • Partager sur Facebook
  • Partager sur Twitter
Staff 22 novembre 2010 à 21:39:26

Vous pouvez bien évidemment éditer à tout moment jusqu'à ce que le concours soit déclaré clos.
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 21:40:46

tien il faudra que je fasse le TP du + ou du - avec un appel à main au lieu d'une boucle :euh: ça fait comment ? gros con ? :euh:

Citation : qnope

Je précise le code n'est pas du tout de moi, ne m'inscris pas encore '-'

don il ne fais pas partie du concour il fallait lire avant de le mettre inscrit
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2010 à 21:45:33

Un plus ou moins, qui utilise qu'une variable!

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define R srand(time(NULL));_=rand() % 10; _ <<= 16;
#define A _ >> 16

int main(void)
{
   int _;
   R
   J:putchar('>');scanf("%hd",(short*)&_);if((short)_ < A) puts("PLUS!");
   if((short)_ > A) puts("MOINS!");if((short)_ != A) goto J;puts("BRAVO!");
   return 0;
}


@Uknow : met pas ce post en vert ;) .
  • Partager sur Facebook
  • Partager sur Twitter

[Concours]Le code le plus sale

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
  • Editeur
  • Markdown