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

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

Re: [Maitretarot-devel-fr] interface de demarrage.


From: philippe brochard
Subject: Re: [Maitretarot-devel-fr] interface de demarrage.
Date: 02 Oct 2002 19:16:16 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Yves Mettier <address@hidden> writes:

[manifestement, mon mail n'est pas passe sur la ml:
je le renvoi]

> On 01 Oct 2002 23:57:17 +0200
> philippe brochard <address@hidden> wrote:
> 
> > Yves Mettier <address@hidden> writes:
> > 
> > > On 01 Oct 2002 19:39:32 +0200
> > > philippe brochard <address@hidden> wrote:
> > > 
> > > > 
> > > > Coucou,
> > > > 
> > > > bon apres mure reflexion, je pense que la partie
> > > > connexion n'a rien a faire dans le client gtk (ni dans
> > > > les autres clients, ni dans l'IA, ni dans le serveur,
> > > > d'ailleurs).
> > > > 
> > > > Il faut qu'on fasse une interface independante qui lance
> > > > le serveur, les IA et les clients et qui cache les details
> > > > des operations.
> > > 
> > > Euh, pas tout a fait d'accord. Explication plus bas.
> > > 
> > > > Cette interface pourra presenter les 2 niveaux de jeux que
> > > > Yves as defini :
> > > > 
> > > >    Jeux seul : le serveur + 3 IA + le client Gtk pour jouer.
> > > >         (tout ca sur la meme machine et sans donner le detail
> > > >         du host/port, nom...)
> > > 
> > > La, y'a pas d'interface du tout. Donc le client gtk doit etre
> > > capable de lancer maitretarot s'il n'est pas deja lance, et 3 IA.
> > > Tout ca doit etre invisible pour l'utilisateur qui doit croire
> > > qu'il n'y a qu'un seul programme.
> > > C'est en cela que je ne suis pas d'accord avec toi.
> > > 
> > 
> > Avec le principe de l'interface, l'utilisateur se trouve d'abord
> > devant une fenetre avec les 2 boutons :
> > 
> >         jeu seul
> > 
> >         jeu en reseau
> > 
> > s'il click sur jeu seul, alors on lance le serveur, les 3 IA et le
> > client gtk (sans rien lui demande). Je ne vois pas comment il peut
> > savoir que c'est un autre programme qu'on lance. Pour lui la fenetre
> > de lancement sera simplement une fenetre d'accueil (ou on revient en
> > fin de partie apres la deconnexion).
> 
> oui
> 
> > 
> > c'est seulement dans le cas de la partie en reseau qu'il pourra se
> > rendre compte qu'on lance separement les clients et les IA (et
> > encore, puisque la aussi tout est masque par des boutons a cocher).
> 
> oui
> 
> > 
> > C'est en gros et de tres loin, la comparaison entre l'interface du
> > Gimp(plusieurs fenetres separees) et celle de photoshop (une seul
> > fenetre qui reuni tout).
> > Je prefere l'interface du Gimp car elle est beaucoup plus modulaire
> > et souple.
> 
> ah.
> Jamais vu photoshop en fait, moi.
> 
tu as deja vu une application Windows. En general c'est une grosse
fenetre qui gere tout le programme et si on a besoin de petites
fenetres, elles sont ouvertes dans la fenetre principale.
Le Gimp, c'est l'inverse, on a plein de petites fenetres separees.

Ici, la premiere fenetre c'est l'interface, la deuxieme le client
gtk => l'utilisateur ne voit pas qu'il y a 2 programmes differents.

