eliot-dev
[Top][All Lists]
Advanced

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

[Eliot-dev] optimisation board_search


From: Philippe Chataignon
Subject: [Eliot-dev] optimisation board_search
Date: Mon, 12 Jan 2009 21:38:33 +0100

Bonjour,
un très grand bravo pour Eliot qui, grâce à la fourniture des sources,
permet d'adapter le programme à ses propre besoins.

De mon côté, depuis plusieurs années, je suis reparti d'Eliot pour en
faire un générateur de parties qui alimente ensuite un serveur et des
clients (en Python et avec wxpython pour le client) pour jouer en
duplicate (à l'occasion je peux fournir ces programmes à ceux qui sont
intéressés).

Je suis reparti de la version 1.4 en C et j'utilise les programmes
sous dic/ et game/ mais pas l'interface graphique. J'ai regardé les
programmes de la version 1.7a et j'ai vu qu'il y avait une
optimisation dans board_search. J'ai transposé cette optimisation en C
et je me suis rendu compte qu'il y avait un problème quand il y avait
un joker dans le tirage. Je me suis dis que c'est ce qui avait
justifié le passage de la 1.7 à la 1.7a et j'ai regardé les
modifications.

De mon coté, en C, dans board_search, j'ai mis le booléen match à True
dès qu'il y a un joker dans le tirage et ça marche. J'ai vu que
l'option choisie dans Eliot est de modifier la fonction check dans
cross en ajoutant un test :
return m_mask & (1 << iTile.toCode()) || (iTile.isPureJoker() && m_mask);

Ma question est : n'y a-t-il pas encore un problème avec le deuxième
terme qui vaut True si le dernier bit de m_mask vaut 1 (la lettre a
est dans le masque de cross ? dans la version C il est toujours à 0).
Ne vaut-il pas mieux avoir seulement :
return m_mask & (1 << iTile.toCode()) || (iTile.isPureJoker());

Cordialement,
-- 
PhC




reply via email to

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