Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vos jeux en C

defis

Anonyme
3 janvier 2006 à 19:45:35

Pour initialiser, un tableau, il y a mieu que {'C','e','t','t','e'...
Il me semble(voila longtemp que je ne manipule plus de tableau de char...)
char Tab[50] = "Blablablablabla;\0"//Pensser au \0 !
  • Partager sur Facebook
  • Partager sur Twitter
3 janvier 2006 à 19:47:04

salut

sinon lisez bien le cours de mateo sur le morcellement du code grace au fonctions, il y a ici des grosse fonction main peut claire :)
Un bon projet avec quelque fonction donnera de la lisibilité et en plus si vous faites ça pour vous entrenez, alors autant s'entrener à bien faire ;-)

++
  • Partager sur Facebook
  • Partager sur Twitter
3 janvier 2006 à 21:16:36

Alors là... Je pense que je vient d'avoir une idée, non, que dis-je deux idées !

Vite un crayon que je puisse vous en faire part ! :p

Le premier defi serait une sorte de Ping où vous pourriez bien sûr apporter quelques modification personnelles :
Le but : on voit à l'écran une "plaque" (désolé, je trouve pas mes mots :-° ) sur laquelle il y a des bosses au démarrage, lorsqu'on sélectionne une "bosse", elle se retourne et devient un creux ainsi que les cases autour...
Vous aurez compris que le but est de retourner toutes les bosses (Moi, je pensais a mettre ce jeu en forme avec des chiffres : exemple 1 pour les bosses et 0 pour les creux) Ce défi est surement de taille a relevez mais en y réfléchissant bien je pense que c'est faisable.

Si vous n'avez rien compris a ce que je viens de raconter :
http://www.01net.com/telecharger/

Pour ceux que ça n'inspire pas j'ai une autre idée : Vous connaissez le jeu "Fire" : ce defi est plus dur que le précedent je pense, mais faisable, si vous ne connaissez pas, allez voir sur le site suivant :
http://stephane.mitermite.free.fr/

Je pense que vous trouverez les règles, allé bonne chance ! ;)
  • Partager sur Facebook
  • Partager sur Twitter
3 janvier 2006 à 21:18:00

J'ai déjà vu ce post qlq part :)
en tout cas à l'heure actuelle on ne peut pas faire ca
  • Partager sur Facebook
  • Partager sur Twitter
3 janvier 2006 à 21:30:50

Citation : JC_Master

Pour initialiser un tableau, il y a mieux que {'C','e','t','t','e'...
Il me semble(voila longtemps que je ne manipule plus de tableau de char...)
char Tab[50] = "Blablablablabla\0"//Pensser au \0 !



Le '\0' est ajouté de façon automatique quand tu l'initialise de cette façon (Mais pour l'autre il faut le mettre)

@Cédric : Pour ton idée, il faudrait les tableaux pour réaliser ce genre de jeu et m@téo n'en a pas encore parler dans ses cours.
  • Partager sur Facebook
  • Partager sur Twitter
3 janvier 2006 à 21:51:32

Bon, moi c'est pas vraiment un jeu, mais c'est un programme

TOUR DE MAGIE
L'utilisateur choisit dans sa tête un nombre entre 1 et 63, l'ordinateur lui montre plusieurs séries de nombres (que je vous montre ci-dessous), et demande à l'utilisateur si oui ou non, son nombre est dans cette série. Après avoir montré toutes les séries, l'ordinateur devine le nombre de l'utilisateur
TRUC : Il faut additionner le premier nombre de chaque série où l'utilisateur a dit que son nombre se trouvait

Aucun code non appris


Les séries



1 3 5 7 9 11 13 15 17 19 21 23
25 27 29 31 33 35 37 39 41 43
45 47 49 51 53 55 57 59 61 63

------------------------------

2 3 6 7 10 11 14 15 18 19 22 23
26 27 30 31 34 35 38 39 42 43
46 47 50 51 54 55 58 59 62 63

------------------------------

4 5 6 7 12 13 14 15 20 21 22 23
28 29 30 31 36 37 38 39 44 45
46 47 52 53 54 55 60 61 62 63

------------------------------

8 9 10 11 12 13 14 15 24 25 26
27 28 29 30 31 40 41 42 43 44 45
46 47 56 57 58 59 60 61 62 63

------------------------------

16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31 48 49 50 51 52
53 54 55 56 57 58 59 60 61 62 63

------------------------------

32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52
53 54 55 56 57 58 59 60 61 62 63

Voilà !

Et bien sûr, à la fin du programme, il vous faudra demander à l'utilisateur s'il veut recommencer ^^
  • Partager sur Facebook
  • Partager sur Twitter
4 janvier 2006 à 4:07:48

Allez, "just for fun" et pour s'entrîner aussi :p
Mon code pour le tour de magie:
Secret (cliquez pour afficher)
#include <stdio.h>
#include <stdlib.h>

int input (char first)
{
        int nb_func = 0;
        int ret = 0;
        do{
                scanf("%ld", &ret);
        }while(ret!=0 && ret!=1);
       
        nb_func = (ret)? first : 0;
        return nb_func;
}

int main(int argc, char *argv[])
{
        int cont = 1;
        printf("***Bienvenue dans ce tour de magie***\n\n\n");
        while(cont == 1){
                int nb = 0;
               
                printf("Premiere etape: veuillez choisir un nombre entre 1 et 63(compris) et le memoriser\n\n");
               
                printf("Maintenant, le programme va vous montrer des series de nombres, si le votre s'y trouve, entrer 1, sinon entrer 0\n\n");
                printf("1ere serie:\n");
                printf("1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63\n");
               
                nb += input(1);
               
                printf("\n\n2eme serie:\n");
                printf("2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31 34 35 38 39 42 43 46 47 50 51 54 55 58 59 62 63\n");
               
                nb += input(2);
               
                printf("\n\n3eme serie:\n");
                printf("4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31 36 37 38 39 44 45 46 47 52 53 54 55 60 61 62 63\n");
               
                nb += input(4);
               
                printf("\n\n4eme serie:\n");
                printf("8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 40 41 42 43 44 45 46 47 56 57 58 59 60 61 62 63\n");
               
                nb += input(8);
               
                printf("\n\n5eme serie:\n");
                printf("16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63\n");
               
                nb += input(16);
               
                printf("\n\n6eme serie:\n");
                printf("32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63\n");
               
                nb += input(32);
               
                printf("\n\nVous aviez choisi le: %ld n'est-ce pas? :)\n\n", nb);
               
                cont = 0;
                do{
                        printf("Voulez-vous recommencer?(1/0)");
                        scanf("%ld", &cont);
                }while(cont!=0 && cont!=1);
               
        printf("\n\n------------------------------------------------------------\n\n");
        }
        printf("Au revoir!\n");
        system("PAUSE");   
        return 0;
}

