begin process at 2012 05 30 10:08:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

TPE Labyrinthe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

TPE Labyrinthe

vendredi 16 décembre 2011 à 20:01:42 | TPE Labyrinthe

mattwal

Bonsoir,

Je suis actuellement en 1ère S et dans le cadre du TPE j'ai pris comme sujet " Une souris peut elle mémoriser un chemin de labyrinthe ? "

J'ai donc fais un petit algorithme avec le logiciel Algobox ( nous avons commencer à l'utiliser en cours ) mais je rencontre quelques problème car ce logiciel est vraiment très embêtent lorsqu'on veut ajouter une ligne de code entre deux déjà existantes ...

Ce petit programme est un modèle de mon labyrinthe, à chaque intersection le programme choisis aléatoirement un chemin, pour le moment le programme ne revient pas en arrière lorsqu'il est dans un "cul de sac", la prochaine chose que je veux intégrer c'est justement un retour en arrière en cas d'erreur mais comme le logiciel algobox n'est vraiment pas pratique (c'est galère de modifier plusieurs fois le code... )et sans les commentaires je me suis déjà emmêler les pattes.

J'ai donc pour projet de développer ce petit programme en C ou autre langage facilement accessible pour mieux pouvoir toucher au code et même insérer des commentaires.

Le logiciel CodeBlocks peut-il convenir à un débutant comme moi ?

Voici mon code
Code :
1   VARIABLES
2     x EST_DU_TYPE NOMBRE
3   DEBUT_ALGORITHME
4     x PREND_LA_VALEUR ALGOBOX_ALEA_ENT(0,1)
5     SI (x==0) ALORS
6       DEBUT_SI
7       x PREND_LA_VALEUR ALGOBOX_ALEA_ENT(2,3)
8       SI (x==2) ALORS
9         DEBUT_SI
10        AFFICHER "Perdu"
11        FIN_SI
12      SI (x==3) ALORS
13        DEBUT_SI
14        AFFICHER "Perdu"
15        FIN_SI
16      FIN_SI
17    SI (x==1) ALORS
18      DEBUT_SI
19      x PREND_LA_VALEUR ALGOBOX_ALEA_ENT(4,5)
20      SI (x==4) ALORS
21        DEBUT_SI
22        AFFICHER "Perdu"
23        FIN_SI
24      SI (x==5) ALORS
25        DEBUT_SI
26        x PREND_LA_VALEUR ALGOBOX_ALEA_ENT(6,7)
27        SI (x==6) ALORS
28          DEBUT_SI
29          AFFICHER "Perdu"
30          FIN_SI
31        SI (x==7) ALORS
32          DEBUT_SI
33          x PREND_LA_VALEUR ALGOBOX_ALEA_ENT(8,9)
34          SI (x==8) ALORS
35            DEBUT_SI
36            AFFICHER "Perdu"
37            FIN_SI
38          SI (x==9) ALORS
39            DEBUT_SI
40            AFFICHER "Gagner"
41            FIN_SI
42          FIN_SI
43        FIN_SI
44      FIN_SI
45  FIN_ALGORITHME


Je suppose que dans le code en C j'aurais des IF,THEN,ELSE etc...

Et si vous avez des tutos à me proposer je suis preneur.

Je vous remercie par avance pour votre aide.
samedi 17 décembre 2011 à 13:47:45 | Re : TPE Labyrhinte

buno

Administrateur CodeS-SourceS
Hello,
Pour faire du C, Code Blocks ou bien Visual Studio feront très bien l'affaire.
Par contre, tu es dans la section C#. Je déplace donc ton message dans la section C/C++.
N'hésites pas à revenir si tu as des questions!

Note: TPE = ?? Travail Personnel Encadré?

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
dimanche 18 décembre 2011 à 12:16:25 | Re : TPE Labyrinthe

mattwal


Voila j'ai commencé à écrire mon code :

Code C/C++ :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv)
{
  int x = 0; // Au départ, on part de 0
  const int MAX = 1, MIN = 0;

  //choix aleatoire entre 0 et 1 ( premiere intersection )
  srand(time(NULL));
  x = (rand() % (MAX - MIN + 1)) + MIN;
  //coté perdu
  if (x == 0)
    int y = 2;
    const int MAX = 3, MIN = 2;
    srand(time(NULL));
    y = (rand() % (MAX - MIN + 1)) + MIN;
    if (y == 2)
    printf("Perdu !\n");
    if (y == 3)
    printf("Perdu !\n");
  //coté gagnant
  if (x == 1)
  printf("Gagne !\n");
}


