[Top][All Lists]
[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 -