Mon premier programme en C en fait, c'est bien cette idée de défis, ça permet de passer un peu à la pratique. Je me rends bien compte que mon code n'est pas optimiser mais il fonctionne et survole un peu tout le cours
  • Partager sur Facebook
  • Partager sur Twitter
4 janvier 2006 à 13:24:49

Bon ben moi j'ai fini ma version "finale" de counter strike, voilà je vous laisse regarder le code, ou plutôt essayer le jeu (parce que les gros bloque de code c'est pas agréable à lire.)
Secret (cliquez pour afficher)


/* A enregistrer sous main.c */

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

int main(int argc, char *argv[])
{
  nb_round = 0;
  printf("\t\t\tCounter-Strike v1.5 by sanco95\n");
  printf("\t\tVersion \"Finale\", vous pouvez la modifier !\n");
  change_arme();
  srand(time(NULL));
  choix_arme_pc = (rand() % (8 - 1 + 1)) + 1;
  printf("\nUn ennemi vient d'entrer sur le serveur.");
  if( choix_arme_pc == 1 ) { printf("Il est equipez d'un Desert Eagle."); }
  if( choix_arme_pc == 2 ) { printf("Il est equipez d'un FN Five-Seven."); }
  if( choix_arme_pc == 3 ) { printf("Il est equipez d'un Benelli M3 Super 90 Combat."); }
  if( choix_arme_pc == 4 ) { printf("Il est equipez d'un Benelli xm1014."); }
  if( choix_arme_pc == 5 ) { printf("Il est equipez d'un MP5 Navy."); }
  if( choix_arme_pc == 6 ) { printf("Il est equipez d'un FN P90."); }
  if( choix_arme_pc == 7 ) { printf("Il est equipez d'un Model 4."); }
  if( choix_arme_pc == 8 ) { printf("Il est equipez d'un AK-47."); }
  round();
  return 0;
}

void round()
{
 mode_joueur = 0;
 mode_pc = 0;
 printf("\n");
 system("pause");
 system("cls");
 if(vie_pc <= 0)
 {
 printf("\n\nBRAVO ! Vous avez mis a terre l'ennemi !");
 printf("\nVOUS REMPORTER lA VICTOIRE !\n");
 system("PAUSE");
 return 0;
 }
 if(votre_vie <= 0)
 {
 printf("\n\nVous avez ete mis a terre par l'ennemi !");
 printf("\nVOUS PERDEZ LA PARTIE !\n");
 system("PAUSE");
 return 0;
 }
 nb_round++;
 printf("\n\tRound : %d",nb_round);
 printf("\nL'ennemi a %d de vie. Il vous reste %d de vie",vie_pc,votre_vie);
 printf("\nQue desirez vous faire ?\n");
 printf("\n1. Ouvrir le feu !");
 printf("\n2. Se mettre a couvert !");
 printf("\n3. Changer d'arme.");
 printf("\n\nEntrer votre choix d'action : ");
 scanf("%d",&choix);
 if( choix == 1 ) {
     printf("Vous tirez sur l'ennemi ");
     if( choix_arme == 1 ) { printf("avec un Desert Eagle.");
     tirer_joueur(1);
     }
     if( choix_arme == 2 ) { printf("avec un FN Five-Seven.");
     tirer_joueur(2);
     }
     if( choix_arme == 3 ) { printf("avec un Benelli M3 Super 90 Combat.");
     tirer_joueur(3);
     }
     if( choix_arme == 4 ) { printf("avec un Benelli xm1014.");
     tirer_joueur(choix_arme);
     }
     if( choix_arme == 5 ) { printf("avec un MP5 Navy.");
     tirer_joueur(3);
     }
     if( choix_arme == 6 ) { printf("avec un FN P90.");
     tirer_joueur(choix_arme);
     }
     if( choix_arme == 7 ) { printf("avec un Model 4.");
     tirer_joueur(3);
     }
     if( choix_arme == 8 ) { printf("avec un AK-47.");
     tirer_joueur(choix_arme);
     }
     }
 if( choix == 2 ) {
     printf("Vous vous mettez a couvert pour un round.\nVous gagnez un bonus de protection: les degats font 75pour. en moins.");
     mode_joueur = 2;
     }
 if( choix == 3) {
     change_arme();
     }
 /* L' IA du pc est a mettre ici une fois faite */
 if ( choix_arme_pc == 1 ) {
      tirer_pc(choix_arme_pc);
      }
 if ( choix_arme_pc == 2 ) {
      tirer_pc(choix_arme_pc);
      }
       if ( choix_arme_pc == 3 ) {
      tirer_pc(choix_arme_pc);
      }
 if ( choix_arme_pc == 4 ) {
      tirer_pc(choix_arme_pc);
      }
       if ( choix_arme_pc == 5 ) {
      tirer_pc(choix_arme_pc);
      }
 if ( choix_arme_pc == 6 ) {
      tirer_pc(choix_arme_pc);
      }
       if ( choix_arme_pc == 7 ) {
      tirer_pc(choix_arme_pc);
      }
 if ( choix_arme_pc == 8 ) {
      tirer_pc(choix_arme_pc);
      }
}


Et le deuxieme code a enregistrer sous main.h

Secret (cliquez pour afficher)
/*

Déclarations des variables globales

*/


/* Le jeu */
void round();

/* Nombres */
long choix_arme,choix_arme_pc,nb_round,min_degats,max_degats,degats,mode_joueur,mode_pc,protect75;

long vie_pc = 100;

long votre_vie = 100;

long choix = 0;

/* Prototypes */
double tirer_joueur(long choix_arme);

double tirer_pc(long choix_arme_pc);

double mode_a_couvert();

double change_arme();

/*

Déclarations des modes de jeu

*/


/* Le mode à couvert */

double mode_a_couvert()
{
 degats = degats-((degats*75)/100);
 return;
}

/* Le pc tire */

double tirer_pc(long choix_arme_pc)
{

degats = 0;
     if( choix_arme_pc == 1 )
     {
         min_degats = 10;
         max_degats = 20;
         srand(time(NULL));
         degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
         if (mode_joueur == 2) {
         mode_a_couvert();
         }
         printf("\nL'ennmi tire et vous inflige %d de degats",degats);
         votre_vie = votre_vie - degats;
         round();
         }
     
     if( choix_arme_pc == 2 )
     {
     int i;
     for (i=0; i<4; ++i)
     {
     degats = 0;
     min_degats = 3;
     max_degats = 5;
     degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
     if (mode_joueur == 2) {
     mode_a_couvert();
     }
     printf("\nL'ennmi tire et vous inflige %d de degats",degats);
     votre_vie = votre_vie - degats;
     }
     }
     
          if( choix_arme_pc == 3 )
     {
         min_degats = 2;
         max_degats = 20;
         srand(time(NULL));
         degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
         if (mode_joueur == 2) {
         mode_a_couvert();
         }
         printf("\nL'ennmi tire et vous inflige %d de degats",degats);
         votre_vie = votre_vie - degats;
         round();
         }
     
     if( choix_arme_pc == 4 )
     {
     int i;
     for (i=0; i<2; ++i)
     {
         degats = 0;
     min_degats = 2;
     max_degats = 10;
     degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
     if (mode_joueur == 2) {
     mode_a_couvert();
     }
     printf("\nL'ennmi tire et vous inflige %d de degats",degats);
     votre_vie = votre_vie - degats;
     }
     }
          if( choix_arme_pc == 5 )
     {
     int i;
     for (i=0; i<5; ++i)
     {
         degats = 0;
     min_degats = 2;
     max_degats = 3;
     degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
     if (mode_joueur == 2) {
     mode_a_couvert();
     }
     printf("\nL'ennmi tire et vous inflige %d de degats",degats);
     votre_vie = votre_vie - degats;
     }
     }
          if( choix_arme_pc == 6 )
     {
     int i;
     for (i=0; i<3; ++i)
     {
         degats = 0;
     min_degats = 3;
     max_degats = 5;
     degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
     if (mode_joueur == 2) {
     mode_a_couvert();
     }
     printf("\nL'ennmi tire et vous inflige %d de degats",degats);
     votre_vie = votre_vie - degats;
     }
     }
          if( choix_arme_pc == 7 )
     {
     int i;
     for (i=0; i<2; ++i)
     {
         degats = 0;
     min_degats = 5;
     max_degats = 9;
     degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
     if (mode_joueur == 2) {
     mode_a_couvert();
     }
     printf("\nL'ennmi tire et vous inflige %d de degats",degats);
     votre_vie = votre_vie - degats;
     }
     }
          if( choix_arme_pc == 8 )
     {
     int i;
     for (i=0; i<2; ++i)
     {
         degats = 0;
     min_degats = 4;
     max_degats = 10;
     degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
     if (mode_joueur == 2) {
     mode_a_couvert();
     }
     printf("\nL'ennmi tire et vous inflige %d de degats",degats);
     votre_vie = votre_vie - degats;
     }
     }
     round();
}

/* Le joueur tire */

double tirer_joueur(long choix_arme)
{
degats = 0;
     if( choix_arme == 1 )
     {
         min_degats = 10;
         max_degats = 20;
         srand(time(NULL));
         degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
         printf("\nVous tirez et infligez %d de degats",degats);
         vie_pc = vie_pc - degats;
         }
     if( choix_arme == 2 )
     {
         int i;
         for (i=0; i<4; ++i)
         {
             degats = 0;
         min_degats = 3;
         max_degats = 5;
         srand(time(NULL));
         degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
         printf("\nVous tirez et infligez %d de degats",degats);
         vie_pc = vie_pc - degats;
         }
     }
          if( choix_arme == 3 )
     {
         min_degats = 2;
         max_degats = 20;
         srand(time(NULL));
         degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
         printf("\nVous tirez et infligez %d de degats",degats);
         vie_pc = vie_pc - degats;
         }
              if( choix_arme == 4 )
     {
         int i;
         for (i=0; i<2; ++i)
         {
             degats = 0;
         min_degats = 2;
         max_degats = 10;
         srand(time(NULL));
         degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
         printf("\nVous tirez et infligez %d de degats",degats);
         vie_pc = vie_pc - degats;
         }
     }
                   if( choix_arme == 5 )
     {
         int i;
         for (i=0; i<5; ++i)
         {
             degats = 0;
         min_degats = 2;
         max_degats = 3;
         srand(time(NULL));
         degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
         printf("\nVous tirez et infligez %d de degats",degats);
         vie_pc = vie_pc - degats;
         }
     }
                        if( choix_arme == 6 )
     {
         int i;
         for (i=0; i<3; ++i)
         {
             degats = 0;
         min_degats = 3;
         max_degats = 5;
         srand(time(NULL));
         degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
         printf("\nVous tirez et infligez %d de degats",degats);
         vie_pc = vie_pc - degats;
         }
     }
                             if( choix_arme == 7 )
     {
         int i;
         for (i=0; i<2; ++i)
         {
             degats = 0;
         min_degats = 5;
         max_degats = 9;
         srand(time(NULL));
         degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
         printf("\nVous tirez et infligez %d de degats",degats);
         vie_pc = vie_pc - degats;
         }
     }
                                  if( choix_arme == 8 )
     {
         int i;
         for (i=0; i<2; ++i)
         {
             degats = 0;
         min_degats = 4;
         max_degats = 10;
         srand(time(NULL));
         degats =  (rand() % (max_degats - min_degats + 1)) + min_degats;
         printf("\nVous tirez et infligez %d de degats",degats);
         vie_pc = vie_pc - degats;
         }
     }
        return;
}

/* Le joueur change d'arme */

double change_arme()
{
  printf("\nQuel arme desirez vous ?\n");
  printf("\n------------Les pistolets------------");
  printf("\n1. Desert Eagle (DMG: 10-15)");
  printf("\n2. FN Five-Seven (DMG:3-5, 4 coups par round)\n");
  printf("\n---------Les fusils a pompe----------");
  printf("\n3. Benelli M3 Super 90 Combat (DMG: 2-20)");
  printf("\n4. Benelli xm1014 (DMG: 2-10, 2 coups par round)\n");
  printf("\n------Les mitrailleuses legeres------");
  printf("\n5. MP5 Navy (DMG:2-3, 5 coups par rounds)");
  printf("\n6. FN P90 (DMG:3-5, 3 coups par rounds)\n");
  printf("\n-----------Les fusils---------------");
  printf("\n7. Model 4 (DMG:5-9, 2 coups par round)");
  printf("\n8. AK-47 (DMG:4-10, 2 coups par round)");
  printf("\n\nEntrer votre choix d'arme : ");
  scanf("%ld",&choix_arme);
  if( choix_arme == 1 ) { printf("Vous etes equipez d'un Desert Eagle."); }
  if( choix_arme == 2 ) { printf("Vous etes equipez d'un FN Five-Seven."); }
  if( choix_arme == 3 ) { printf("Vous etes equipez d'un Benelli M3 Super 90 Combat."); }
  if( choix_arme == 4 ) { printf("Vous etes equipez d'un Benelli xm1014."); }
  if( choix_arme == 5 ) { printf("Vous etes equipez d'un MP5 Navy."); }
  if( choix_arme == 6 ) { printf("Vous etes equipez d'un FN P90."); }
  if( choix_arme == 7 ) { printf("Vous etes equipez d'un Model 4."); }
  if( choix_arme == 8 ) { printf("Vous etes equipez d'un AK-47."); }
 return;
}
  • Partager sur Facebook
  • Partager sur Twitter
4 janvier 2006 à 14:03:18

Voici Mon code pour le défi de pile ou face, normalement je ne rencontre plus de bug, donc si vous en trouvez vous, dites le moi :)

Et dites moi ce que vous pensez du code aussi :)

Secret (cliquez pour afficher)
#include <stdio.h>
#include <stdlib.h>

void write_header ();
void affiche_stat ();
int pile_face ();

int bourse = 100;
int win = 0;
int lose = 0;

int main (int argc, char *arv[]) {
    int new_game = 1,end_game = 1, no_letter = 0, mise = 0, choix = 0, hazard = 0;
    char temp[20], saisie[20], again;   
    char resultat[2][4] = { "Pile", "Face" };
   
    do {
       bourse     = 100;
       win        = 0;
       lose       = 0;
       new_game   = 0;
       end_game   = 1;
       mise       = 0;
       choix      = 0;
       hazard     = 0;
       do {
           system("CLS");
           write_header();       
           affiche_stat();
           do {
               no_letter = 0;
               mise = 0;
               printf("\nCombien voulez vous miser ? ");   
               fflush(stdout);
               fgets(saisie, sizeof saisie, stdin);
               no_letter = sscanf(saisie, "%[0-9]s", temp);
               sscanf(saisie, "%d", &mise);
               if (mise > bourse) {
                  printf("\nN'essayez pas de miser plus que ce que vous avez !\n");
                  no_letter = 0;
               }
               if (mise <= 0) {
                  printf("\nIl faut quand meme miser quelque chose !\n");   
                  no_letter = 0;       
               }
           } while (no_letter != 1);
           do {
               no_letter = 0;
               choix = 0;
               printf("\nQuel cote choisissez vous (0 = Pile / 1 = Face) ? ");   
               fflush(stdout);
               fgets(saisie, sizeof saisie, stdin);
               no_letter = sscanf(saisie, "%[0-9]s", temp);
               sscanf(saisie, "%d", &choix);
               if (choix > 1 || choix < 0) {
                   printf("\nVeuillez mettre seulement 0 ou 1 comme chiffre !\n");
                   no_letter = 0;
               }
           } while (no_letter != 1);
           
           hazard = pile_face();
           printf("\nLe resultat est : %c%c%c%c",
                   resultat[hazard][0],
                   resultat[hazard][1],
                   resultat[hazard][2],
                   resultat[hazard][3]
           );
           
           if (hazard == choix) {
              bourse += mise*2;
              win++;           
           } else if (hazard != choix) {
              bourse -= mise;
              lose++;   
           }
           
           printf("\n\n<Appuyer sur une touche pour continuer le jeux>");
           getchar();
           if (bourse == 0) {
              end_game = 0;
           }
       } while (end_game);
       printf("\nVoulez vous rejouez ? (o/n) ");
       fflush(stdout);
       again = getchar();
       if (again == 'o') {
         new_game = 1;                   
       } else {
         new_game = 0;   
       }
    } while (new_game);
   
    return 0;   
}

void write_header () {
     printf("/////////////////////////////////////////");     
     printf("\n/           Game : Pile ou Face         /");
     printf("\n/////////////////////////////////////////");     
     printf("\n/ Le but du jeu est miser des jetons en /");
     printf("\n/ prevoyant sur quel face retombera la  /");
     printf("\n/ piece.                                /");
     printf("\n/////////////////////////////////////////");
}
void affiche_stat () {
     printf("\n--------------------------");
     printf("\n| Bourse de depart : %d", bourse);
     if (win != 0 || lose != 0) {
        printf("\n| Nombre de reussite : %d", win);
        printf("\n| Nombre de defaite  : %d", lose);
     }     
     printf("\n--------------------------\n");
}
int pile_face () {
    int min = 0, max = 1;
    int nbr_hazard = 0;
    srand(time(NULL));
    nbr_hazard = (rand() % (max - min + 1)) + min;   
    return (nbr_hazard);
}

  • Partager sur Facebook
  • Partager sur Twitter
4 janvier 2006 à 14:39:25

Ton code est bon mais seulement je prefère lorsque les valeurs sont toutes en francais, et non pas un mélange de franglais :D même si ça fait plus classe de mettre killed_player, que joueur_tue.
  • Partager sur Facebook
  • Partager sur Twitter
4 janvier 2006 à 14:49:06

J'arrive jamais à faire tout en français ou tout en anglais, comme je choisi mes var au fur et à mesure que je code, ca devient parfois en anglais lorsque je préfère cette sonorité ou bien en français :)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
4 janvier 2006 à 15:24:44

Le mieu, c'est de toujours les nomer en anglais. En plus tu t'asure de la compréhension de tous ceux qui ne parlent pas FR, mais anglais.(Bien que les commentaires restent en francais...)
  • Partager sur Facebook
  • Partager sur Twitter
4 janvier 2006 à 18:16:27

C'était juste pour dire que le "Ping" est très faisable, je vient de la finir a l'instant...
Le problème, c'est que le projet est séparé en plusieurs fichiers alors je ne pouvait pas l'envoyé...
Pour ceux qui voudraient se lancer, j'ai utilisé une matrice ( mais pour ceux qui ne conaissent pas, des variables feront l'affaire ).
Le plateau est dessiné 6x6, mais encore une fois, ceux qui ne conaissent pas les tableaux feraient mieux de le réalisé en 4x4... ;)
Si vous ne conaissez pas le défi, remontez dans les messages déja postés. Allé bonne chance et a+ ! :)
  • Partager sur Facebook
  • Partager sur Twitter
4 janvier 2006 à 20:07:47

Et voici que voila Ma calculette TINTINDINDINTINTINDINDINNNNNNNNN !!!!!
euh.....non mon pile ou face! lol :p
je sais je suis long a la detente mais je suis debutant ! :colere:^^

#include <stdio.h>

int main (int argc, const char * argv[]) {

long choix = 0, tirage = 0, quitter = 0;
const long MAX = 2, MIN = 1;


srand(time(NULL));
tirage = (rand() % (MAX - MIN + 1)) + MIN;



printf("========================================================\n");
printf("=                      Pile ou face ?                   =\n");
printf("========================================================\n");
printf("\n");

do
{

printf("1. Pile\n");
printf("2. Face\n");
printf("Votre choix : ");
scanf("%ld",&choix);
printf("------------------------------------------\n");

if (choix == 2)
{
printf("Vous avez choisi Face !\n");
printf("\n");
}
else if (choix == 1)
{
printf("Vous avez choisi Pile !\n");
printf("\n");
}
else
{
printf("Ce n'est pas dans la liste !\n");
printf("\n");
printf("R&#8730;©esayer tapez 2, Quitter tapez 1\n");
scanf("%ld",&quitter);
}


if (choix == 2 && tirage == 2)
{
printf("C'est Face !\n");
printf("\n");
printf("Vous avez gagner !\n");
printf("\n");
printf("R&#8730;©esayer tapez 2, Quitter tapez 1\n");
scanf("%ld",&quitter);
}
else if (choix == 2 && tirage == 1)
{
printf("C'est Pile !\n");
printf("\n");
printf("Vous avez Perdu !\n");
printf("\n");
printf("R&#8730;©esayer tapez 2, Quitter tapez 1\n");
scanf("%ld",&quitter);
}
else if (choix == 1 && tirage == 1)
{
printf("C'est Pile !\n");
printf("\n");
printf("Vous avez gagner");
printf("\n");
printf("R&#8730;©esayer tapez 2, Quitter tapez 1\n");
scanf("%ld",&quitter);
}
else if (choix == 1 && tirage == 2)
{
printf("C'est Face !\n");
printf("\n");
printf("Vous avez Perdu");
printf("\n");
printf("R&#8730;©esayer tapez 2, Quitter tapez 1\n");
scanf("%ld",&quitter);
}
}while(quitter != 1);

    return 0;
}


  • Partager sur Facebook
  • Partager sur Twitter
5 janvier 2006 à 17:05:08

ALors je pensais que ca serait bien de lancer un défi : Un poker ! :)
Je pense que ca peut etre simple si on s'y prend bien. Il faudra aussi dessiner les cartes a l'écran avec des caractères et pourquoi pas une mise ?

Pour ceux qui ne conaisse pas le principe du jeu, on pioche 5 cartes et l'ordinateur fait de meme, on regarde si on a une combinaison spéciale et puis on rejette les cartes qui ne nous interesse pas... Ensuite on repioche le nombre de cartes enlevées de manière a en retrouver 5. Et on compare notre main avec celle du PC, celui qui a la combinaison la plus forte a gagné.
Voici les combinaisons :

+ paire (deux cartes pareilles, pas forcement de la meme couleur)
+ Brelan (3 cartes pareilles)
+ Full (une paire et un brelan)
+ Suite (5 cartes qui se suivent)
+ Carré (4 cartes pareilles)
+ Flush (5 cartes pareilles)

Peut-etre que j'en oublis, mais le principe est la...
Bonne chance ! ;)
  • Partager sur Facebook
  • Partager sur Twitter
5 janvier 2006 à 17:15:18

Il y a plusieurs sorte de suites il me semble
-petite suite 4 qui ce suivent
-grande suite 5 cartes qui ce suivent
-suite royale 5 carte qui se suivent mais la plus forte etant un AS

Sinon comme défi, j'avais penser a une sorte de Drugswar.
j'en avait fait un sur TI83+ avec plein d'evenement et tout et
sa rendait vraiment pas mal.
En tout cas, ce serait un premiers pas vers un RPG.

a voir... :p

EDIT: voila le code du tour de magie :
Secret (cliquez pour afficher)


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

