Bonjour
je cherche à développer un petit logiciel en Eiffel qui permet de tester des martingales à la roulette
Je bute sur un problème sans doute simple : passer une fonction en paramètre
Pour tester si les n derniers numéros sont d'un même type de chance simple (rouge, noir, pair impair, passe manque) je pensais faire la routine suivante :
n_derniers_identiques(n: INTEGER;test: FUNCTION[ANY,TUPLE,BOOLEAN]) : BOOLEAN
--
-- Vrai si les n derniers numéros sortis sont du même type : n rouge ou n noir ou ........
--
-- require au_moins_n_sortis: index_premier_libre > n
do
if index_premier_libre > n then
Result := tableau_numeros.subarray(index_premier_libre - n,index_premier_libre -1).for_all (agent test)
else
Result := False
end
end
l'appel se ferait sous la forme trois_derniers_rouges := n_derniers_identiques(3,agent est_rouge)
La permanence (table des numéros sortis) est de type ARRY[NUMERO]
NUMERO fourni les fonctions sur un numéro est_rouge, est_noir, est_passe, est_manque, est_pair, est_impair
Cette formulation provoque une erreur de compilation
Ca doit être tout simple mais je débute
Merci d'avance