IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Première application en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Secrétaire - Service Cantonal de la jeunesse (VS-CH)
    Inscrit en
    Mai 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Secrétaire - Service Cantonal de la jeunesse (VS-CH)
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 25
    Par défaut Première application en C
    bonjour à tous,

    Aujourd'hui j'ai décidé de me lancer dans le C pour une petite expérience.

    Mon but serait de faire un programme qui fasse les choses suivantes :

    1. On choisit une durée en seconde ;
    2. On choisit un code à 4 chiffre ;
    3. On clique sur "commencer" ;
    4. Le temps commence à diminuer;
    5. On peut rentrer un code à 4 chiffre. Si ce code est le même que le code entré au début, le timer s'arrête et dit "vous avez désamorcé la bombe". Sinon, le timer continue tant que le code n'a pas été inséré correctement. Si le timer arrive à 0, alors un message "La bombe a explosé" ;
    6. Si possible : quand la bombe explose, elle envoie un mail à une adresse mail


    Est-ce que vous pensez que c'est faisable avec du C, est-ce qu'il y a un autre code qui serait plus adéquat ?

    J'ai essayé de trouver des tutos assez précis mais j'ai pas à trouver mon bonheur... Peut-être que vous arriverez à mieux m’aiguiller.

    Merci à tous !

  2. #2
    Membre éclairé
    Avatar de EpiTouille
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 372
    Par défaut
    Bonjour

    Est-ce que vous pensez que c'est faisable avec du C, est-ce qu'il y a un autre code qui serait plus adéquat ?
    Bien sur que c'est possible On creer bien des systèmes d'exploitations en C

    Après est-ce que c'est le plus simple, non.

    J'ai essayer de trouver des tutos assez précis mais j'ai pas trouver mon bonheur...Peut-être que vous arriverez à mieux m’aiguiller.
    Pour ton projet, tu n'as pas beaucoup de notions à connaitre :
    - Gerer le temps
    - Gerer les entrées utilisateurs

    N'importe quel tuto général devrait faire ton bonheur

    Après pour l'envoie de mail, ça devient plus compliqué, il faudra regarder des tutos spécialisés et demandera une bonne connaissance du C

  3. #3
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    c'est bien pour commencer, mais je me souviens qu'en debutant j'avais fait un programme similaire mais je pense plus simple encore, je te le conseil:
    1/le programme choisis un nombre entre 0 et 999,
    2/tu as 10 essaies pour deviner
    3/si tu choisis un nombre trop petit il affiche 'trop petit' s'il est trop grand il dit 'trop grand'
    4/apres les 10 essaies on affiche 'perdu le nombre etait: 583' par exemple
    5/ voulez vous rejouer? si oui un recommence si non c'est fini.
    dans ce programme tu apprends les boucles (avec au moins 2 boucles imbrique),les decisions (if else),les entree sortie (clavier et affichache), et la generation de nombre pseudo aleatoire.
    si tu produits du code et que tu le poste je pourrais te donner une solution possible en cas de probleme.
    bonne chance

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Mie,

    +1.

    Il vaudrait mieux suivre l'évolution habituelle, et commencer par maîtriser les bases du langage. La gestion du temps et autres trucs viendront ensuite.

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Il y a un gros ecueil dans ton idée: c'est ce timer qui décompte pendant que tu fais tes essais.

    Le problème c'est que si ton processus est en train d'attendre que tu rentres ton essai, alors il ne peut pas faire décompter le timer en même temps (puisqu'il est "en attente").

    Donc te faut rajouter un second processus (fork ou thread) dédié à la gestion du timer. Et là, ça devient un peu abrupt pour un débutant.

    Tu devrais plutôt t'orienter sur l'énoncé de lilington...

    Moi, à mes débuts, j'avais fait un jeu de recherche de nombre aussi. La nuance c'est que la recherche se faisait "à l'oreille". Chaque tour de roue entrainait un "clic" sonore sauf quand on arrivait sur le bon chiffre où le "clic" était imperceptiblement différent. Et donc, comme dans les coffres-forts des séries B type "droles de dames", il fallait tourner vers la droite jusqu'au bon chiffre puis vers la gauche puis de nouveau vers la droite et si on s'était pas trompé, le coffre s'ouvrait.
    Mais si on ratait un seul des 3 chiffres alors plus aucun autre ne fonctionnait et leurs "clic" devenaient alors les mêmes que les autres...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    genial ton idee de coffre fort, c'est un truc a ajouter comme mini jeu dans un jeu video ca.

  7. #7
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Le problème c'est que si ton processus est en train d'attendre que tu rentres ton essai, alors il ne peut pas faire décompter le timer en même temps (puisqu'il est "en attente").
    On peut aussi utiliser select() sur l'entrée standard avec un timeout de X ms ou rendre les opérations de lectures non-bloquantes.

    Pour select ce sera un légèrement compliqué pour un débutant mais en lisant bien le man et quelques exemples sur internet, je pense que cela devrait être possible.
    Après, il y aura peut-être des problèmes de buffer (?), dans ce cas là, on peut rediriger l'entrée standard dans un pipe (?).

    Pour rendre les opérations de lectures non-blocantes, cela doit être très simple... une fois qu'on a trouvé comment on fait

  8. #8
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Citation Envoyé par Sve@r Voir le message
    Moi, à mes débuts, j'avais fait un jeu de recherche de nombre aussi. La nuance c'est que la recherche se faisait "à l'oreille". Chaque tour de roue entrainait un "clic" sonore sauf quand on arrivait sur le bon chiffre où le "clic" était imperceptiblement différent. Et donc, comme dans les coffres-forts des séries B type "droles de dames", il fallait tourner vers la droite jusqu'au bon chiffre puis vers la gauche puis de nouveau vers la droite et si on s'était pas trompé, le coffre s'ouvrait.
    Mais si on ratait un seul des 3 chiffres alors plus aucun autre ne fonctionnait et leurs "clic" devenaient alors les mêmes que les autres...
    Ben moi tout pareil! Au début des années 80, en basic sur un Atari 800XL. Mais je ne savais pas que ça venait de drôles de dames.

    Sinon pour l'idée de skk201, ça me parait possible en C standard... Plus une bibliothèque genre conio pour hitkbd() et getch(), histoire d'enlever le côté bloquant de la saisie clavier. Ensuite une bête machine d'état doit pouvoir gérer simultanément la saisie, l'affichage et la vérification des timings.

    A+

    Pfeuh

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par skk201 Voir le message
    [*]On clique sur "commencer" ;
    Cliquer en C c'est pas possible, du moins pas en C standard, là il faudra soit étudier parallèlement GTK+ ou l'API Win32 pour les interface graphiques.

    Cela dit, faire un programme c'est bien mais apprendre le langage qu'on souhaite utiliser c'est mieux et en C c'est primordial. On ne se lance pas dans le C les yeux fermés et faire un programme sans rien connaître et juste en rassemblant des morceaux des quatre coins du net. Apprend le C d'abord, ça t'occupera déjà un bon moment
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. Réponses: 13
    Dernier message: 05/05/2007, 00h59
  2. [OPENGL] Première application avec Newton Engine
    Par Bakura dans le forum Contribuez
    Réponses: 24
    Dernier message: 11/11/2006, 13h46
  3. [hibernate][spring] première application
    Par iftolotfi dans le forum Hibernate
    Réponses: 2
    Dernier message: 01/06/2006, 07h03
  4. [Debutant(e)] Lancement de ma première application J2EE
    Par thomas_le_debutant dans le forum Java EE
    Réponses: 14
    Dernier message: 15/03/2006, 09h12
  5. [DEBUTANT]Première application avec XML
    Par mlallem dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 17/11/2005, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo