S'enregistrer | Rechercher | FAQ | Liste des Membres | Groupes d'utilisateurs | Connexion

  Nom d'utilisateur:    Mot de passe:       

Aller à la page 1, 2  Suivante  

Poster un nouveau sujet   Répondre au sujet Page 1 sur 2
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
MessagePosté le: Mer Avr 27, 2011 3:13 pm    Sujet du message: Petit jeu a 3 questions Répondre en citant

feldo
Projets


 
Inscrit le: 04 Avr 2010
Messages: 33
Localisation: 69°45′S 75°15′W



Bonjour,je m’entraîne avant d'attaquer la partie 2 du sdz.
Code:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int choixQuestion=0;
    printf("\t\t #### Question pour 3 bombons ####\n\nTaper le chiffre correspondant a votre choix.\n\n");
    printf("1.Histoire-Geographique.\n\n");
    printf("2.Science.\n\n");
    printf("3.Geek.\n\n");
    scanf("%d",&choixQuestion);

    if (choixQuestion==1)
        {
            int reponse=0;
            printf("Vous avez choisis l'histoire-geographique.\n\n");
            printf("En quelle annee,Neil Amstrong a marche sur la lune ?\t\n");
            scanf("%d",&reponse);
            if(reponse==1969)
            printf("Bonne reponse !\n");
            else
            printf("Mauvaise reponse ...");

        }

        else if (choixQuestion==2)
        {
            int reponse=0;
            printf("Vous avez choisis la science.\n\n");
            printf("Combien de planete ya t-il dans le systeme solaire ?\t\n");
            scanf("%d",&reponse);
            if (reponse ==8 )
            printf("Bonne reponse !\n");
            else
            printf("Mauvaise reponse ...");
        }
            else if (choixQuestion ==3)
            {
            int reponse=0;
            printf("Vous avez choisis le theme geek\n\n");
            printf("En quelle annee est apparue pour la premiere fois Jumpman plus connus sous le nom de Mario dans le jeu Donkey Kong ?\t\N");
            scanf("%d",&reponse);
            if (reponse == 1981)
            printf("Bonne reponse !\n");
            else
            printf("Mauvais reponse ...");

            }

    return 0;
}


Voila vous pouvez le tester ^^ certain dirons, tout le monde sait faire un truc facile, mais moi je débute, je vais aussi rajouter plusieurs question pour chaque catégorie ou le joueur aura le choix et introduire les boucles mais je pense pas en avoir besoin.
Je cherche une fonction pour permettre de recommencer le jeu quelque chose comme ça,je sais pas si sa existe.
Je vous souhaite une bonne journée !
Voir le profil de l'utilisateur Envoyer un message privés
MessagePosté le: Mer Avr 27, 2011 4:56 pm    Sujet du message: Répondre en citant

GRIMMJOWBO
Modérateur


 
Inscrit le: 07 Mai 2010
Messages: 778
Localisation: France



Hello,
Ce topic aurait plus sa place sur devbbs.
EMRE a écrit:
Je cherche une fonction pour permettre de recommencer le jeu quelque chose comme ça,je sais pas si sa existe.

Bien sûr que si ça existe, tu n'as qu'a par exemple créer une variable continuer que tu initialiseras à 1 et à laquelle tu affecteras une valeur différente si la personne ne veut pas continuer (tu lui pose la question). Après tout le jeu est contenu dans une boucle qui s'exécute tant que continuer vaut une valeur différente de 0.
ça te donnerait quelque chose du genre:
Code:

int main(){
int continuer=1;
while(continuer){
// Tu fous tout le jeu ici
/* A la fin de chaque question tu lui demande si il veut continuer si non tu donnes la valeur 0 Ă  la variable continuer */
}
return 0;
}

Enfin ce n'est qu'un exemple tout dépend de ce que tu veux faire (lui demander de finir à chaque question ça peut être lourd) et tu peux faire de plein de manière différentes du moment que tu maitrise les boucles. Tu peux aussi faire un goto.
Après si tu souhaites progresser j'ai quelques 'améliorations à te proposer:

  • CrĂ©er un système des score (dire Ă  la fin du jeu tu as tant de points, quand tu auras fini la partie 2 du tuto du sdz tu pourrais enregistrer le score dans un fichier et faire un classement)
  • Compter le nombre de question auquel le joueur a rĂ©pondu et dire par exemple tu as rĂ©ussi 2/5 des questions.
  • Les question seront choisies alĂ©atoirement

Laisser libre cours Ă  ton imagination et have fun Smile
++
Voir le profil de l'utilisateur Envoyer un message privés Messagerie InstantanĂ©e MSN Messenger
MessagePosté le: Mer Avr 27, 2011 6:28 pm    Sujet du message: Répondre en citant

feldo
Projets


 
Inscrit le: 04 Avr 2010
Messages: 33
Localisation: 69°45′S 75°15′W



Merci d'avoir répondus,enfaite quand j'essaie d’améliorer je mélange tout,avant j'ai essayer de mettre2 questions pour chaque catégorie,et ça n'a pas marché.
je devais de nouveau faire une condition et ça un peu mélangé ...
Je vais essayer car je dois absolument maîtriser la partit 1 avant d'attaquer la 2 et je vais poster sur devbbs
Voir le profil de l'utilisateur Envoyer un message privés
MessagePosté le: Jeu Avr 28, 2011 8:35 am    Sujet du message: Répondre en citant

Manu404
Modérateur


 
Inscrit le: 26 Fév 2008
Messages: 2219
Localisation: ::1:



Autre possibilité que la méthode itérative, un peu de récursion que je trouve plus propre.
La fin de ton main devient :

Code:
   
    int r;
    printf("Wanna replay ? \n  1 : Yes \n >2 : No \n");
    scanf("%d", &r);
    if(r==1)  main();
    return 0;


Ceci dit, surveille ta stack quand tu fait de la récursion.
Voir le profil de l'utilisateur Envoyer un message privés Envoyer un e-mail Visiter le site web de l'utilisateur Messagerie InstantanĂ©e MSN Messenger
MessagePosté le: Jeu Avr 28, 2011 8:54 am    Sujet du message: Répondre en citant

Manu404
Modérateur


 
Inscrit le: 26 Fév 2008
Messages: 2219
Localisation: ::1:



Allé, avait rien a fou***

just for fun, une autre manière de faire ton jeux

Code:

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

int askquestion(char* question, char* theme, int reponse);
int menu();

int main()
{
    int choixQuestion=0, reponse=0, r=0;
    char question[255], theme[255];

    choixQuestion = menu();

    if (choixQuestion == 1)
    {
        sprintf(question, "En quelle annee,Neil Amstrong a marche sur la lune ?");
        sprintf(theme, "histoire-geographique");
        reponse = 1969;
    }
    else if (choixQuestion == 2)
    {
        sprintf(question, "Combien de planete ya t-il dans le systeme solaire ?");
        sprintf(theme, "science");
        reponse = 8;
    }
    else if (choixQuestion == 3)
    {
        sprintf(question, "En quelle annee est apparue pour la premiere fois Jumpman plus connus sous le nom de Mario dans le jeu Donkey Kong ?");
        sprintf(theme, "geek");
        reponse = 1981;
    }
    else
    {
        sprintf(question, "Tu sais lire ? Un nombre entre 1 et 3 cretin !");
        sprintf(theme, "fuzzing");
        reponse = 1981;
    }

    if(askquestion(question, theme, reponse) == 1)
        printf("Bonne rĂ©ponse\n");
    else
        printf("LoupĂ© ! :D\n");

    printf("Wanna replay ? \n  1 : Yes \n >2 : No \n");
    scanf("%d", &r);
    if(r==1)
        main();
    return 0;
}

int menu()
{
    int choixQuestion=0;
    printf("\t\t #### Question pour 3 bombons ####\n\nTaper le chiffre correspondant a votre choix.\n\n");
    printf("1.Histoire-Geographique.\n\n");
    printf("2.Science.\n\n");
    printf("3.Geek.\n\n");
    scanf("%d",&choixQuestion);
    return choixQuestion;
}

int askquestion(char* question, char* theme, int reponse)
{
    int r;
    printf("Vous avez choisis le theme %s\n", theme);
    printf("%s\n", question);
    scanf("%d", &r);
    if(r==reponse)
        return 1;
    return 0;
}
Voir le profil de l'utilisateur Envoyer un message privés Envoyer un e-mail Visiter le site web de l'utilisateur Messagerie InstantanĂ©e MSN Messenger
MessagePosté le: Jeu Avr 28, 2011 7:16 pm    Sujet du message: Répondre en citant

THE-DEATH
Modérateur


 
Inscrit le: 23 Juil 2008
Messages: 971
Localisation: 127.0.0.1



Je suis pas du meme avis, recursion ok mais sur le main je trouve pas ca propre.
Voir le profil de l'utilisateur Envoyer un message privés Visiter le site web de l'utilisateur
MessagePosté le: Ven Avr 29, 2011 12:25 am    Sujet du message: Répondre en citant