int main(int argc, char *argv[])
{
  int varmenu = 0;
  int varplayer = 0;
 
  printf("=================================================\n");
  printf("==================tour de magie==================\n");
  printf("=================================================\n\n\n");
  printf("Le but de ce tour de magie etant de choisir\n");
  printf("un nombre dans votre tete compris entre 1 et 63\n");
  printf("que le programme va devoir trouver.\n\n");
  printf("Choisissez votre nombre.....\n");
  menu_debut:
  printf("Attention c'est parti !\n\n");
  system("PAUSE");
 
  printf("Dans cette serie de chiffres, voyez vous le votre ?\n\n");
 
  printf("1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43\n");
  printf("45 47 49 51 53 55 57 59 61 63\n\n");
 
  menu_serie1:
 
  printf("(1) Oui\n");
  printf("(2) Non\n");
  scanf("%ld", &varmenu);
 
  switch(varmenu) {
                  default: goto menu_serie1; break;
                  case 1: varplayer += 1; break;
                  case 2: break;
                  }
  printf("\n\n");
 
  printf("Et dans celle la ?\n\n");
 
  printf("2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31 34 35 38 39 42 43\n");
  printf("46 47 50 51 54 55 58 59 62 63\n\n");
 
  menu_serie2:
 
  printf("(1) Oui\n");
  printf("(2) Non\n");
  scanf("%ld", &varmenu);
 
  switch(varmenu) {
                  default: goto menu_serie2; break;
                  case 1: varplayer += 2; break;
                  case 2: break;
                  }
  printf("\n\n");

  printf("Et dans celle la ?\n\n");
 
  printf("4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31 36 37 38 39 44 45\n");
  printf("46 47 52 53 54 55 60 61 62 63\n\n");
 
  menu_serie3:
 
  printf("(1) Oui\n");
  printf("(2) Non\n");
  scanf("%ld", &varmenu);
 
  switch(varmenu) {
                  default: goto menu_serie3; break;
                  case 1: varplayer += 4; break;
                  case 2: break;
                  }
  printf("\n\n");
 
  printf("Et dans celle la ?\n\n");
 
  printf("8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 40 41 42 43 44 45\n");
  printf("46 47 56 57 58 59 60 61 62 63\n\n");
 
  menu_serie4:
 
  printf("(1) Oui\n");
  printf("(2) Non\n");
  scanf("%ld", &varmenu);
 
  switch(varmenu) {
                  default: goto menu_serie4; break;
                  case 1: varplayer += 8; break;
                  case 2: break;
                  }
  printf("\n\n");
 
  printf("Et dans celle la ?\n\n");
 
  printf("16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 48 49 50 51 52\n");
  printf("53 54 55 56 57 58 59 60 61 62 63\n\n");
 
  menu_serie5:
 
  printf("(1) Oui\n");
  printf("(2) Non\n");
  scanf("%ld", &varmenu);
 
  switch(varmenu) {
                  default: goto menu_serie5; break;
                  case 1: varplayer += 16; break;
                  case 2: break;
                  }
  printf("\n\n");
 
  printf("Et dans celle la ?\n\n");
 
  printf("32 33 34 35 36 37 38 39 40 41 4243 44 45 46 47 48 49 50 51 52\n");
  printf("53 54 55 56 57 58 59 60 61 62 63\n\n");
 
  menu_serie6:
 
  printf("(1) Oui\n");
  printf("(2) Non\n");
  scanf("%ld", &varmenu);
 
  switch(varmenu) {
                  default: goto menu_serie6; break;
                  case 1: varplayer += 32; break;
                  case 2: break;
                  }
  printf("\n\n");
 
  printf("le nombre que vous avez choisi est : %ld !!!\n\n", varplayer);
  system("PAUSE");
 
  menu_fin:
  printf("(1) Recommencer\n");
  printf("(2) Quitter\n");
  scanf("%ld", &varmenu);
 
  switch(varmenu) {
                  default: goto menu_fin; break;
                  case 1: goto menu_debut; break;
                  case 2: break;
                  }
  return 0;
}

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
5 janvier 2006 à 20:32:16

Citation : Jamboneau

Il y a plusieurs sorte de suites il me semble
-petite suite 4 qui ce suivent
-grande suite 5 cartes qui ce suivent
-suite royale 5 carte qui se suivent mais la plus forte etant un AS

Sinon comme défi, j'avais penser a une sorte de Drugswar.
j'en avait fait un sur TI83+ avec plein d'evenement et tout et
sa rendait vraiment pas mal.
En tout cas, ce serait un premiers pas vers un RPG.



Pour faire des prog graphique sur TI, il faut scripter en assembleur :'( En effet, les fonctions de dessin du menu draw sont exesivement longue(Il parait que la TI 89 dispose d'un mode assembleur et d'un mode console... simpas ^^)
  • Partager sur Facebook
  • Partager sur Twitter
5 janvier 2006 à 20:45:48

Je tounait en TI basic moi.
c'est pas un jeu graphique du tout ^_^

d'ailleur j'ai hate de voir le SDL et le réseau.
jme ferai bien une sorte de GTA II un peu comme un mmo
avec une bonne équipe et tout ^_^
  • Partager sur Facebook
  • Partager sur Twitter
6 janvier 2006 à 17:19:01

Ce genre de jeu demande des milliers d'heures de programmation.......

Ps : personne a un nouveau defi realiste a proposer? ;)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
6 janvier 2006 à 17:41:13

je serait bien tenter d'essayer de faire un poker, en stoquant les cartes dans des tableaux (même si sa a pas encore été vu...) mais comment vérifier toutes les combinaisons possibles ? Sa ferait beaucoup, beaucoup de if non ?
  • Partager sur Facebook
  • Partager sur Twitter
6 janvier 2006 à 18:33:16