> DOnc notre desaccord du mail precedent vient que je ne suis pas sur
> qu'on s'est bien compris sur un point quand on fait une partie 1
> joueur contre 3 IA. Dans ce cas, on a bien juste le client qui lance
> directement maitretarot et les 3 IA. On n'a pas le programme
> intermediaire qui sert de front-end graphique a maitretarot.
> 
Je suis tout a fait d'accord sur le point qu'il faut que l'interface
soit la plus simple possible.
Ce que je propose juste c'est de faire une application separee qui
lance les differents programmes de maniere simple.

    Le bouton "Jeu Seul" : lance le serveur, 3 IA et le client gtk
        (sans rien demander a l'utilisateur)

    Le bouton "Jeu en reseau" : lance le serveur, les IA de maniere
        separes.

(voir plus bas pour plus d'explications)
> > 
> > 
> > > >    Jeux en reseau : le serveur (s'il y a lieu) + des IA +
> > > >         1 ou des clients (avec le detail : quelle IA, quel
> > > >         port/host, quel client ...).
> > > 
> > > Oui.
> > > 
> > > > les IA et les clients n'etant la que pour jouer une partie
> > > > (plusieurs donnes mais toujours avec les memes gens connectes)
> > > > 
> > > > 
> > > > En fait, cette interface remplacera les scripts que j'ai inclus
> > > > dans le client Gtk et qui n'ont rien a faire la.
> > > 
> > > Non, completer
> > > Tes scripts sont toujours necessaires pour deboguer dans certains
> > > cas!
> > > 
> > > > Donc, si je suit cette logique, il reste a enlever le menu
> > > > Start Programs du client, la page de login (host+port+nom)
> > > > et attaquer directement sur une partie. La connection ayant
> > > > deja ete geree par une autre application.
> > > 
> > > oui!
> > > 
> > on vire Start Programs du client : c'est le memu qui permet 
> > de lancer le serveur et les IA, pas seulement Advanced Start
> > (mes scripts)
> > Le client n'a pas a gerer la demande de connexion, ni a
> > savoir quoi lancer (le serveur et d'autre IA), c'est a une
> > application au dessus du serveur, des IA et des clients de
> > s'en charger -> l'interface d'accueil de l'utilisateur.
> 
> Mmmmh, y'a effectivement desaccord, la.
> Pour moi, quand y'a 1 joueur et 3 IA, mt_gtk_client est capable de
> lancer maitretarot et 3 IA.

Nan, c'est pas a lui de faire ca.

> C'est un choix possible, et le tien en est un autre possible.
> Mais je crois que c'est plus simple de faire un simple fork+exec pour
> maitretarot et les 3 IA que de faire un fork+exec d'une interface qui
> elle va faire le fork+exec pour maitretarot et les 3 IA.
> 
la y a un fork+exec en trop. 

Ce que je propose c'est que l'utilisateur lance le programme
tarot qui est l'interface devant laquelle il se trouve quand
il veut jouer (seul ou en reseau) => 2 boutons.

Suivant le type de jeu, ce programme tarot lance :

        Jeu seul : serveur + 3 IA + client gtk
                et le joueur joue avec le client gtk
                sans avoir a repondre a des questions sur l'host/port,
                les noms ...

        Jeu en Reseau : Serveur + IA + client
                avec un peu plus de question : port/host, nom ...
                (voir choix du client (exemple pour etre spectateur)).

Donc ce n'est pas le client qui gere les exec mais l'interface
(donc les 2 methodes sont aussi simples).

Avec un petit schema ca sera plus clair :

Avec la connexion dans le client gtk :

                mt_gtk_client (gestion des exec)
                 |    |    |
                 |    |    |
                 /    |    \
             serveur  |    3 IA
                      |
                debut du jeu




Avec la connexion dans l'interface :

               interface (gestion des exec)
                |    |    |
                |    |    |
                /    |    \
           serveur   |   3 IA
                     |
                  client (gtk, ncurses ou autre)
                     |
                     |
                debut du jeu


La deuxieme methode permet de centralise la gestion
des exec, c'est a dire que le code pour lancer les clients
se trouve dans l'interface et est commum pour tout les
clients (apres on peut faire une interface en gtk, une
en ncurses, des scripts...).

Cette methode permet aussi de centraliser le fichier de
configuration (au moins pour la partie ligne pour lancer le
serveur et les IA).

Je trouve cette methode beaucoup plus souple car comme ca
chacun peut faire se qu'il veut pour lancer le jeu
(=> on n'est pas oblige d'imposer une methode et une seule).


Un exemple de fonctionnement de ce genre d'interface c'est
Xblast.

XBlast est un serveur qui se lance en ligne de commande
=> avec toutes les options pour lancer le serveur et des
clients qui se connectent.

TkXBlast est une interface en Tcl/Tk qui simplifie le
lancement du serveur (combien de joueur, les noms, les
couleurs...). Il peut aussi exister des interfaces en
ncurses ou en gtk mais je ne les connais pas.

Ca fonctionne exactement sur le principe que j'ai decrit
plus haut.


=> Ce n'est pas au client de gerer la connexion mais ce
n'est pas pour autant que l'utilisateur se retrouve devant
une interface compliquee. Il a juste affaire a un programme
qui en lance un autre des maniere transparente.



Philippe


-- 
,-------------------.          ,---------------.
| Philippe Brochard |   ...    | address@hidden `------.
`------------------(_  (. .)   | http://hocwp.free.fr |
-------------------ooO--(_)--Ooo-----------------------




reply via email to

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