Auteur Sujet: Debuter la programmation en C  (Lu 11850 fois)

Hors ligne KodeIn

  • Grand Pilier
  • *
  • Messages: 929
  • Localisation: Reims
  • Adepte du Level 1… quand il passe le level tuto…
    • Voir le profil
Debuter la programmation en C
« Réponse #32 le: Mardi 30 Novembre 2010, 19:44:02 pm »
  • […]
    Et après j'ai commencé à bosser. Dans quoi ? Le développement de jeux video  :D (ça tombe bien non ?). C'était chez Delphine Software : Flashback, Shaq Fu, Fade to Black, Moto Racer, pour ceux qui connaîtraient... Et pour tout ces jeux, on a bossé soit en assembleur, soit en C et C++. Ton choix du langage C est donc très sensé.
    […]
    :-X Crénom, mais c'est qu'il y a des pointures sur ce forum!
    Merci pour les longues heures de jeux que ton travail m'a procuré et me procure encore, principalement Moto Racer et Flashback  :-*

    Sinon, j'aurais tendance à être d'accord avec Little_Rabbit.
    Avant que "bébé" ne fasse un pas, il faut qu'il apprenne à se mettre assis, puis à se déplacer à 4 pattes, à se lever et c'est seulement là qu'il va faire ses premiers pas  ;)
    Parce que c'est clair qu'avec SDL ou XNA, afficher une image à l'écran et la faire pivoter dans tous les sens, ça va TRES vite (y a même un tas de tuto pour faire ce genre de choses).
    Mais ça ne t'aidera pas à comprendre comment ces deux librairies se débrouillent pour le faire.
    Atari 2600 | Spectravideo SV-328 :'( | Amiga 500 | NES - SNES - N64 - NGC - Wii - GBA - GBAsp - DSi | PS1 - PS2 - PS3 - PSP 2000 | MD - DC | XBox - 360 | MacBook | OpenPandora GHZ edition \o/
    WIP [pause] : Borne Euro générique de chez Jeux COURTET
    Tutos LaunchPad MSP430 001 - 002 - 003 - 004 en attente

    Hors ligne keube

    • Passionné
    • *
    • Messages: 160
    • Localisation: Asnières sur Seine / Metz
      • Voir le profil
    Debuter la programmation en C
    « Réponse #33 le: Mardi 30 Novembre 2010, 20:31:15 pm »
  • C'est bien pour ça qu'avec la GBA c'est assez facile en apprenant le C (je lâche pas l'affaire >:D): tu initialises 2/3 registres, une copie du bitmap en mémoire et roule ma poule. En prime tu vois comment est géré le hard sans passer par des bibliothèques.  ^-

    Hors ligne pitufo

    • Toufaises !
    • Game Cheater
    • *
    • Messages: 2413
    • Localisation: neuf cinq en force
    • ...
      • Voir le profil
    Debuter la programmation en C
    « Réponse #34 le: Mardi 30 Novembre 2010, 21:47:19 pm »
  • C'est bien pour ça qu'avec la GBA c'est assez facile en apprenant le C (je lâche pas l'affaire >:D): tu initialises 2/3 registres, une copie du bitmap en mémoire et roule ma poule. En prime tu vois comment est géré le hard sans passer par des bibliothèques.  ^-

    Le dev gba ou nds c'est sympa seulement quand on a un linker je trouve,
    la c'est assez jouissif de voire tourner ses bouses perso sur le vrai
    matos et pas l'émulateur.

    Ce qui est formateur aussi c'est de réussir à faire quelque chose avec
    les possibilités limitées (par rapport à un ordi) de la console.

    Mais à mon avis pour apprendre le C tu devrais commencer par faire
    ce genre d'exo : http://membres.multimania.fr/epitechbert/Cours/jour03.html (jour04,05,etc...)

    Hors ligne 9uile

    • Scotché
    • *
    • Messages: 460
      • Voir le profil
    Debuter la programmation en C
    « Réponse #35 le: Mardi 30 Novembre 2010, 21:55:16 pm »
  • J'ai fini mon premier programme !!
    Avec l'aide du site du zero mais sans tricher...



    enseignements :

    1. declarations de variables (const int, int)
    2. Condition if, else if, else
    3. Utilisation de while (tant que)
    4. Affichage de texte et variable a l'ecran : printf
    5. Demande a l'utilisateur de saisir une valeur : scanf
    6. Utilisation de la fonction srand (generation d'un chiffre aléatoire)
    7. Incrementation d'une variable (tentatives)

     ^-^

    le code :

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




    int main()
    {
        const int MAX = 100, MIN = 1;
        int nombreMystere = 0, nombreEntre = 0, tentatives = 0;

        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
        //printf("%d", nombreMystere);
        printf("Devinez le chiffre secret ! (entre 1 et 100)\n");

       do
    {
        printf("Tapez un chiffre\n");
        scanf("%d", &nombreEntre);
        tentatives++;
            if (nombreEntre < nombreMystere)
                {
                    printf("C'est plus !\n");
                }
            else if (nombreEntre == nombreMystere)
                {
                    printf("BRAVO ! Vous avez trouve en %d tentatives\n",tentatives);
                }
            else
                {
                    printf("C'est moins !\n");
                }

    } while (nombreEntre != nombreMystere);
    printf("Le chiffre mystere etait %d", nombreMystere);


        return 0;
    }

    Hors ligne Little_Rabbit

    • ✌(◕‿◕)✌ Donateur 2019
    • Dieu de l' Arcade
    • *
    • Messages: 5356
    • Localisation: Nantes
    • The early 80's : the arcade golden age !!
      • Voir le profil
    Debuter la programmation en C
    « Réponse #36 le: Mercredi 01 Décembre 2010, 09:45:22 am »
  • Salut 9uile,

    Bravo ! C'est exactement ce genre de pratique que je te recommandais :) ! Faire des petits exercices progressifs pour se familiariser pas à pas avec tous les types de données et la syntaxe du C.

    Continue comme ça.

    Je ne l'ai pas dit plus haut mais quand je terminais mes études, j'ai aussi durant une année scolaire été prof d'informatique dans un Greta, pour des BTS en Informatique Industrielle. Je donnais donc des cours de C ;).

    Si tu le veux, je peux te proposer pas à pas de nouveaux exercices.

    Par exemple, pour poursuivre celui que tu as fait, nous pouvons introduire 2 notions supplémentaires : les tableaux, et les fonctions. Transforme alors ton programme pour y rajouter deux choses :
    1) un menu qui te demandera à quoi tu veux joueur( 1-LE NOMBRE MYSTÈRE 2-LE JEUX DE LA VIE 3-etc; et 0-Quitter). Ta fonction main() devient le menu et tu déportes le nombre mystère dans une fonction

    2) Ton jeu mystère va à présent mémoriser toutes les propositions que tu lui aura faites durant une partie. A la fin, tu réaffiches toutes ces propositions dans l'ordre ou elles ont été faites, puis triée de la plus petite à la plus grande

    Le 1) t'initiera aux fonctions et le 2) aux tableaux et à des tris rudimentaires.

    Tout ça va te paraître très simple. Normal, ça l'est :). Souvent les gens décrochent quand on commence à aborder les tableaux de pointeurs ou les listes chaînées... C'est pour ça qu'il est important d'y aller progressivement et ne louper aucune étapes. Les pointeurs, les allocation mémoires dynamiques sont essentiels à une bonne programmation en C.

    Bonne continuation!

    A+  Thierry

    PS: un grand merci à ceux qui ont eu un petit mot sympa pour les jeux Delphine !  <:)
    « Modifié: Mercredi 01 Décembre 2010, 09:47:11 am par Little_Rabbit »
    Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer
    Trois fois rien quoi ! :D

    Hors ligne BadGuigui

    • Accro
    • *
    • Messages: 247
    • Localisation: Rennes
      • Voir le profil
    Debuter la programmation en C
    « Réponse #37 le: Mercredi 01 Décembre 2010, 09:49:03 am »
  • Oui c'est un bon début, mais les bases sont importantes mais le plus compliqué c'est quand tu vas intégrer les pointeurs dans tes programmes, attention aux fuites mémoires!!!

    Sinon deux petits conseils pour la suite :
    - Lorsque tu fais du conditionnel (if) il est judicieux de différencier ta condition de succès à celle d'échec et de la mettre en première position dans ton code, tu verras tu liras plus facilement ton code plus tard.

    Par exemple :

    if (a==b){ //SUCCÈS
        //Code succès
    }
    else if (a<b){  //ÉCHEC
        //Code erreur 1
    }
    else{ //ÉCHEC
        //Code erreur 2
    }

    Je dis cela car il est logique de mettre en premier ce que le programme doit faire dans le meilleur des cas, et ensuite de gérer les erreurs.

    -Le deuxième conseil est de mettre des commentaires dans ton code, cela peut paraître ennuyeux et inutile, surtout dans le cas d'un petit programme comme celui-là, mais lorsque le programme devient plus important, et que par exemple tu reviens dans ton code après plusieurs semaines ou mois pour corriger un bug, ou que quelqu'un reprend ton travail, les commentaires vont t'aider à comprendre rapidement ce que fait ta fonction en deux secondes au lieu de décortiquer ton code ligne par ligne.

    En tout cas bonne continuation dans ton apprentissage!



    « Modifié: Mercredi 01 Décembre 2010, 09:50:43 am par BadGuigui »
    Promis je me présente bientôt ;)
    [WIP] Cocktail mamecab Ubuntu

    Hors ligne 9uile

    • Scotché
    • *
    • Messages: 460
      • Voir le profil
    Debuter la programmation en C
    « Réponse #38 le: Mercredi 01 Décembre 2010, 10:14:54 am »
  • Ah, je suis sur la bonne voie !!

    Merci !

    En fait, c'est vrai que je n'ai pas encore mis de commentaires et un peu été vite sur la boucle if,else.. mais j'en étais conscient.

    Je comptais rajouter :

    1. un menu pour le niveau de difficulté : mettra Max a 100 1000 ou 10000
    (je viens de tester 10000 -> réussi en 17 tentatives !)
    Oui je sais, il faudra que MAX devienne un int plutôt qu'un const int !!! ^-

    2. a la fin du code, la question rejouer ? O/N

    3. Gérer les erreurs quand on tape q<dgsdfg au lieu d'un chiffre (mais j'ai pas encore vu les chaines texte)

    4. Gérer un highscore avec : nom, niveau de difficulté, tentatives (et peut être le chrono...)

    5. et externaliser la fonction nombreMystere de la fonction main... :D
    6. Afficher une image (non je deconne !!!  =:)) =:)))

    Hors ligne dapsaille

    • Pratiquement VIP
    • *
    • Messages: 1275
    • Localisation: Provins
      • Voir le profil
    Debuter la programmation en C
    « Réponse #39 le: Mercredi 01 Décembre 2010, 10:34:47 am »
  • Bravo en tout cas car vu le pourrissage que l'on t'as mis tu persistes tout de même ^^


     Tu es sur la bonne voie, pour sur ^^

     (et moi je verrais bien une image dans ton menu  :D)

    Hors ligne 9uile

    • Scotché
    • *
    • Messages: 460
      • Voir le profil
    Debuter la programmation en C
    « Réponse #40 le: Mercredi 01 Décembre 2010, 10:52:26 am »
  • Bravo en tout cas car vu le pourrissage que l'on t'as mis tu persistes tout de même ^^

    J'ai failli me desincrire du site !!!  =:))

    c'est quoi des pointeurs ?
    « Modifié: Mercredi 01 Décembre 2010, 11:01:07 am par 9uile »

    Hors ligne onaryc

    • Régulier
    • *
    • Messages: 78
      • Voir le profil
    Debuter la programmation en C
    « Réponse #41 le: Mercredi 01 Décembre 2010, 11:58:38 am »
  • Bravo en tout cas car vu le pourrissage que l'on t'as mis tu persistes tout de même ^^

    Ca fait partie de l'apprentissage du C ;) , pask'arrivé au pointeur, faut une certaine dose de motivation (c'est pas insurmontable non plus).

    Le pointeur c'est l'adresse d'une zone mémoire (ça peut représenter une fonction, une variable). C'est générateur de prise de tête, faut être rigoureux et patient... (j'ai pas lu toute la définition mais ça doit pas être trop faux  :D : http://fr.wikipedia.org/wiki/Pointeur_(programmation))

    Autrement, tu peux faire un peu de c++ (sans utiliser l'approche objet, mais en utilisant ses fonctions) et profiter du passage par adresse, de la généricité des fonction cout (un printf, mais mieux), cin, ... Tout dépend du compilo que t'utilises...

    Hors ligne Bal

    • Historical Gamer
    • *
    • Messages: 4254
    • Localisation: Hanzinne
      • Voir le profil
      • Darkmoon
    Debuter la programmation en C
    « Réponse #42 le: Mercredi 01 Décembre 2010, 18:41:26 pm »
  • Wikipédia ne possède pas d'article avec ce nom.   ^-

    Rhalala les pointeurs, quelle saleté, mais bon, faut y passer, y'a pas à tortiller du croupion ^^



    Hors ligne pitufo

    • Toufaises !
    • Game Cheater
    • *
    • Messages: 2413
    • Localisation: neuf cinq en force
    • ...
      • Voir le profil
    Debuter la programmation en C
    « Réponse #43 le: Mercredi 01 Décembre 2010, 19:16:58 pm »
  • pointeurs

    Le moteur du site aime surement pas les liens avec des parenthéses, ça doit être codé en lisp :D
    « Modifié: Mercredi 01 Décembre 2010, 19:18:40 pm par pitufo »

    Hors ligne Sir Kayne

    • Arcade Druid
    • *
    • Messages: 3886
    • Localisation: Royaumes de l'Est - plaine d'Alsace
      • Voir le profil
      • Le monde de Shanarah
    Debuter la programmation en C
    « Réponse #44 le: Mercredi 01 Décembre 2010, 20:13:19 pm »
  • pointeurs
    Le moteur du site aime surement pas les liens avec des parenthéses, ça doit être codé en lisp :D
    Hehe, pas faux,
    Real programmers don't use LISP. Only effeminate programmers use more parentheses than actual code.  :D

    Quand au pointeur, pas de soucis il faut bien assimilé l'idée. En approfondissant ton programme tu va aborder les pointeurs en "douceur" je dirais.
    Cherche : pédale d'accélération d'une Outrun Upright, Une Racingcab (outrunner ou Daytona), pcb RaveRacer, PCB Missile Command (he oui), une Spacegun et le pcb Kabuki Z (on peut toujours rêver :)) et puis un flipper Raven (je l'aurais un jour...)
    "Ne me dite pas que je ne peux pas faire quelque chose!" J.Locke

    Hors ligne sahaathyva

    • Grand Pilier
    • *
    • Messages: 751
    • Localisation: Rennes 35
    • Atari powa !
      • Voir le profil
    Debuter la programmation en C
    « Réponse #45 le: Mercredi 01 Décembre 2010, 22:16:34 pm »
  • Salut 9uile,

    Bravo !

    Je ne l'ai pas dit plus haut mais quand je terminais mes études, j'ai aussi durant une année scolaire été prof d'informatique dans un Greta, pour des BTS en Informatique Industrielle. Je donnais donc des cours de C ;).

    Si tu le veux, je peux te proposer pas à pas de nouveaux exercices.

    Par exemple, pour poursuivre celui que tu as fait, nous pouvons introduire 2 notions supplémentaires : les tableaux, et les fonctions. Transforme alors ton programme pour y rajouter deux choses :
    1) un menu qui te demandera à quoi tu veux joueur( 1-LE NOMBRE MYSTÈRE 2-LE JEUX DE LA VIE 3-etc; et 0-Quitter). Ta fonction main() devient le menu et tu déportes le nombre mystère dans une fonction

    2) Ton jeu mystère va à présent mémoriser toutes les propositions que tu lui aura faites durant une partie. A la fin, tu réaffiches toutes ces propositions dans l'ordre ou elles ont été faites, puis triée de la plus petite à la plus grande

    Le 1) t'initiera aux fonctions et le 2) aux tableaux et à des tris rudimentaires.

    Tout ça va te paraître très simple. Normal, ça l'est :). Souvent les gens décrochent quand on commence à aborder les tableaux de pointeurs ou les listes chaînées... C'est pour ça qu'il est important d'y aller progressivement et ne louper aucune étapes. Les pointeurs, les allocation mémoires dynamiques sont essentiels à une bonne programmation en C.

    Bonne continuation!

    A+  Thierry

    PS: un grand merci à ceux qui ont eu un petit mot sympa pour les jeux Delphine !  <:)



    j'ai appris le c en iut d'info indus ;) , tes exercices sont cohérents je trouve pour corser le tout et apprendre sans se dégouter  .




    J'ai failli me desincrire du site !!!  =:))

    c'est quoi des pointeurs ?


    pffffiou , tu verras ils te donneront un peu de fil à retordre au début, tu te casseras sans doute un peu la tête dessus mais c'est indispensable dès que tu feras des progs un peu plus évolués ;)


    tu es sur la bonne voie en tout cas  ^-






    Wikipédia ne possède pas d'article avec ce nom.   ^-

    Rhalala les pointeurs, quelle saleté, mais bon, faut y passer, y'a pas à tortiller du croupion ^^


    http://fr.wikipedia.org/wiki/Pointeur_%28programmation%29

    bal tu t'es pas foulé la dessus  =:))
    « Modifié: Mercredi 01 Décembre 2010, 22:19:45 pm par sahaathyva »

    Hors ligne Bal

    • Historical Gamer
    • *
    • Messages: 4254
    • Localisation: Hanzinne
      • Voir le profil
      • Darkmoon
    Debuter la programmation en C
    « Réponse #46 le: Jeudi 02 Décembre 2010, 10:43:37 am »
  • PS: un grand merci à ceux qui ont eu un petit mot sympa pour les jeux Delphine !  <:)

    Mais pas de quoi, un grand merci à vous tous de nous avoir fait passer autant de bons moments :)

    Rhaaaa Fade to black, flashback et j'en oublies ^^ que de bons jeux !!!

    BAL.
     ^-^



    Hors ligne ɐɹqoƆ‾ɥƃᴉH

    • Webmaster
    • Dieu de l' Arcade
    • *****
    • Messages: 12077
    • Je suis juste un multi-nick d'AsPiC...
      • Voir le profil
    Debuter la programmation en C
    « Réponse #47 le: Jeudi 02 Décembre 2010, 11:16:34 am »
  • Le moteur du site aime surement pas les liens avec des parenthéses, ça doit être codé en lisp :D

    Il existe des balises [url] [/url]
    autant s'en servir...