Mais à la ligne 14 CodeBlocks me détecte une erreur, je n'arrives pas à trouver quelle est mon erreur.

Si vous avez besoin de mon schéma de mon labyrinthe je le posterais.

Merci pour votre aide

PS : Définition de TPE pour ceux qui ne savent pas ce que c'est( wikipédia ):
Les travaux personnels encadrés (TPE), sont des projets de recherche scolaire par groupe de 2, 3 ou 4 élèves (il se peut malgré tout qu'un élève fasse un TPE seul), sur des domaines ciblés et répondant à une problématique. Ils concernent, aujourd'hui dans les lycées français, les 1res des séries générales (ES, L et S), et font l'objet d'une épreuve anticipée du baccalauréat. Les notes en dessous de la moyenne ne sont pas comptées dans cette épreuve.
dimanche 18 décembre 2011 à 13:21:18 | Re : TPE Labyrinthe

buno

Administrateur CodeS-SourceS
Yop,
Il manque des accolades à ta condition if
Code C/C++ :
if (condition)
{
// code si vraie
}
else
{
// code si faux
}



@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
jeudi 22 décembre 2011 à 13:36:26 | Re : TPE Labyrinthe

mattwal

Merci pour votre aide.

J'ai un peu modifier mon code car j'aimerais que l&#8217;action se déroule plusieurs fois, le nombre de fois entrer lorsque le programme le demande.

Mais le programme s'arrête et m'affiche "Vous avez demander X essais", X etant le nombre que j'ai entré juste avant.
Une fois a cette étape le programme ne vas pas plus loin, je ne trouve pas l'erreur mais il me semble que ca doit être une erreur avec les accolades.

Merci

Code C/C++ :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv)

{
    int y = 0; // le nombre d'essais entré
    puts(" saisir nombre d'essai puis tapez entree ");
    scanf("%d", &y); // Lecture du nombre entier
    printf("Vous avez demander %d essais \n", y);
    return EXIT_SUCCESS;
    {
    int compteur = y;
    while (compteur <= y );
    }
    int x = 0; // on declare la variable X
    const int MAX = 1, MIN = 0;
    srand(time(NULL));
    x = (rand() % (MAX - MIN + 1)) + MIN; // X prend la valeur 0 ou 1
        if (x == 0)
            {
            int a = 0; //
            int b = 0; // Nombre de fois ou x=0 est sorti
            b = a + 1;  // une sortie de plus
            printf("nombre de réussite %d \n", b);
            }
        if (x == 1)
            {
            int c = 0; //
            int d = 0; // Nombre de fois ou x=1 est sorti
            d = c + 1;  // une sortie de plus
            printf("nombre d'echecs %d \n", d);
            }

    system("PAUSE"); // met le programme en pause
}
jeudi 22 décembre 2011 à 14:33:45 | Re : TPE Labyrinthe

buno

Administrateur CodeS-SourceS
Hello,

Mais le programme s'arrête


Bah oui, c'est ce que tu lui demande ici:
Code C/C++ :
printf("Vous avez demander %d essais \n", y);
return EXIT_SUCCESS; // ici, tu quittes la fonction en cours, donc le main dans ton cas, donc ton programme


Autre remarque:
Code C/C++ :
while (compteur <= y );

Cette boucle ne fait rien, sauf boucler indéfiniment...

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
jeudi 22 décembre 2011 à 15:19:09 | Re : TPE Labyrinthe

buno

Administrateur CodeS-SourceS
J'ai traduis ton algo de 2 manières possibles (y'en a d'autres mais ça suffira):
- méthode1: utilisation de switch..case
- méthode2: imbrication 'intelligente' de if

Regarde ce que tu en penses:
Code C/C++ :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int getAleatoire(int min, int max)
{
  int x = (rand() % (max - min + 1)) + min; // X prend la valeur min ou max
  //printf("alea = %d (entre %d et %d)\n", x, min, max);
  return x;
}

void methode1(int nbEssai)
{
  for (int compteur=0; compteur < nbEssai; compteur++)
  {
    int x = getAleatoire(0,1);
    switch(x)
    {
    case 0:
      printf("Perdu!\n");
      break;
    case 1:
      {
        x = getAleatoire(4,5);
        switch(x)
        {
        case 4:
          printf("Perdu!\n");
          break;
        case 5:
          {
            x = getAleatoire(6,7);
            switch(x)
            {
            case 6:
              printf("Perdu!\n");
              break;
            case 7:
              x = getAleatoire(8,9);
              switch(x)
              {
              case 8:
                printf("Perdu\n");
                break;
              case 9:
                printf("Gagne\n");
              }
              break;
            }
            break;
          }
        }
        break;
      }
    }
  }
}

void methode2(int nbEssai)
{
  for (int compteur=0; compteur < nbEssai; compteur++)
  {
    int x = getAleatoire(0,1);
    if (x==1)
    {
      x = getAleatoire(4,5);
      if (x==5)
      {
        x = getAleatoire(6,7);
        if (x==7)
        {
          x = getAleatoire(8,9);
          if (x==9)
          {
            printf("Gagne\n");
            continue; // passer au tour de boucle suivant
          }
        }
      }
    }

    // ici, x vaut 0, 2, 3, 4, 6 ou 8
    printf("Perdu\n");
  }
}

int main(int argc, char *argv)
{
  int nbEssai = 0;    // le nombre d'essais saisi
  srand(time(NULL));  // init aléatoire

  // Récupération du nombre d'essai
  puts("Saisir nombre d'essai puis tapez entree ");
  scanf("%d", &nbEssai); // Lecture du nombre entier
  printf("Vous avez demander %d essais \n", nbEssai);

  //methode1(nbEssai);
  methode2(nbEssai);
}



@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
jeudi 5 janvier 2012 à 21:53:16 | Re : TPE Labyrinthe

mattwal

Merci pour votre aide ;)
Le poste peut-il être mis en attente ? Si jamais je rencontre d'autre problème ?
vendredi 6 janvier 2012 à 09:00:54 | Re : TPE Labyrinthe

buno

Administrateur CodeS-SourceS
Hello,
Le sujet reste ouvert, pas de souci


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...


Cette discussion est classée dans : fin, code, afficher, debut, algobox


Répondre à ce message

Sujets en rapport avec ce message

generateur de tel avec debut et fin [ par LOLA0678 ] bonjour je cherche un code simple qui me permet en entrant le debut et la fin de génerer des numero tel avec possibilite de changer le prefixe ici (02 CODE C# POUR COMMENIQUE UN AFFICHER USB [ par MOHAMED_MATTAL ] JE DEVLP UNE APPLICATION QUI AFFICHE SUR UN PORT SERIE MAIS MON AFFICHER 7 SEGMENT POSSED UNE EMULATION USBBON JE PAS LE N° DE REVENDOR NI DE PRODUCTO Afficher un BITMap en GDI+ [ par psy4meuh ] 'jour à tous, j'ai besoin d'un peu d'aide sur l'utilisation de la librairie GDI+...Dans mon programme, je récupère une image de webcam au format DIB, la fonction "afficher le source" de internet explorer [ par zip8000 ] Bonjour,je cherche a reproduire le resultat de la fonction "afficher la source" qui ouvre le code html d'une page internet. Mon but est de recuperer c programme de recherche [ par sangohan06 ] Bonsoir à tous, je sais pas si je suis au bon endroit ,, mais j'ai besoin de votre aide.alors voilà autant le dire toute je commence dans le C. Et j'a Afficher assembleur sous Code::Block [ par pop70 ] Quelqu'un sait-il comment on peut afficher le code assembleur produit par Code::Block durant sa compilation. (je ne sais pas si ça change quelque-cho touché tapée par clavier [ par sidalilo ] bonjour je veux afficher une touché tapée par le clavier en c++ builder 6 j'ai eu un code qui fait ca mais j'ai su pas comment l'utiliser voila ce cod types dans lex / yacc [ par Guillemouze ] bon jvais essayer detre clair.....alors g un code en lex et yass mais g un probleme lors de la compilation du fichier .tab.c et g limpression que ca v Afficher le code secret [ par fred23 ] Bonjour,Dans un code, je demande à l'utilisateur d'entrer son code d'accés par un cin>>code;Or, quand on tape le code il s'affiche en clair sur l'ecra lire un code barre et l'afficher... URGENT [ par skro93 ] Bonjour à tous, voila mon problème je doit faire un programme en c++ qui permet de lire un code barre grâce a lecteur de code barre "douchette" et ave


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales