Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1251 Le 16/01/2011, à 23:41

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Hey Grim, j'ai percuté que les initiales de ma bibliothèque que j'envisageais d'utiliser pour mes préfixes sont aussi les tiennes… ><' (et aussi celles de ma fac \o/)
Bon, ça va apporter un peu de confusion dans les fichiers de test, mais pas grave… tongue


Sauf si je décide de lancer un concours pour le nom de ma bibliothèque. Il serait temps…


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1252 Le 17/01/2011, à 00:03

gnuuat

Re : /* Topic des codeurs couche-tard [3] */

getopt, c'est pas mal comme nom tongue .


Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !

Hors ligne

#1253 Le 17/01/2011, à 00:05

Sir Na Kraïou

Re : /* Topic des codeurs couche-tard [3] */

mad


Descendant de Charlemagne et de LUCA.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

Hors ligne

#1254 Le 17/01/2011, à 00:08

kamui57

Re : /* Topic des codeurs couche-tard [3] */

neutral


Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas (proverbe indien)
Toshiba Satellite L655 4 Go RAM, Archlinux Gnome-shell,LXDE / W7
Toshiba Satellite M30 512 Mo RAM, Archlinux Gnome 3 restreint / Crunchbang LXDE
https://help.ubuntu.com/community/Pastebinit pour poster du texte sur internet en console

Hors ligne

#1255 Le 17/01/2011, à 00:11

Pylades

Re : /* Topic des codeurs couche-tard [3] */

gnuuat a écrit :

getopt, c'est pas mal comme nom tongue .

Tu sais que je sais que tu sais que c'est déjà pris. tongue


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1256 Le 17/01/2011, à 00:21

kamui57

Re : /* Topic des codeurs couche-tard [3] */

http://www.linux-kheops.com/doc/man/man … opt.3.html

man getopt a écrit :

getopt - Analyser les options en ligne de commande.

Bon à savoir tongue

Sur ce, bonne nuit !


Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas (proverbe indien)
Toshiba Satellite L655 4 Go RAM, Archlinux Gnome-shell,LXDE / W7
Toshiba Satellite M30 512 Mo RAM, Archlinux Gnome 3 restreint / Crunchbang LXDE
https://help.ubuntu.com/community/Pastebinit pour poster du texte sur internet en console

Hors ligne

#1257 Le 17/01/2011, à 00:32

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Кຼزດ a écrit :

Bon, j'ai enfin décidé de passer un énorme if/elseif/else en dict + methodes, et ya pas à dire, lambda c'est pratique…

C'est plus élégant, mais en c'est aussi plus performant smile



Pylade a écrit :

Hey Grim, j'ai percuté que les initiales de ma bibliothèque que j'envisageais d'utiliser pour mes préfixes sont aussi les tiennes… ><' (et aussi celles de ma fac \o/)

Ha ouais, maintenant que tu le dis je m'en rends compte.
J'avais jamais fait gaffe à ça ^^"
Ça correspond aussi à une commande très utilisée.



@kamui57 : tiens ça fait longtemps qu'on t'avais pas vu passer ici.

Hors ligne

#1258 Le 17/01/2011, à 00:54

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

kamui57 a écrit :

http://www.linux-kheops.com/doc/man/man … opt.3.html

man getopt a écrit :

getopt - Analyser les options en ligne de commande.

Bon à savoir tongue

Sur ce, bonne nuit !

C'est pourtant super connu et utilisé. Il y a aussi getopt_long qui est très utilisé, notamment dans les fonctions du coreutils.
Je l'avais utilisé une fois pour un TP et un ami m'a dit que c'était pas une bonne fonction (je pense qu'il regardais le côté performance) et d'ailleurs, je crois bien qu'elle n'est jamais utilisée dans le code des *BSD (qui est pour moi le plus beau C que l'on puisse trouver).

Hors ligne

#1259 Le 17/01/2011, à 00:59

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Rolinh a écrit :

C'est pourtant super connu et utilisé. Il y a aussi getopt_long qui est très utilisé, notamment dans les fonctions du coreutils.
Je l'avais utilisé une fois pour un TP et un ami m'a dit que c'était pas une bonne fonction (je pense qu'il regardais le côté performance) et d'ailleurs, je crois bien qu'elle n'est jamais utilisée dans le code des *BSD (qui est pour moi le plus beau C que l'on puisse trouver).

C'est surtout que getopt_long c'est pas du C standard, mais du GNU C.

Hors ligne

#1260 Le 17/01/2011, à 01:04

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

Ah ouais, je n'avais pas pensé à ça.