SPL3EN
Projets


 
Inscrit le: 21 Juin 2010
Messages: 31



Personnellement, si tu es débutant, je t'encouragerai fortement vers une programmation respectant le modèle MVC. (c'est ce genre de choses ultra importantes qui n'est pas du tout abordé qui me fait peur sur le SDZ!)
C'est une façon de coder intelligente, et qui te permet de modifier à tout moment <par exemple> d'interface graphique, sans pour autant changer tout ton code.
Donc par exemple, passer de la console à une GUI de façon simple.

Aussi, j'ai préféré regrouper les informations dans des tableaux afin de modéliser tes données.
La meilleure solution (même si je ne pense pas que tu les aies encore vues) aurait été de faire une structure, du genre :

Code:
typedef struct _Question
{
    char *question;
    char *theme;
    int reponse;

}   Question;


Ce qui pourrait te donner la possibilité de créer des nouvelles questions, les ajouter à une liste chaînées par exemple, implémenter des méthodes pour les stocker/charger dans un fichier, etc etc.


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

#define THEME_HISTOIRE 0
#define THEME_SCIENCE 1
#define THEME_GEEK 2

/**
*   Vue
*/
void effacer_ecran() {
    system("cls");
}

void afficher_menu()
{
    printf (
        "\t\t #### Question pour 3 bonbons ####\n\n"
        "Taper le chiffre correspondant a votre choix.\n\n"
        "[1] Histoire-Geographique.\n\n"
        "[2] Science.\n\n"
        "[3] Geek.\n\n"
    );
}

void
afficher_erreur() {
    printf("Desole, une erreur s'est produite.\n\n");
}

void afficher_choix(char *choix) {
    printf("Vous avez choisis : %s\n\n", choix);
}

void afficher_reponse(char *reponse) {
    printf("Votre reponse est %s !\n", reponse);
}

void afficher_question (char *question) {
    printf("Votre question : \n%s\n-> ", question);
}

void afficher_quitter () {
    printf("Voulez vous quitter ? (0 = Non, 1 = Oui)\n-> ");
}

/**
*   Modèle
*/
void check_reponse(int reponse_user, int bonne_reponse)
{
    if (reponse_user == bonne_reponse)
        afficher_reponse("correcte");
    else
        afficher_reponse("fausse");
}

void demander_entier(int *entier)
{
    fflush(stdin);
    scanf("%d", entier);
}


/**
*   ContrĂ´leur
*/
int main()
{
    /* Nos "base" de donnĂ©es */
    char *themes[3];
    char *questions[3];
    int reponses[3];

    int choixQuestion;
    int reponse;
    int quit = 0;

    themes[THEME_HISTOIRE] = "Histoire-geographie";
    themes[THEME_SCIENCE] = "Science";
    themes[THEME_GEEK] = "Geek";

    questions[THEME_HISTOIRE] = "En quelle annee,Neil Amstrong a marche sur la lune ?";
    questions[THEME_SCIENCE] = "Combien de planete ya t-il dans le systeme solaire ?";
    questions[THEME_GEEK] = "En quelle annee est apparue pour la premiere fois Jumpman plus connus sous le nom de Mario dans le jeu Donkey Kong ?";

    reponses[THEME_HISTOIRE] = 1969;
    reponses[THEME_SCIENCE] = 8;
    reponses[THEME_GEEK] = 1981;

    /* Le dĂ©but de notre programme */
    while (!quit)
    {
        effacer_ecran();
        afficher_menu();
        demander_entier(&choixQuestion);
        choixQuestion = choixQuestion - 1;

        switch (choixQuestion)
        {
            case THEME_HISTOIRE:
            case THEME_SCIENCE:
            case THEME_GEEK:
                afficher_choix(themes[choixQuestion]);
                afficher_question(questions[choixQuestion]);
                demander_entier(&reponse);
                check_reponse(reponse, reponses[choixQuestion]);
            break;

            default:
                afficher_erreur();
            break;
        }

        afficher_quitter();
        demander_entier(&quit);
    }

    return 0;
}
Voir le profil de l'utilisateur Envoyer un message privés
MessagePosté le: Ven Avr 29, 2011 8:06 am    Sujet du message: Répondre en citant

feldo
Projets


 
Inscrit le: 04 Avr 2010
Messages: 33
Localisation: 69°45′S 75°15′W



Merci,toute ces nouvelles choses je les connais pas.J'essaie de faire avec ce que j'ai appris mais merci quand mĂŞme j'essaie
Voir le profil de l'utilisateur Envoyer un message privés
MessagePosté le: Ven Avr 29, 2011 9:13 am    Sujet du message: Répondre en citant

