site de Fabien Torre


Source de hanoi.xsl

<?xml version="1.0" ?>
<!-- -*- coding: utf-8 -*- -->
<xsl:stylesheet version="1.0">
<xsl:output method="xml" indent="yes" />
<!-- Programme principal -->
<xsl:template match="/">
<hanoi_solution>
<xsl:call-template name="DéplacerPlateau">
<xsl:with-param name="nombre" select="hanoi/param[@name='nb']/@value" />
<xsl:with-param name="départ" select="hanoi/param[@name='départ']/@value" />
<xsl:with-param name="arrivée" select="hanoi/param[@name='cible']/@value" />
<xsl:with-param name="autre" select="hanoi/param[@name='auxiliaire']/@value" />
</xsl:call-template>
</hanoi_solution>
</xsl:template>
<!-- Résolution des Tours de Hanoï -->
<xsl:template name="DéplacerPlateau">
<xsl:param name="nombre" />
<xsl:param name="départ" />
<xsl:param name="arrivée" />
<xsl:param name="autre" />
<xsl:if test="$nombre > 0">
<xsl:call-template name="DéplacerPlateau">
<xsl:with-param name="nombre" select="$nombre - 1" />
<xsl:with-param name="départ" select="$départ" />
<xsl:with-param name="arrivée" select="$autre" />
<xsl:with-param name="autre" select="$arrivée" />
</xsl:call-template>
<move>
<xsl:attribute name="start">
<xsl:value-of select="$départ" />
</xsl:attribute>
<xsl:attribute name="end">
<xsl:value-of select="$arrivée" />
</xsl:attribute>
</move>
<xsl:call-template name="DéplacerPlateau">
<xsl:with-param name="nombre" select="$nombre - 1" />
<xsl:with-param name="départ" select="$autre" />
<xsl:with-param name="arrivée" select="$arrivée" />
<xsl:with-param name="autre" select="$départ" />
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Fabien Torre Valid HTML5! Valid CSS!
site de Fabien Torre, université de Lille