0 Members and 1 Guest are viewing this topic.
Mustard wrote:Le problème c'est que y aller très progressivement en plusieurs années c'est un peu trop long. je ne suis pas certain qu'Orbiter durent encore de longues années.J'avais une toute petite expérience en Pascal et en Vusal basique mais là je dois avouer que le C++ m'a refroidi.Vinka, pendant un temps tu m'avais parlé d'un nouveau module avec plus de fonction, l'as tu abandonné ?
tofitouf a écrit:C'est clair. Très bonne descruiptiond e ce qui est néccéssaire : patience et volonté. sinon coté méthode, je pense que si unprof regardais comment je m'y prends il serait effrayé par tant de chaos. Mais au final j'y arrive, alors tan pis pour laméthode. Quand je me relis j'ai des fois des surprises hallucinantes
if (gear_status >= AnimState::CLOSING) { double da = simdt * GEAR_OPERATING_SPEED; if (gear_status == AnimState::CLOSING) { // retract gear if (gear_proc > 0.0) gear_proc = max (0.0, gear_proc-da); else gear_status = AnimState::CLOSED; } else { // deploy gear if (gear_proc < 1.0) gear_proc = min (1.0, gear_proc+da); else gear_status = AnimState::OPEN; } SetAnimation (anim_gear, gear_proc); SetGearParameters (gear_proc); }
// animate landing gear if (Gear_status >= DOOR_CLOSING) { double da = dSimDT * 0.05; if (Gear_status == DOOR_CLOSING) { if (Gear_Proc > 0.0) { Gear_Proc = max (0.0, Gear_Proc-da); } else { Gear_status = DOOR_CLOSED; } } else { // door opening if (Gear_Proc < 1.0) { Gear_Proc = min (1.0, Gear_Proc+da); } else { Gear_status = DOOR_OPEN; } } SetAnimation (anim_Gear, 1-Gear_Proc); if(Gear_status==DOOR_OPEN) { SetGearParameters (1.0); strcpy(SendFocusScreenMessage(),"Gear down and locked"); } else if(Gear_status==DOOR_CLOSED) { SetGearParameters (0.0); strcpy(SendFocusScreenMessage(),"Gear are up and locked"); } }
if (Gear_Proc < 1.0) Gear_Proc = min (1.0, Gear_Proc+da); else Gear_status = DOOR_OPEN;
if (Gear_Proc < 1.0) { Gear_Proc = min (1.0, Gear_Proc+da); } else { Gear_status = DOOR_OPEN; }
// y a plus qu'a ce pendre si on veux relire ce genre de code:int EuhCestQuelTypeDeja;double JeSaisPlusAQuoiCaSert;void AuSecourQueFaitCetteFonction(void);bool Merde;int U;// la c'est clair: type fonctionint iCompteurNombreDeUMMUaBord;double dAltitudeMoinsHauteurLandingGear;void* ptrPointeurVoidSurStructUMmu;
tofitouf a écrit:Je n'ai jamais compris les "soit disant bon codeurs" qui produisent du code compact et illisible. Ils se font unefierté de faire sur une seul ligne des dizaines d'opérations.
ca dérive ce thread
(1-C'ÉTAIS PAR LÀ QUE J'AI DÉBUTÉ ET C'EST TRÈS BIEN )http://www.siteduzero.com/
Dansteph :Faut pas du tout apprendre le C++ mais juste comment marche le "gros batch" orbiter avec ces us et coutumes.Cerise sur le gâteaux: effectivement vous apprendrez de fait le C++.
DagoO a écrit:Quote(1-C'ÉTAIS PAR LÀ QUE J'AI DÉBUTÉ ET C'EST TRÈS BIEN )http://www.siteduzero.com/ QuoteDansteph :Faut pas du tout apprendre le C++ mais juste comment marche le "gros batch" orbiter avec ces us et coutumes.Cerise sur le gâteaux: effectivement vous apprendrez de fait le C++.Ah d'accord...
Pas d'accord dans mon contexte, car c'est pour mon travail... et je soupçonne que c'est le cas de Mustard.
DanSteph a écrit:Quotetofitouf a écrit:C'est clair. Très bonne descruiptiond e ce qui est néccéssaire : patience et volonté. sinon coté méthode, je pense que si unprof regardais comment je m'y prends il serait effrayé par tant de chaos. Mais au final j'y arrive, alors tan pis pour laméthode. Quand je me relis j'ai des fois des surprises hallucinantes Ah ouais, Le code du "vendredi" Tu devrais voir le code du Arrow, on dirais des fois que c'est jeté n'importe comment (la bourre) MAIS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (Cour gratos pour les débutants)1-J'utilise une notation très "enfantine" et basique pas de ça chez moi:Code: [Select] if (gear_status >= AnimState::CLOSING) { double da = simdt * GEAR_OPERATING_SPEED; if (gear_status == AnimState::CLOSING) { // retract gear if (gear_proc > 0.0) gear_proc = max (0.0, gear_proc-da); else gear_status = AnimState::CLOSED; } else { // deploy gear if (gear_proc < 1.0) gear_proc = min (1.0, gear_proc+da); else gear_status = AnimState::OPEN; } SetAnimation (anim_gear, gear_proc); SetGearParameters (gear_proc); }Si y a une couille c'est pas lisible du tout au premier abord Je prend beaucoup plus de place mais je garde la lisibilité:Code: [Select] // animate landing gear if (Gear_status >= DOOR_CLOSING) { double da = dSimDT * 0.05; if (Gear_status == DOOR_CLOSING) { if (Gear_Proc > 0.0) { Gear_Proc = max (0.0, Gear_Proc-da); } else { Gear_status = DOOR_CLOSED; } } else { // door opening if (Gear_Proc < 1.0) { Gear_Proc = min (1.0, Gear_Proc+da); } else { Gear_status = DOOR_OPEN; } } SetAnimation (anim_Gear, 1-Gear_Proc); if(Gear_status==DOOR_OPEN) { SetGearParameters (1.0); strcpy(SendFocusScreenMessage(),"Gear down and locked"); } else if(Gear_status==DOOR_CLOSED) { SetGearParameters (0.0); strcpy(SendFocusScreenMessage(),"Gear are up and locked"); } }Ensuite JAMAIS de truc dans ce genre:Code: [Select] if (Gear_Proc < 1.0) Gear_Proc = min (1.0, Gear_Proc+da); else Gear_status = DOOR_OPEN;Ça marche, c'est nickel, mais un jour on est fatigué on rajoute une ligne et on s'arrache les cheveux pourquoiça marche pas ou on release un truc buggé.Je fais ça, encore une notation de "débutant", mais c'est du "robuste" même si c'est vendredi.Code: [Select] if (Gear_Proc < 1.0) { Gear_Proc = min (1.0, Gear_Proc+da); } else { Gear_status = DOOR_OPEN; }Ensuite je suis absolument STRICT sur les noms de variables ou fonction.Code: [Select]// y a plus qu'a ce pendre si on veux relire ce genre de code:int EuhCestQuelTypeDeja;double JeSaisPlusAQuoiCaSert;void AuSecourQueFaitCetteFonction(void);bool Merde;int U;// la c'est clair: type fonctionint iCompteurNombreDeUMMUaBord;double dAltitudeMoinsHauteurLandingGear;void* ptrPointeurVoidSurStructUMmu;Enfin bref comme l'erreur est humaine je BLINDE au maximum mon code en gardant une LISIBILITEabsolue. RIEN ne justifie une notation confuse ou compact et surtout pas les performances, c'estcompilé pareil.Voila vous pouvez vous graver ça dans la tête au fer rouge: la lisibilité c'est la CLE !Le jour on je veux cleaner un peu mon code arrow je n'aurais aucune peine, c'est jeté un peu n'importe comment (surtout dansle header) mais les noms et le code étant hyper lisible ça ce bouge facilement.Dan
brainstorm a écrit:Certes le C reste plus puissant, mais le java est moins lourd d'utilisation.
Mustard a écrit:Merci pour ces encouragements mais j'ai fais une croix sur le C++. Il me faudrait il gros investissements temps que je n'ai pas. J'avais espéré que cette formation me ferait gagné un temps fou mais il n'en fut rien.