maitretarot-devel-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Maitretarot-devel-fr] les encheres ne marche toujours pas


From: Yves Mettier
Subject: Re: [Maitretarot-devel-fr] les encheres ne marche toujours pas
Date: Sun, 12 May 2002 20:22:41 +0200

On 12 May 2002 15:13:25 +0200
philippe brochard <address@hidden> wrote:

> 
> bon, j'ai vraiment un probleme avec les encheres.
> voila le code que j'ai fait et la partie du protocole qui va avec :
> 
> 
> ---------------------------------------------------------------------
> ------ La sequence suivante est repetee quatre fois:
> S->C(4*gint) : chaque gint correspond à l'enchère du joueur dans
>              l'ordre des places. Ils sont à -1 si le joueur n'a pas
>              encore parlé. C'est au client de déterminer grace à ces
>              enchères qu'elle est sa position.
> S->C(1*gint) : Si le gint est non nul, on passe à la suite. S'il est
> nul,
>                on revient à l'étape précédente (attendre les 4*gint).
> C->S(1*gint) : Uniquement si le gint précédent était non nul. Mise du
> client.
>                Si la valeur est erronée, le serveur considère que le
>              client passe.
> Fin de la sequence
> 
> S->C(4*gint) : resultat final des enchères. C'est au client de savoir
>              si quelqu'un a pris et qui.  Si personne n'a pris, les
>              4 gint sont à 0, et c'est au client de savoir qu'on va
>              voir le chien puis recommencer la partie.
> ---------------------------------------------------------------------
> ------
> 
> 
> dans mt_ncurses_client/src/main.c
> ---------------------------------------------------------------------
> ------
>   for (gi = 0; gi < nb_player; gi++)
>     {
>       ok = 0;
> 
>       while (ok == 0)
>       {
>         player_get_bid (&player);
> 
>         player_client_draw_desktop (&player, "Player ??? make its
>         bid");
> 
>         ok = player_get_bid_is_valide (&player);
>       }
> 
>       if (player_have_to_make_bid (&player) != 0)
>       {
>         player_client_make_bid (&player);
>         player_send_bid (&player);
>       }
> 
>       sprintf (str, "ICI gi=%d", gi);
>       print_message (str);
>     }
> 
>   /* Get final bids */
>   player_get_bid (&player);
> ---------------------------------------------------------------------
> ------
> 
> 
> le code pour chaque fonctions est dans
> 
>         mt_ncurses_client/src/player.c
> ou      mt_ncurses_client/src/player_client.c
> 
> et nb_player vos 4.
> 
> 
> Si vous voyez ou je fait une erreur...

Je capte rien a la structure de ton code. J'ai l'impression qu'il y a
une boucle de trop.

Je te le refais, en esperant pas me tromper.
   for (gi = 0; gi < nb_player; gi++)
     {
       ok = 0;
 
       /* lit les 4+1 gint */
       player_get_bid (&player);
 
       player_client_draw_desktop (&player, "Player ??? make its bid");

/*     c'est quoi player_get_bid_is_valide() ?
 *     Je commente parce que je crois que ca ne sert pas
 *     ok = player_get_bid_is_valide (&player);
 */

       /* test si c'est au joueur de faire son enchere
        * ici, il vaut mieux tester en fonction des 4 premiers gint
        *  plutot qu'en fonction du gint qui suit
        *  parce que le gint qui suit risque de disparaitre
        */
       if (player_have_to_make_bid (&player) != 0)
        {
          /* Calcule l'enchere possible en fonction du jeu des des
           * encheres deja faites des autres joueurs
           */
          player_client_make_bid (&player);
          /* envoie un gint: c'est l'enchere */
          player_send_bid (&player);
        }
 
       sprintf (str, "ICI gi=%d", gi);
       print_message (str);
     }



> 
> En tout cas, la partie avec
>       sprintf (str, "ICI gi=%d", gi);
>       print_message (str);
> 
> n'est atteinte qu'une fois et on ne sort jamais de la boucle for,
> en plus des fois sa segfault :(

J'ai pas teste ce que je t'ai ecrit.
J'ai l'impression que ton while ne sert a rien.

> bon en attendant, je teste la lib de maitretarot.

Alors?

De mon cote, j'ai quelques trucs a faire sur gtktalog.
Ensuite, je forke maitretarot dans le CVS pour le compiler contre
libmaitretarot.

Un petit truc sur les clients et libmaitretarot.
Est-ce qu'il est envisageable d'avoir les fonctions qui lisent/ecrivent
au serveur suivant le protocole dans libmaitretarot?
Le but, c'est bien sur que le code commun a toutes les IA et a toutes
les GUI ne soit pas duplique mais dans libmaitretarot.

Yves


-- 
- Homepage - http://ymettier.free.fr                   -
- GPG key  - http://ymettier.free.fr/gpg.txt           -
- MyAM     - http://www.freesoftware.fsf.org/myam      -
- GTKtalog - http://www.freesoftware.fsf.org/gtktalog  -




reply via email to

[Prev in Thread] Current Thread [Next in Thread]