Manu404
Modérateur


 
Inscrit le: 26 Fév 2008
Messages: 2219
Localisation: ::1:



SPL3EN : Ton code mélange controller et model '--

[EDIT Manu404] : Après relecture de ton code en fait tu n'as aucun model, juste des views et des controllers
Voir le profil de l'utilisateur Envoyer un message privés Envoyer un e-mail Visiter le site web de l'utilisateur Messagerie InstantanĂ©e MSN Messenger
MessagePosté le: Ven Avr 29, 2011 11:39 am    Sujet du message: Répondre en citant

feldo
Projets


 
Inscrit le: 04 Avr 2010
Messages: 33
Localisation: 69°45′S 75°15′W



Svp si je peux me permettre cette question.
Est une obligation d'apprendre le langage C ou on peut s'en passer pour le hacking ?
Ce n'est juste qu'une question et pas une formalité !
Voir le profil de l'utilisateur Envoyer un message privés
MessagePosté le: Ven Avr 29, 2011 7:57 pm    Sujet du message: Répondre en citant

EKO
Projets


 
Inscrit le: 04 Jan 2009
Messages: 34



Tout dépend ce que tu as envie de faire. C'est vaste le hacking ...
Le C c'est juste un route vers le Système d'exploitation et les concepts mis en place par celui-ci.
Voir le profil de l'utilisateur Envoyer un message privés
MessagePosté le: Ven Avr 29, 2011 11:34 pm    Sujet du message: Répondre en citant

SPL3EN
Projets


 
Inscrit le: 21 Juin 2010
Messages: 31



Citation:
SPL3EN : Ton code mélange controller et model '--

Il y a des manières plus aimable de me le faire remarquer, ça donne franchement envie d'aider sur ce forum cette réaction.
Mais bon, ta réaction est normale puisque tu as parfaitement raison, merci de l'avoir fait remarquer, mais je vais vivre avec -mais je ne pense pas que ça va éclaircir Emre-.
Voir le profil de l'utilisateur Envoyer un message privés
MessagePosté le: Sam Avr 30, 2011 10:59 am    Sujet du message: Répondre en citant

feldo
Projets


 
Inscrit le: 04 Avr 2010
Messages: 33
Localisation: 69°45′S 75°15′W



EKO a écrit:
Tout dépend ce que tu as envie de faire. C'est vaste le hacking ...
Le C c'est juste un route vers le Système d'exploitation et les concepts mis en place par celui-ci.

Pour te répondre précisément,si j'apprends le c c'est parsque on m'a dit de l'apprendre car c'est la base d'un hacker
Voir le profil de l'utilisateur Envoyer un message privés
MessagePosté le: Sam Avr 30, 2011 11:14 am    Sujet du message: Répondre en citant

THE-DEATH
Modérateur


 
Inscrit le: 23 Juil 2008
Messages: 971
Localisation: 127.0.0.1



SPL3EN : faut pas tout prendre au 1e degres juste un conseil du coup si on te dis tiens bla bla, essaies de voir si oui on non tu fais comme ca et si en faisant bla bla sce serait peut etre pas mieux, fin, toutes les remarques aussi bien bonnes que mauvaises sont bonnes a prendre.

EMRE : je pense que tu te trompes, le C va te permettre d'avoir des connaissances en architecture systeme, en programmation mais, mis a part que la programmation dans un langage X est la base, le C n'ouvre pas toutes les portes, d'un autre cote il y a des langages web etc... qui en ouvrent d'autres. Donc renseignes toi plus. Si par la suite tu comptes faire du reversing / exploit applicatif, alors t'es bien parti, si ce n'est pas ce que tu veux, alors c'est pas le bon langage pour toi, meme s'il est toujours bon de le connaitre culturellement pour tout ce qui est archi system / os.
Voir le profil de l'utilisateur Envoyer un message privés Visiter le site web de l'utilisateur
MessagePosté le: Sam Avr 30, 2011 12:56 pm    Sujet du message: Répondre en citant

feldo
Projets


 
Inscrit le: 04 Avr 2010
Messages: 33
Localisation: 69°45′S 75°15′W



Je sais pas ce que je veux,vu que je sais rien faire :/
Voir le profil de l'utilisateur Envoyer un message privés
Poster un nouveau sujet   Répondre au sujet Page 1 sur 2

Aller à la page 1, 2  Suivante  


 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum



129167 Attacks blocked