L'algorithme de Dijkstra est très sympa et utile surtout (il permet de mesurer le chemin le plus court entres deux points, il suffit de trouver une image en fond, et ensuite de cliquer d'ou on veut partir et arriver. L'algo se charge d'afficher le chemin le plus court en passant par les points du réseau créé). Le prob est qu'il faudrait les tableaux et savoir lire dans un fichier ce qui n'a pas été encore vu, donc je vous proposerais ça plus tard.(une librairie graphique est en plus nécessaire mais je l'ai fais sous linux donc impossible de vous filer la mienne)On peut toutefois le faire dans al console et afficher el chemin des distances minimales et des chemins les plus courts entres chaques points.....

En attendant, je propose qu'on essaye de faire un programme dans lequel l'utilisateur doit rentrer la distance a parcourir, la vitesse de l'avion qu'on suppose constante et la résistance du vent.
Le programme doit renvoyer le temps que prendra le trajet sous la forme : heure/minutes/secondes.
Exemple de session :

Citation : session

Entrez la distance à parcourir (en km) : 1000
Entrez la vitesse de l'avion (en km/heure): 1100
Entrez la force du vent (en km/h, négative si elle va dans le sens contraire de l'avion, positive si elle "pousse" l'avion) : -100
Le temps que durera le voyage sera de 1 heure, 0 minute et 0 seconde.



Dans l'exemple ci dessous, j'ai suggéré que le vent faisait face à l'avion, la valeur etait donc négative. Essayez de mettre ou non un 's' après "heure", "minute", "seconde" si c'est nécessaire. Je repasserais ce soir pour vous donner le code (c'est pas bien dur remarque....)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
6 janvier 2006 à 18:34:17

Citation : Jamboneau

Je tounait en TI basic moi.
c'est pas un jeu graphique du tout ^_^

d'ailleur j'ai hate de voir le SDL et le réseau.
jme ferai bien une sorte de GTA II un peu comme un mmo
avec une bonne équipe et tout ^_^



Si tue est vraiment impatien pour la SDL, j'ai poster quelque chose sur le Post : Plan des cours by M@téo, vers la fin.

Alors, un défi. Bon alors réfléchisson, un truque pas dure :D
Allez, un vas faire de la physique.
Les structures electronique, et la loi du duet/octet
Alors, je vais résumer :
Un atome, est constituer de Xproton(+), X photo(-), et N Nautron(on s'en fout, sa change rien ici)
Le but, c'est de trouver "l'ion stable", c'est a dire que se seras un atome, avec XProton, mais Zelectrons ^^(Neutrons on s'en foi encore une fois!)

Donc, pour résumer :
Hydrogène : 1Proton, soit 1electron.
Seulement, on ne trouve jamais 1 atome d'hydrogère tout seul, on en trouve toujours 2! En fait, l'hydrogène a besoin de respecter la règle du duer, c'est a dire 2electrons en couche externe (il n'a qu'une couche)

Pour l'oxygène, je croi que c'est 7electrons:
(K)2 (L)6
Pour simplifier, on a 3 couches par electron :
Couche 1 -> 2 electrons maxi, Couche 2 -> 8 electrons Couche 8 -> 1_ je crois, sa continu mais je conais pas la suite.
Pour équilibrer, tout les atomes, exepter les hydrogène, vons avoir tendence a pencher vers Couche externe = 8 electron. Soit ikls en perde, soit ils en gagnes. Voici quelques exemple :

15 electrons : (K)2 (L)8 (M)5
5+2 = 8, donc on ajoute 2 electrons.
19 electrons : (K)2 (L)8 (M) 9
9-1 = 8, on perd donc 1 electron!

Voila, a vous de doner le programme qui demende NbElectron, et qui afiche perdu/gagner/encie nombre/nouveau nombre...

Edit :

Citation : Thibdumont

L'algorithme de Dijkstra est très sympa et utile...

Connais pas, mais d'après ce que tu décrit, sa doit être intérèssent, esqu'il est simple? Faudras que je jette un oeuille sur Winkipedia...
  • Partager sur Facebook
  • Partager sur Twitter
6 janvier 2006 à 20:03:49

Charge une overview de CS, clique sur deux points de la carte, tu auras le chemin le plus court ^^
C'est assez sympa et pas si compliqué que ça : connaitre les tableaux, les fscanf, fopen, et connaitre comment fonctionne l'algo. Pour la version graphique, il faut une librairie de base qui sait faire des segments et pourquoi pas des petits carrés....
C'est un algo beaucoup utilisé dans les STR pour calculer le chemin que doit prendre une unité pour se rendre d'un point à l'autre....
  • Partager sur Facebook
  • Partager sur Twitter
6 janvier 2006 à 20:11:30

Le code pour la vitesse de l'avion :

Secret (cliquez pour afficher)

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

int main(void)
{
 
  int distance = 0, vitesse = 0, winterforce = 0;
  int heures = 0, minutes = 0, secondes = 0;
 
  printf("Calcul de la duree necessaire au voyage d'un avion.\n\n");
  printf("Entrez la distance a parcourir(en km) :");
  scanf("%ld", &distance);
  printf("\nEntrez la vitesse de l'avion (en km/h):");
  scanf("%ld", &vitesse);
  printf("\nEntrez la vitesse du vent (en km/h peut etre positive et negative) :");
  scanf("%ld", &winterforce);
 
  secondes = ((distance * 3600) / (vitesse + winterforce));
  minutes = secondes / 60;
  heures = minutes / 60;
  minutes -= (heures * 60);
  secondes -= (minutes * 60);
 
  printf("\n\n L'avion va mettre %ld heures, %ld minutes et %ld secondes.\n\n", heures, minutes, secondes);
 
  system("PAUSE");     
  return 0;
}



EDIT : autant pour moi, mon code ne marche que pour les valeurs d l'exemple,
j'aid es probleme de type *-)

RE-EDIT : sa y est sa marche. un probleme de priorité dans mes calcul !
  • Partager sur Facebook
  • Partager sur Twitter
6 janvier 2006 à 21:20:59

Il y a un probleme avec les secondes...

Secret (cliquez pour afficher)


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

int main(void)
{

  int speed,d,wind,t,h,m,s;

  printf("Entrez la vitesse de l'avion en km/h : ");
  scanf("%d",&speed);
 
  printf("Entrez la distance a parcourir en km : ");
  scanf("%d",&d);

  printf("Entrez la vitesse du vent en km/h : ");
  scanf("%d",&wind);

  t=d*3600/(speed+wind);
  h=t/3600;
  m=(t%3600)/60;
  s=(t%3600)%60;
 
    printf("Le temps necessaire pour atteindre la destination sera de %d heures %d minutes %d secondes\n",h,m,s);
    system("PAUSE");
   
return EXIT_SUCCESS;
}


  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 4:07:02

Pour ce qui est de la recherche du chemin le plus court, après avoir fait pas mal de recherche là dessus j'ai trouvé que l'algorythme le plus utilisé était le A* (prononcer "A star"). J'en avais fait une version en Action Script (Flash).

En ce qui concerne les petits jeux, je me suis permis d'en faire un petit, il utilise les pointeurs et les tableaux, mais pour ceux qui ont pris de l'avance sur les cours...
Le but du jeu est de rendre la grille 5 x 5 pleine de 0 (lumière éteinte sur le "vrai" jeu), sachant que lorqu'on "appuie" sur une case, l'ensemble des cases autour change de nombre (1 deviens 0 et 0 deviens 1).
comme ceci :

A B C D E
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 1
4 0 0 0 0 0
5 0 0 0 0 0

si on appuie en D3

A B C D E
1 0 0 0 0 0
2 0 0 0 1 0
3 0 0 1 1 0
4 0 0 0 1 0
5 0 0 0 0 0


Voila le code (en secret vu que des gens veulent pas voir !)
NB : j'utilise la librairie string.h pour la comparaison de 2 tableau, je n'ai pas trouvé mieux.
Ce code a été codé sous Linux (avec emacs :D merci bluestorm), je ne l'ai pas testé sous les autres OS
Secret (cliquez pour afficher)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void affich(int *lien) //affiche la grille
{
  int i;
  int table [25];
 
  //récupère les valeurs depuis la mémoire
  for (i=0;i<25;i++) {
    table[i] = *lien;
    lien++;
  }

  //affichage
  printf("  A B C D E\n1 %d %d %d %d %d\n2 %d %d %d %d %d\n3 %d %d %d %d %d\n4 %d %d %d %d %d\n5 %d %d %d %d %d\n",
         table[0],table[1],table[2],table[3],table[4],
         table[5],table[6],table[7],table[8],table[9],
         table[10],table[11],table[12],table[13],table[14],
         table[15],table[16],table[17],table[18],table[19],
         table[20],table[21],table[22],table[23],table[24]
         );
}

int main() //fonction principale
{
  int cases [5][5]; //grille de jeu
  int zero [5][5]//grille de référence
  int i,j;          //variables de boucles for
  int coordx;       //coordonnée du "clic" en x
  int coordy;       //coordonnée du "clic" en y
  int fin = 0//variable pour fin
  char reponse [3]; //stocke la réponse de l'utilisateur
 
  //initialisation de la grille et de la grille de référence
  for (i=0;i<5;i++) {
    for (j=0; j<5; j++) {
      cases[i][j] = 0;
      zero[i][j] = 0;
    }
  }
  cases[1][0] = 1;
  cases[0][0] = 1;
  cases[1][2] = 1;
  cases[0][2] = 1;
  cases[1][4] = 1;
  cases[0][4] = 1;
  cases[3][0] = 1;
  cases[4][0] = 1;
  cases[3][2] = 1;
  cases[4][2] = 1;
  cases[3][4] = 1;
  cases[4][4] = 1;


  do {
    affich((int*)cases)//affichage
    printf("coordonnées ?\n"); //demande la coordonnée
    do {
      scanf("%s",reponse)
      coordx = 5;
      coordy = 5;
      //analyse de la réponse du joueur
      if ((reponse[0]==81)||(reponse[0]==113)) { //81 et 113 corresponde à Q et q
        fin = 1; //le joueur veut quitter
        break;
      } else {
        if (reponse[0]<=53) {
          if (reponse[1]<=69) {
            coordy=reponse[1]-65; //65 correspond à la lettre A
          } else {
            coordy=reponse[1]-97; //97 correspond à la lettre a
          }
          coordx=reponse[0]-49; //49 correspond au chiffre 1
        } else {
          if (reponse[0]<=69) {
            coordy=reponse[0]-65; //65 correspond à la lettre A
            coordx=reponse[1]-49; //49 correspond au chiffre 1
          } else {
            coordy=reponse[0]-97; //97 correspond à la lettre a
            coordx=reponse[1]-49; //49 correspond au chiffre 1
          }
        }
      }
      //on reboucle si les coordonnées ne sont pas valides
    } while ((coordx<0)||(coordx>4)||(coordy<0)||(coordy>4));
    if (!fin) {
      //modification des cases de la grille en fonction
      //des coordonnées
      cases[coordx][coordy] = 1-cases[coordx][coordy];
      if (coordx>0) {
        cases[coordx-1][coordy] = 1-cases[coordx-1][coordy];
      }
      if (coordx<4) {
        cases[coordx+1][coordy] = 1-cases[coordx+1][coordy];
      }
      if (coordy>0) {
        cases[coordx][coordy-1] = 1-cases[coordx][coordy-1];
      }
      if (coordy<4) {
        cases[coordx][coordy+1] = 1-cases[coordx][coordy+1];
      }
    } else {
      break; //fin de la boucle si le joueur quitte
    }
    //on reboucle si la grille n'est pas identique
    //à la grille de référence
  } while (memcmp(cases,zero,sizeof(cases)));

  //messages de fin de programme
  if (!fin) {
    affich((int*)cases);
    printf("\nBravo, tu as réussi à résoudre le problème\n");
  } else {
    printf("\nQuit\n");
  }
  return 0;
}


bluestorm (et les autres emaciens) vous faites comment pour copier le texte vers une autre appli ? et aussi pour conserver la disposition interne des fenetres ??
  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 12:00:23

Salut, j'ai un autre défi sur les allumettes a vous proposer :) (un pti peu plus dur)

défi n°(c'est le combien déjà...7,8?)Allumettes bis
les allumettes sont disposées comme ceci :

|
|||
|||||
|||||||

2 modes de jeu : a 2 joueur ou contre l'ordi (c'est là que ça ce complique..)
principe du jeu :
* a chaque tour, on peu prendre autant d'allumettes que l'on veut sur une seule ligne (que l'on choisis), on en prend au minimum une.
* celui qui prend la dernière a perdu.


voilà, aller au boulo. (ps réfléchissez un peu avant de vous lacer dans l'IA, c'est pas toujours évident ^^ )
  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 12:45:51

Je ne trouve pas de doc sur le A*, pourrais tu me donner un lien sur la page web où tu as vu son fonctionnement ?
  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 13:29:22

Je n'ai pas de doc en français dessus, mais voici un lien vers un site (en anglais donc) qui explique bien le principe :
http://theory.stanford.edu/~amitp/GameProgramming/

Pour ce qui est de l'exemple de fonctionnement voila un petit truc que j'ai fait en Flash, j'ai essayé d'optimiser, notament avec des binary heaps, mais l'action script étant quasiment du language interprété, c'est un peu lent comme système.
http://pierre.m.free.fr/zeros/Astarmodif3.swf
  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 13:48:09

Citation : Stingy

Salut, j'ai un autre défi sur les allumettes a vous proposer :) (un pti peu plus dur)

défi n°(c'est le combien déjà...7,8?)Allumettes bis
les allumettes sont disposées comme ceci :

|
|||
|||||
|||||||

2 modes de jeu : a 2 joueur ou contre l'ordi (c'est là que ça ce complique..)
principe du jeu :
* a chaque tour, on peu prendre autant d'allumettes que l'on veut sur une seule ligne (que l'on choisis), on en prend au minimum une.
* celui qui prend la dernière a perdu.



voilà, aller au boulo. (ps réfléchissez un peu avant de vous lacer dans l'IA, c'est pas toujours évident ^^ )


euh faudrait put-etre mettre une limite d'allumette a prendre si on c'es trop facil: on enlèver toute les allumettes sauf une et le prochaine qui joue a perdu , enfin si ca se deroule sur plusieur ligne ca doit pas poser de problème immmédiat mais la partie se termeine quand meme assez vite et il suffit de calculer le nombre de tours possible pour gagner...
  • Partager sur Facebook
  • Partager sur Twitter