En parlant de GNU C, vous aussi vous trouvez le code GNU incompréhensible?
Pour mon gestionnaire de copie, j'avais été jeté un oeil sur les sources de cp du coreutils et j'ai juste trouvé incompréhensible (sans compter le nombre de FIXME, ce qui m'a beaucoup effrayé dans une fonction de copie largement utilisée). Ensuite, j'ai été regarder les sources de la fonction de copie de NetBSD: j'avais l'impression d'être devant un livre! (bon, il y a aussi le GNU style coding qui me repousse d'entrée tongue)

PS: non, ce n'est pas du troll

Hors ligne

#1261 Le 17/01/2011, à 01:09

The Uploader

Re : /* Topic des codeurs couche-tard [3] */

#include <SDL/SDL.h>
#include <SDL/SDL_framerate.h>
#include "player.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <stdint.h>

/*pour les collisions*/
typedef struct Cercle{
    int x, y;
    int rayon;
} circle;

int collision(circle pCercle, circle pCercle2){
    int distance = (pCercle.x - pCercle2.x)*(pCercle.x - pCercle2.x) + (pCercle.y - pCercle2.y)*(pCercle.y - pCercle2.y);
    if(distance > (pCercle.rayon + pCercle2.rayon)*(pCercle.rayon + pCercle2.rayon)){
        return 0;
    }else{
        return 1;
    }
}
/*fin*/

int main(int argc, char *argv[]) //arguments : pseudo du joueur[1], ip serveur[2]
{
    struct Player player;
    Sint16 status = -1;
    if(argv[1]!=NULL){strcpy(argv[1],player.pseudo);}
    player.position.x = 103;
    player.position.y = 320;
    /* INIT SDL*/
    SDL_Surface*  ecran;
    SDL_Surface* sprites;
    SDL_Surface* decor;
    SDL_Event event;
    Uint8 *touches;
    Sint16 faster;
    double vit=1.0;
    if(SDL_Init(SDL_INIT_VIDEO) == -1){
        printf("Unable to init SDL: %s", SDL_GetError());
    }
    /* FIN INIT SDL */
    else{
        FPSmanager FPSmanager;
        SDL_initFramerate(&FPSmanager);
        SDL_setFramerate(&FPSmanager,15);

        ecran = SDL_SetVideoMode(800, 600, 24, SDL_HWSURFACE|SDL_DOUBLEBUF); /* INIT FENETRE SDL */

        /* INIT SPRITES */
        if((sprites = SDL_LoadBMP("generalsprites.bmp"))!=NULL)
            SDL_SetColorKey(sprites, SDL_SRCCOLORKEY,sprites->format->Bmask|sprites->format->Rmask);
        else
            return -1;
        SDL_MapRGB(sprites->format, 186, 254, 202);
        // L'arrière-plan (vue de dessus).
        if((decor = SDL_LoadBMP("Race01.bmp"))==NULL)
            return -1;
        /* FIN INIT SPRITES */

        touches = SDL_GetKeyState(NULL); /* INIT CLAVIER */

        SDL_Rect rcDeco; /*BOUT DU TERRAIN SOUS LA VOITURE*/

        SDL_Rect rcVoiture={12, 176, 25, 25}; /*SPRITE DE LA VOITURE*/

        //Boucle de jeu
        Sint16 quit = 0;
        while(!quit){
            //Sous-boucle pour savoir si on quitte ou pas
            while(SDL_PollEvent(&event)){
                quit = (event.type == SDL_QUIT);
            }

            //on joue!
            if(!quit){
                

                faster=0; //Si haut ou bas ou gauche ou droite a été enfoncé, faster vaudra 1.

                /*Sauvegarde de la position actuelle*/
                Sint16 savex=player.position.x;Sint16 savey=player.position.y;

                //vit : vitesse. Espace : touche de freinage.
                vit=(touches[SDLK_SPACE]) ? vit - (vit*0.4) : vit;
                if(vit<1){ //vitesse <1 = bugs
                        vit=1.0;
                }
                    touches = SDL_GetKeyState(NULL); /* INIT CLAVIER */

                    SDL_Rect rcDeco; /*BOUT DU TERRAIN SOUS LA VOITURE*/
                        player.position.x = (touches[SDLK_RIGHT]) ? player.position.x + (Sint16)vit : player.position.x;
                        player.position.x = (touches[SDLK_LEFT]) ? player.position.x - (Sint16)vit : player.position.x;
                        /*NE PAS DEPASSER LES LIMITES DE LA CARTE*/
                        if(player.position.x<0 || player.position.x>decor->w/2)
                            player.position.x=savex;

                        player.position.y = (touches[SDLK_DOWN]) ? player.position.y + (Sint16)vit : player.position.y;
                        player.position.y = (touches[SDLK_UP]) ? player.position.y - (Sint16)vit : player.position.y;
                        /*NE PAS DEPASSER LES LIMITES DE LA CARTE*/
                        if(player.position.y<0 || player.position.y>decor->h/2)
                            player.position.y=savey;

                        /*CHANGEMENT IMAGE DE LA VOITURE SELON L'ORIENTATION*/
                        if(player.position.x<savex&&savey==player.position.y){ //left
                            rcVoiture=(SDL_Rect){501,180,25,25};
                        }
                        else if(player.position.x>savex&&savey==player.position.y){ //right
                            rcVoiture=(SDL_Rect){137,180, 25, 25};
                        }
                        else if(player.position.y<savey&&savex==player.position.x){ //up
                            rcVoiture=(SDL_Rect){12,176,25,25};
                        }
                        else if(player.position.y>savey&&savex==player.position.x){ //down
                            rcVoiture=(SDL_Rect){268,177,25,25};
                        }
                        else if(player.position.y<savey&&player.position.x<savex){ //upleft
                            rcVoiture=(SDL_Rect){202,120,25,25};
                        }
                        else if(player.position.y<savey&&player.position.x>savex){ //upright
                            rcVoiture=(SDL_Rect){73,177,25,25};
                        }
                        else if(player.position.y>savey&&player.position.x<savex){ //downleft
                            rcVoiture=(SDL_Rect){203,150,25,25};
                        }
                        else if(player.position.y>savey&&player.position.x>savex){ //downright
                            rcVoiture=(SDL_Rect){201,176,25,25};
                        }

                        /*SI LA VOITURE A BOUGE, ELLE PEUT DONC ACCELERER*/
                        if(player.position.x!=savex||player.position.y!=savey){
                            faster=1;
                        }
                        /*10 : VITESSE LIMITE*/
                        if(faster&&vit<10.0){
                            vit=vit+0.2;
                        }
                        /* DECELERATION */
                        if(!faster&&vit>1.0){
                            vit=1.0;
                        }
                        rcDeco.w = decor->w; /*NE PAS METTRE AILLEURS*/
                        rcDeco.h = decor->h; /*SINON, PLUS DE "CAMERA"*/
                        rcDeco.x = player.position.x;
                        rcDeco.y = player.position.y;

                        SDL_BlitSurface(decor, &rcDeco, ecran, NULL); /*BLIT DE LA SURFACE SOUS LA VOITURE (rEcTANGLE Deco)*/
                        SDL_BlitSurface(sprites, &rcVoiture, ecran, &rcDeco); /*BLIT DE LA VOITURE PAR DESSUS*/
                        SDL_Flip(ecran); /*MIS A JOUR AFFICHAGE*/
                }
                SDL_framerateDelay(&FPSmanager); /*ATTENTE DU FPS*/
            }
            status = 0;
            SDL_Quit();
        }
    return status;
    }
    

(oui il y a beaucoup d'includes inutiles car ils sont là pour de futurs ajouts au code, des ajouts imminents...)

BN; smile


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1262 Le 17/01/2011, à 01:09

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Rolinh a écrit :

[…]
En parlant de GNU C, vous aussi vous trouvez le code GNU incompréhensible?
[…]

Oui.
(Mais les attributs GCC ont l'air bien pratiques.)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1263 Le 17/01/2011, à 01:18

Кຼزດ

Re : /* Topic des codeurs couche-tard [3] */

Commit du soir, bonsoir…
Allez, bonne nuit smile


dou

Hors ligne

#1264 Le 17/01/2011, à 01:19

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Rolinh a écrit :

En parlant de GNU C, vous aussi vous trouvez le code GNU incompréhensible?

Oui, leur guide de style est horrible et leur code est généralement capillotracté (suffit de comparer le strlen de BSD et celui de GNU ^^), c'est sûr qu'a côté le code de BSD se lit comme un livre.

Après, je n'ai pas d'avis sur lequel est meilleur que l'autre…

Dernière modification par grim7reaper (Le 17/01/2011, à 01:28)

Hors ligne

#1265 Le 17/01/2011, à 01:34

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Rolinh a écrit :

[…] (sans compter le nombre de FIXME, ce qui m'a beaucoup effrayé dans une fonction de copie largement utilisée) […]

En 2009 il n'en restait plus que deux.

Mais il y a plein de trucs un peu crades.
Des joyeux mélanges d'espaces et de tabulations pour l'indentation. Des chaînes littérales multilignes de la forme

if (plop)
    a = "Ceci est une chaîne longue, \
très longue…"

même s'il traîne aussi quelques

if (plop)
    a = "Ceci est une chaîne longue, "
        "très longue…"

smile
En parlant de longues chaînes multilignes, il y a des cas où ça ne les dérange pas d'en des bouts de 82 caractères sur la même ligne de code…

Bref, le code Gnu n'est pas le plus agréable à lire, je crois que nous somme unanimes.


grim7reaper a écrit :

[…]
Ça correspond aussi à une commande très utilisée.
[…]

Ouais, en permanence dans mon top 5, d'ailleurs…


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1266 Le 17/01/2011, à 01:35

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

lol Je ne connaissais pas celui-là! Mais effectivement... ça se passe de commentaire!

C'est comme pour GTK+: j'ai énormément de peine avec mais j'ai été rassuré de lire l'autre jour sur un topic que peu de monde était intéressé à bosser sur Gimp car, en plus de la quasi-absence de documentation, le fait de bosser avec les Gobjets était passablement difficile (on finit par essayer par tâtonnement). Et j'ai beau m'aider de devhelp et regarder des exemples, l'apprentissage se fait très lentement.

EDIT:
@Pylade: je confirme, il n'en reste que deux. Reste que, comme tu le dis bien, le code est dégueulasse mais aussi la façon de raisonner est vraiment... tordue.

Dernière modification par Rolinh (Le 17/01/2011, à 01:38)

Hors ligne

#1267 Le 17/01/2011, à 01:41

Elzen

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

(suffit de comparer le strlen de BSD et celui de GNU ^^)

P't'être, mais niveau CSS, il y a une page qui poutre littéralement l'autre big_smile

(Il faudrait juste que le compteur de lignes soit généré directement par la CSS pour éviter d'être sélectionné)

Dernière modification par ArkSeth (Le 17/01/2011, à 01:42)

Hors ligne

#1268 Le 17/01/2011, à 01:46

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

Mais... pourquoi parles-tu du css?

Hors ligne

#1269 Le 17/01/2011, à 01:52

Кຼزດ

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :
grim7reaper a écrit :

(suffit de comparer le strlen de BSD et celui de GNU ^^)

P't'être, mais niveau CSS, il y a une page qui poutre littéralement l'autre big_smile

(Il faudrait juste que le compteur de lignes soit généré directement par la CSS pour éviter d'être sélectionné)

:TOhtml
tongue


dou

Hors ligne

#1270 Le 17/01/2011, à 01:57

Pylades

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :
grim7reaper a écrit :

(suffit de comparer le strlen de BSD et celui de GNU ^^)

P't'être, mais niveau CSS, il y a une page qui poutre littéralement l'autre big_smile

(Il faudrait juste que le compteur de lignes soit généré directement par la CSS pour éviter d'être sélectionné)

Ouais, ça fait bizarre de voir un mec qui exporte du code Gnu en HTML avec Vim. ^^


Sinon, je trouve ça proprement scandaleux de voir abort(); dans strlen ! mad
Ça m'attriste beaucoup, vraiment…


Enfin, la version Gnu doit être plus rapide pour les très longues chaînes ; mais c'est absolument illisible. Faut savoir ce qu'on veut (et ce n'est pas pour rien que la glibc fut forkée car trop lourde…). ^^'


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1271 Le 17/01/2011, à 02:02

Pylades

Re : /* Topic des codeurs couche-tard [3] */

/me devra se rappeler demain de se poser une question à propos des tableaux globaux en C.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1272 Le 17/01/2011, à 02:07

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

Tiens, puisqu'on est sur TOhtml, l'un de vous à une idée s'il y a moyen qu'il génère un tableau pour la numérotation des lignes?
Parce que le problème, c'est que si un veut faire un copy-paste, il y a le numéro des lignes qui vient avec...

Hors ligne

#1273 Le 17/01/2011, à 02:13

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Pylade a écrit :

Ouais, ça fait bizarre de voir un mec qui exporte du code Gnu en HTML avec Vim. ^^

En même temps, le site n'est pas affilié à GNU et n'est pas maintenu par un dev' du projet GNU (du moins pour ce que j'en ai vu)…

Pylade a écrit :

Enfin, la version Gnu doit être plus rapide pour les très longues chaînes ; mais c'est absolument illisible.

C'est ce que je me dis aussi, sinon pourquoi faire ça !?

Pylade a écrit :

Faut savoir ce qu'on veut (et ce n'est pas pour rien que la glibc fut forkée car trop lourde…). ^^'

Ouais enfin si tu veux un truc léger tu te tournes vers uClibc de toute façon.

Dernière modification par grim7reaper (Le 17/01/2011, à 02:14)

Hors ligne

#1274 Le 17/01/2011, à 03:01

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

Bon, un p'tit plop Bn (si jamais y en a un qui a une idée pour ma  question d'avant...)

Hors ligne

#1275 Le 17/01/2011, à 03:06

nesthib

Re : /* Topic des codeurs couche-tard [3] */

plop


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne