<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.windowstecnico.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Windows Técnico : Visual Studio</title><link>http://www.windowstecnico.com/archive/tags/Visual+Studio/default.aspx</link><description>Etiquetas: Visual Studio</description><dc:language /><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>Evento de lanzamiento de VS2012</title><link>http://www.windowstecnico.com/archive/2012/09/26/evento-de-lanzamiento-de-vs2012.aspx</link><pubDate>Wed, 26 Sep 2012 08:07:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:9845</guid><dc:creator>Ioseba Palop</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.windowstecnico.com/rsscomments.aspx?PostID=9845</wfw:commentRss><comments>http://www.windowstecnico.com/archive/2012/09/26/evento-de-lanzamiento-de-vs2012.aspx#comments</comments><description>&lt;p align="justify"&gt;&amp;iexcl;Ya tenemos fecha de lanzamiento de Visual Studio 2012! &lt;br /&gt;Microsoft Espa&amp;ntilde;a ha preparado un &lt;a href="http://msdn.microsoft.com/es-es/vstudio/hh531587"&gt;evento de lanzamiento del entorno de desarrollo&lt;/a&gt; por excelencia, Visual Studio 2012. Recordad que es necesario registrarse para poder asistir. Las fechas elegidas son:&lt;/p&gt;
&lt;p&gt;&amp;middot; Madrid, Teatro Goya, 2 de Octubre 09:30.&lt;/p&gt;
&lt;p&gt;&amp;middot; Barcelona, Hotel Hesperia Tower, 4 de Octubre 09:30.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image002_5F00_57E45949.jpg"&gt;&lt;img height="426" width="590" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image002_5F00_thumb_5F00_6468C862.jpg" alt="clip_image002" border="0" title="clip_image002" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;i&gt;Figura 01 &amp;ndash; Agenda de la presentaci&amp;oacute;n de VS2012&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Entre otras muchas novedades, encontraremos una interfaz renovada al estilo Windows 8, herramientas de administraci&amp;oacute;n del ciclo de vida de las aplicaciones, plantillas y herramientas para la creaci&amp;oacute;n y distribuci&amp;oacute;n de aplicaciones Windows 8 y compatibilidad integrada con la nube.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image004_5F00_10E1D27C.jpg"&gt;&lt;img height="364" width="605" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image004_5F00_thumb_5F00_74F09D83.jpg" alt="clip_image004" border="0" title="clip_image004" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;i&gt;Figura 02 &amp;ndash; Nueva interfaz 2012&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Si quieres aprender mucho m&amp;aacute;s sobre los secretos de lo sistemas Microsoft Windows, te recomendamos leer &lt;a href="http://www.informatica64.com/libros.aspx?id=mswindows"&gt;el libro de Sergio de los Santos &amp;ldquo;&lt;em&gt;M&amp;aacute;xima Seguridad en Windows: Secretos T&amp;eacute;cnicos&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;rdquo;.&lt;/em&gt;Si quieres aprender m&amp;aacute;s secretos, configuraciones, integraciones, desarrollo de PowerShell te recomendamos leer &lt;a href="http://informatica64.com/libros.aspx?id=ps"&gt;&lt;em&gt;el libro de Pablo Gonz&amp;aacute;lez y Ruben Alonso &amp;ldquo;PowerShell: La navaja suiza de los administradores de sistemas&amp;rdquo;&lt;/em&gt;&lt;/a&gt; y, por &amp;uacute;ltimo, te recordamos que si te ha gustado el art&amp;iacute;culo puedes suscribirte al &lt;a href="http://feeds2.feedburner.com/WindowsTecnico"&gt;Canal RSS de Windows T&amp;eacute;cnico&lt;/a&gt; para estar al d&amp;iacute;a de las novedades e informaci&amp;oacute;n t&amp;eacute;cnica de inter&amp;eacute;s.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://feeds2.feedburner.com/WindowsTecnico"&gt;&lt;img height="25" width="133" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/imagewindowstecnico_5F00_thumb_5F00_229DC620.png" alt="imagewindowstecnico" border="0" title="imagewindowstecnico" style="display:block;float:none;margin-left:auto;margin-right:auto;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.windowstecnico.com/aggbug.aspx?PostID=9845" width="1" height="1"&gt;</description><category domain="http://www.windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://www.windowstecnico.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://www.windowstecnico.com/archive/tags/Programacion/default.aspx">Programacion</category><category domain="http://www.windowstecnico.com/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Desarrollo de aplicación de ejemplo Windows 7 Multitouch: “Simón Dice Renewed” .Anexo</title><link>http://www.windowstecnico.com/archive/2011/09/15/desarrollo-de-aplicaci-243-n-de-ejemplo-windows-7-multitouch-sim-243-n-dice-renewed-anexo.aspx</link><pubDate>Thu, 15 Sep 2011 19:06:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:7169</guid><dc:creator>Jhonattan Fiestas</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.windowstecnico.com/rsscomments.aspx?PostID=7169</wfw:commentRss><comments>http://www.windowstecnico.com/archive/2011/09/15/desarrollo-de-aplicaci-243-n-de-ejemplo-windows-7-multitouch-sim-243-n-dice-renewed-anexo.aspx#comments</comments><description>&lt;p class="MsoListParagraph" style="line-height:13pt;margin:0cm 0cm 10pt 36pt;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="line-height:normal;margin:0cm 0cm 10pt 36pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;La presente entrada corresponde con el anexo anunciado en el post previo con el cual se pretende cerrar la dilatada serie &amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;&lt;a href="http://www.windowstecnico.com/search.aspx?q=simon+dice"&gt;&lt;span style="color:#0000ff;"&gt;Desarrollo de aplicaci&amp;oacute;n de ejemplo Windows7 Multitouch: Simon Dice Renewed&lt;/span&gt;&lt;/a&gt;&lt;/i&gt;&amp;rdquo; sobre el comportamiento de la aplicaci&amp;oacute;n de ejemplo Sim&amp;oacute;n Dice.     &lt;br /&gt;Durante el transcurso del an&amp;aacute;lisis se presentaran diversas formas de ver el juego que han sido desarrollados por diversas personas, que a lo largo del tiempo han dedicado parte de su tiempo a programar este juego, cada uno con su toque personal y diferente.&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="line-height:normal;margin:0cm 0cm 0pt 36pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="center" class="MsoListParagraphCxSpLast" style="line-height:normal;margin:0cm 0cm 10pt 36pt;"&gt;&lt;span style="mso-fareast-language:es;mso-no-proof:yes;"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0014_5F00_09C0B36A.png"&gt;&lt;img height="168" width="301" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0014_5F00_thumb_5F00_34F524A4.png" alt="clip_image001[4]" border="0" title="clip_image001[4]" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;Como se ven&amp;iacute;a comentando en la anterior entrada, en esta ocasi&amp;oacute;n se centrara la atenci&amp;oacute;n en definir las &amp;uacute;ltimas funciones pertenecientes a la clase &amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;MainWindow&lt;/i&gt;&amp;rdquo;, y hacer un repaso general sobre lo aprendido a lo largo de toda la serie.&lt;/p&gt;
&lt;p align="center" class="MsoListParagraph" style="line-height:normal;margin:0cm 0cm 10pt 36pt;"&gt;&lt;span style="mso-fareast-language:es;mso-no-proof:yes;"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0024_5F00_4A42B43F.png"&gt;&lt;img height="131" width="176" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0024_5F00_thumb_5F00_3685A4DE.png" alt="clip_image002[4]" border="0" title="clip_image002[4]" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;Lo primero a realizar ser&amp;aacute; el an&amp;aacute;lisis y descripci&amp;oacute;n de las funciones por medio de enunciados y/o comentarios sobre c&amp;oacute;digo para facilitar de esta manera el conocimiento de la aplicaci&amp;oacute;n en cada uno de sus l&amp;iacute;neas de c&amp;oacute;digo.&lt;/p&gt;
&lt;p align="justify" class="MsoListParagraph" style="line-height:normal;text-indent:-18pt;margin:0cm 0cm 10pt 32.2pt;mso-add-space:auto;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:symbol;mso-fareast-font-family:symbol;"&gt;&lt;span style="mso-list:ignore;"&gt;&lt;span style="font-family:Symbol;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="line-height:normal;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;inicializarJuego&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt 32.2pt;"&gt;Como su propio nombre indica esta funci&amp;oacute;n es llamada al inicio de la partida, para colocar los valores de inicio, como son el n&amp;uacute;mero de intentos y la puntuaci&amp;oacute;n de la partida actual.&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt; inicializarJuego()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;txtIntentos.Text&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;= &lt;span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;3&amp;quot;&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;txtPuntuacion.Text = &lt;span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;estado.Visibility = &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Visibility&lt;/span&gt;&lt;/span&gt;.Hidden;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="line-height:normal;margin:0cm 0cm 0pt 36pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;text-indent:-18pt;margin:0cm 0cm 0pt 32.2pt;mso-add-space:auto;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-ansi-language:en-us;mso-bidi-font-family:symbol;mso-fareast-font-family:symbol;"&gt;&lt;span style="mso-list:ignore;"&gt;&lt;span style="font-family:Symbol;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="line-height:normal;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;nuevaLista&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt 36pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoListParagraphCxSpLast" style="line-height:normal;margin:0cm 0cm 10pt 36pt;"&gt;Esta funci&amp;oacute;n tiene como objetivo crear una lista y a&amp;ntilde;adir aleatoriamente n&amp;uacute;meros del 0 al 6 hasta completar la longitud (&amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;Length&lt;/i&gt;&amp;rdquo;), finalmente copiamos el puntero de esta lista(variable local) a la lista de juego (que es una variable global).&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:32.2pt;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt; nuevaLista(&lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; length)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;lt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt;&amp;gt; lista2 = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&lt;/span&gt;&amp;lt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt;&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; i = 0;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;while&lt;/span&gt;&lt;/span&gt; (i &amp;lt; length)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; numero = (&lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt;)r.Next(0, 6);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;"&gt;lista2.Add(numero);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;i++;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;lista = lista2;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&lt;span style="mso-fareast-language:es;mso-no-proof:yes;"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0034_5F00_11C4679A.png"&gt;&lt;img height="153" width="260" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0034_5F00_thumb_5F00_4BA384B9.png" alt="clip_image003[4]" border="0" title="clip_image003[4]" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify" class="MsoListParagraph" style="line-height:normal;text-indent:-18pt;margin:0cm 0cm 10pt 32.2pt;mso-add-space:auto;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:symbol;mso-fareast-font-family:symbol;"&gt;&lt;span style="mso-list:ignore;"&gt;&lt;span style="font-family:Symbol;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="line-height:normal;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;establecerSonido&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt 32.2pt;"&gt;Esta funci&amp;oacute;n tiene un cometido l&amp;oacute;gico y bastante f&amp;aacute;cil de comprender. Una vez establecidos los sonidos en el array de string &amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;sonidobtn&lt;/i&gt;&amp;rdquo;, seg&amp;uacute;n sea el bot&amp;oacute;n pulsado, se establece el valor en la variable &amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;son&lt;/i&gt;&amp;rdquo;, para que despu&amp;eacute;s sea reproducido por el objeto de la clase Windows Media Player llamado &amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;Player&lt;/i&gt;&amp;rdquo;.&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt; establecerSonido(&lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; btn)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;switch&lt;/span&gt;&lt;/span&gt; (btn)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 0: son = sonidobtn[0];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;break&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 1: son = sonidobtn[1];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;break&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 2: son = sonidobtn[2];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;break&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 3: son = sonidobtn[3];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;break&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 4: son = sonidobtn[4];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;break&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 5: son = sonidobtn[5];&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;break&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;default&lt;/span&gt;&lt;/span&gt;: son = sonidobtn[0]; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;break&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="center" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&lt;span style="mso-fareast-language:es;mso-no-proof:yes;"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0044_5F00_175F35A6.png"&gt;&lt;img height="184" width="244" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0044_5F00_thumb_5F00_7231C56C.png" alt="clip_image004[4]" border="0" title="clip_image004[4]" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoListParagraph" style="line-height:normal;text-indent:-18pt;margin:0cm 0cm 10pt 32.2pt;mso-add-space:auto;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-bidi-font-family:symbol;mso-fareast-font-family:symbol;"&gt;&lt;span style="mso-list:ignore;"&gt;&lt;span style="font-family:Symbol;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="line-height:normal;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;ImagenNormal&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.3pt;"&gt;Tanto la funci&amp;oacute;n &amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;ImagenNormal&amp;rdquo;&lt;/i&gt; como la funci&amp;oacute;n &amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;ImagenPulsada&amp;rdquo;&lt;/i&gt; tienen un cometido en com&amp;uacute;n, diferenciar la apariencia del bot&amp;oacute;n cuando &amp;eacute;ste est&amp;aacute; siendo pulsado y cuando no. En ambos casos se indica el bot&amp;oacute;n que cambiar&amp;aacute; de apariencia y porque imagen ser&amp;aacute; reemplazada.&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.3pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt; imagenNormal(&lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; btn)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#0000ff;"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;switch&lt;/span&gt;&lt;/span&gt; (btn)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 0: btn1.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:3.2pt;margin:0cm 0cm 0pt 173.8pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:6.4pt;margin:0cm 0cm 0pt 170.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/azul.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:9.6pt;margin:0cm 0cm 0pt 167.4pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 1: btn2.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/morado.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 2: btn3.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:3.2pt;margin:0cm 0cm 0pt 173.8pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:6.4pt;margin:0cm 0cm 0pt 170.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/rojo.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:9.6pt;margin:0cm 0cm 0pt 167.4pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 3: btn4.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:3.2pt;margin:0cm 0cm 0pt 173.8pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:6.4pt;margin:0cm 0cm 0pt 170.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/verde.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:9.6pt;margin:0cm 0cm 0pt 167.4pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 4: btn5.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:3.2pt;margin:0cm 0cm 0pt 173.8pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:6.4pt;margin:0cm 0cm 0pt 170.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/verdemar.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:9.6pt;margin:0cm 0cm 0pt 167.4pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 5: btn6.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:3.2pt;margin:0cm 0cm 0pt 173.8pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:6.4pt;margin:0cm 0cm 0pt 170.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/naranja.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:9.6pt;margin:0cm 0cm 0pt 167.4pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;default&lt;/span&gt;&lt;/span&gt;: System.Windows.&lt;span&gt;&lt;span style="color:#2b91af;"&gt;MessageBox&lt;/span&gt;&lt;/span&gt;.Show(&lt;span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;Boton: &amp;quot;&lt;/span&gt;&lt;/span&gt; + btn); &lt;span&gt;&lt;span style="color:#0000ff;"&gt;break&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 35.4pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#0000ff;"&gt;catch&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;imagenNormal(btn);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&amp;nbsp;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&amp;nbsp;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt; imagenpulsada(&lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; btn)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;switch&lt;/span&gt;&lt;/span&gt; (btn)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 0: btn1.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/azul2.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 177pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 1: btn2.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/morado2.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 2: btn3.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/rojo2.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 3: btn4.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/verde2.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 4: btn5.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/verdemar2.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;case&lt;/span&gt;&lt;/span&gt; 5: btn6.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="font-size:8pt;"&gt;component/Img/naranja2.png&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;)); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;default&lt;/span&gt;&lt;/span&gt;: System.Windows.&lt;span&gt;&lt;span style="color:#2b91af;"&gt;MessageBox&lt;/span&gt;&lt;/span&gt;.Show(&lt;span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;Boton: &amp;quot;&lt;/span&gt;&lt;/span&gt; + btn); &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 106.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="line-height:normal;margin:0cm 0cm 10pt 36pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="line-height:normal;text-indent:-18pt;margin:0cm 0cm 0pt 32.2pt;mso-add-space:auto;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-ansi-language:en-us;mso-bidi-font-family:symbol;mso-fareast-font-family:symbol;"&gt;&lt;span style="mso-list:ignore;"&gt;&lt;span style="font-family:Symbol;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="line-height:normal;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;midiOutOpen&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt 36pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoListParagraphCxSpLast" style="line-height:normal;margin:0cm 0cm 10pt 36pt;"&gt;Esta funci&amp;oacute;n hace llamadas a la API de Windows en relaci&amp;oacute;n con la apertura de dispositivos de salida, como puede ser los altavoces del equipo. Para poder hacer uso de estas funciones se tiene que agregar la referencia a la librer&amp;iacute;a &amp;ldquo;winmm.dll&amp;rdquo; de Windows Media Player, como se puede apreciar en el c&amp;oacute;digo que la implementa.&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;[&lt;span&gt;&lt;span style="color:#2b91af;"&gt;DllImport&lt;/span&gt;&lt;/span&gt;(&lt;span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;winmm.dll&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;static&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;extern&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; midiOutOpen(&lt;span&gt;&lt;span style="color:#0000ff;"&gt;ref&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; handle, &lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; deviceID,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#2b91af;"&gt;MidiCallback&lt;/span&gt;&lt;/span&gt; proc, &lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; instance, &lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt; flags);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&lt;span style="mso-fareast-language:es;mso-no-proof:yes;"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0054_5F00_47B56E82.png"&gt;&lt;img height="198" width="264" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0054_5F00_thumb_5F00_7E32F3F9.png" alt="clip_image005[4]" border="0" title="clip_image005[4]" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="line-height:normal;text-indent:-18pt;margin:0cm 0cm 0pt 32.2pt;mso-add-space:auto;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-ansi-language:en-us;mso-bidi-font-family:symbol;mso-fareast-font-family:symbol;"&gt;&lt;span style="mso-list:ignore;"&gt;&lt;span style="font-family:Symbol;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="line-height:normal;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;btnJugar_MouseLeftButtonDown y btnJugar_TouchDown&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt 36pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt 36pt;"&gt;Cuando el usuario se encuentra en el lienzo de juego y pulsa sobre el bot&amp;oacute;n jugar, se debe comprobar que el nivel sea superior a 0, ya que si se llega al caso de que el nivel sea cero se cambiar&amp;aacute; el valor del nivel a 1, hasta que se gasten todos los intentos disponibles. Recordad que el n&amp;uacute;mero de elementos de la lista de juego depende del nivel, por eso mismo, nunca debe ser cero, y como m&amp;iacute;nimo deber&amp;aacute; bajar hasta 1.&lt;/p&gt;
&lt;p align="justify" class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt 36pt;"&gt;Una vez pulsado sobre el bot&amp;oacute;n &amp;ldquo;Jugar&amp;rdquo;, se reproducir&amp;aacute; la secuencia de pulsaciones correspondiente a los elementos que se encuentran en la lista &amp;ldquo;lista&amp;rdquo;.&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt 36pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="line-height:normal;margin:0cm 0cm 10pt 36pt;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt; btnJugar_MouseLeftButtonDown(&lt;span&gt;&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&lt;/span&gt; sender, &lt;span&gt;&lt;span style="color:#2b91af;"&gt;MouseButtonEventArgs&lt;/span&gt;&lt;/span&gt; e)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;"&gt;estado.Visibility = &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Visibility&lt;/span&gt;&lt;/span&gt;.Hidden;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;nivel=nivel==0?1:nivel;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;txtRonda.Text = &lt;span&gt;&lt;span style="color:#2b91af;"&gt;String&lt;/span&gt;&lt;/span&gt;.Format(&lt;span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;{0}&amp;quot;&lt;/span&gt;&lt;/span&gt;, nivel);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 35.4pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;btnJugar.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:35.4pt;margin:0cm 0cm 0pt 70.8pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;span&gt;&lt;span style="color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;component/Img/&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 141.6pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt;+ &lt;span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;btnJugar2.png&amp;quot;&lt;/span&gt;&lt;/span&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;btnJugar.IsEnabled = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;nuevaLista(nivel);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;habilitarBotones();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;jugarLista();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-18pt;margin:0cm 0cm 10pt 32.2pt;mso-add-space:auto;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-ansi-language:en-us;mso-bidi-font-family:symbol;mso-fareast-font-family:symbol;"&gt;&lt;span style="mso-list:ignore;"&gt;&lt;span style="font-family:Symbol;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="line-height:normal;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;btnJugar_MouseLeftButtonUp_1 y btnJugar_TouchUp&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt 32.2pt;"&gt;Cuando se deja de pulsar el bot&amp;oacute;n debe recuperar su imagen habitual, de esta forma da una sensaci&amp;oacute;n de pulsado.&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:18pt;margin:0cm 0cm 0pt 14.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt; btnJugar_MouseLeftButtonUp_1(&lt;span&gt;&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&lt;/span&gt; sender, &lt;span&gt;&lt;span style="color:#2b91af;"&gt;MouseButtonEventArgs&lt;/span&gt;&lt;/span&gt; e)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;text-indent:18pt;margin:0cm 0cm 0pt 14.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 14.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;btnJugar.Source = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;BitmapImage&lt;/span&gt;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 127.4pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;&lt;/span&gt;(&lt;span&gt;&lt;span style="color:#a31515;"&gt;@&amp;quot;pack://application:,,,/SimonDice;component/Img/&amp;quot;&lt;/span&gt;&lt;/span&gt; + &lt;span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;btnJugar.png&amp;quot;&lt;/span&gt;&lt;/span&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 14.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="line-height:normal;text-indent:-18pt;margin:0cm 0cm 0pt 32.2pt;mso-add-space:auto;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-ansi-language:en-us;mso-bidi-font-family:symbol;mso-fareast-font-family:symbol;"&gt;&lt;span style="mso-list:ignore;"&gt;&lt;span style="font-family:Symbol;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="line-height:normal;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;btnSalir_MouseLeftDown y btnSalir_TouchDown&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt 36pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="line-height:normal;margin:0cm 0cm 0pt 36pt;"&gt;Cuando se ejecute esta funci&amp;oacute;n, se cambia del lienzo de juego al lienzo de inicio, cancelando la reproducci&amp;oacute;n de sonidos si el caso lo requiere.&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="line-height:normal;margin:0cm 0cm 10pt 36pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt; btnSalir_MouseLeftButtonDown(&lt;span&gt;&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&lt;/span&gt; sender, &lt;span&gt;&lt;span style="color:#2b91af;"&gt;MouseButtonEventArgs&lt;/span&gt;&lt;/span&gt; e)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;juego.Visibility = &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Visibility&lt;/span&gt;&lt;/span&gt;.Hidden;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;Inicio.Visibility = &lt;span&gt;&lt;span style="color:#2b91af;"&gt;Visibility&lt;/span&gt;&lt;/span&gt;.Visible;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;cancelarEjecucion();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-18pt;margin:0cm 0cm 10pt 32.2pt;mso-add-space:auto;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-ansi-language:en-us;mso-bidi-font-family:symbol;mso-fareast-font-family:symbol;"&gt;&lt;span style="mso-list:ignore;"&gt;&lt;span style="font-family:Symbol;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="line-height:normal;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;btnSalirTotal_MouseLeftDown y btnSalirTotal_TouchDown&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt 32.2pt;"&gt;En ambos casos, la acci&amp;oacute;n de este m&amp;eacute;todo conlleva la salida de la aplicaci&amp;oacute;n y el cerrado de la interfaz de usuario asociada a la aplicaci&amp;oacute;n.&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt; btnSalirTotal_MouseLeftButtonDown(&lt;span&gt;&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt;&lt;/span&gt; sender, &lt;span&gt;&lt;span style="color:#2b91af;"&gt;MouseButtonEventArgs&lt;/span&gt;&lt;/span&gt; e)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;System.Windows.Forms.&lt;span&gt;&lt;span style="color:#2b91af;"&gt;Application&lt;/span&gt;&lt;/span&gt;.Exit();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:8pt;"&gt;.Close();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-18pt;margin:0cm 0cm 10pt 32.2pt;mso-add-space:auto;mso-list:l0 level1 lfo1;"&gt;&lt;span style="mso-ansi-language:en-us;mso-bidi-font-family:symbol;mso-fareast-font-family:symbol;"&gt;&lt;span style="mso-list:ignore;"&gt;&lt;span style="font-family:Symbol;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="line-height:normal;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:7pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;cancelarEjecucion&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.3pt;"&gt;Cuando se da al bot&amp;oacute;n salir, desde el lienzo del juego, se debe cancelar la ejecuci&amp;oacute;n del reproductor de sonidos y vaciar la lista de juego, para que en la pr&amp;oacute;xima entrada al juego dicha lista est&amp;eacute; vac&amp;iacute;a y no tenga ning&amp;uacute;n valor en su contenido.&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.3pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:8pt;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-size:8pt;"&gt; &lt;span&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt;&lt;/span&gt; cancelarEjecucion()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;lista = &lt;span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&lt;/span&gt;&amp;lt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;/span&gt;&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="font-size:8pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:8pt;"&gt;Player.controls.stop();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt 32.2pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:8pt;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&lt;span style="mso-ansi-language:en-us;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 10pt;"&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span&gt;&lt;span style="font-size:16pt;"&gt;Secuencia de juego:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;"&gt;Al iniciar la aplicaci&amp;oacute;n se lanza el evento &amp;ldquo;OnLoad&amp;rdquo; con su funci&amp;oacute;n &amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;WindowsLoaded&lt;/i&gt;&amp;rdquo; asociada, para inicializar variables.&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;"&gt;Luego se ejecuta &lt;i style="mso-bidi-font-style:normal;"&gt;&amp;ldquo;InicializarBotones&amp;rdquo; junto con &lt;/i&gt;&amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;Deshabilitarbotones&lt;/i&gt;&amp;rdquo; para evitar que alguien pulse cuando a&amp;uacute;n no es necesario, aqu&amp;iacute; se detiene la ejecuci&amp;oacute;n de la aplicaci&amp;oacute;n a la espera de una acci&amp;oacute;n del usuario.&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;En el caso de pulsar sobre el bot&amp;oacute;n&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;ldquo;Jugar&amp;rdquo;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;se lanzar&amp;iacute;a&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;la funci&amp;oacute;n &amp;ldquo;&lt;span style="font-family:Consolas;"&gt;&lt;strong&gt;&lt;span&gt;&lt;span style="font-size:9.5pt;"&gt;btnEntrar_TouchDown&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;span style="font-size:9.5pt;"&gt;&amp;rdquo;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;en caso contrario si se pulsa sobre el bot&amp;oacute;n de salir se ejecutar&amp;iacute;a la funci&amp;oacute;n&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt; &amp;ldquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;btnSalirTotal&lt;/i&gt;&lt;/strong&gt;_&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;TouchDown&lt;/i&gt;&lt;/strong&gt;&amp;rdquo;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;saliendo completamente del proyecto.     &lt;br /&gt;Si se sigue por la primera v&amp;iacute;a, se pasar&amp;iacute;a otra vez a un estado de espera hasta que el usuario pulse sobre &amp;ldquo;jugar&amp;rdquo; con lo que se desencadena la funci&amp;oacute;n &amp;ldquo;&lt;span style="font-family:Consolas;"&gt;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;&lt;span&gt;&lt;span style="font-size:9.5pt;"&gt;btnJugar_touchDown&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/strong&gt;&lt;span&gt;&lt;span style="font-size:9.5pt;"&gt;&amp;rdquo;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;dentro del cual se ejecutan las funciones &lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt;&amp;ldquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;nuevaLista&lt;/i&gt;&lt;/strong&gt;&amp;rdquo;,&amp;rdquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;habilitarBotones&lt;/i&gt;&lt;/strong&gt;&amp;rdquo; y &amp;ldquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;jugarLista&lt;/i&gt;&lt;/strong&gt;&amp;rdquo;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;dentro de esta &amp;uacute;ltima funci&amp;oacute;n se ejecutan las siguientes acciones: Por cada elemento de la lista de juego se genera una pulsaci&amp;oacute;n virtual&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt; (&amp;ldquo;&lt;strong&gt;imagenpulsada&lt;/strong&gt;&amp;rdquo;), &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;despu&amp;eacute;s se deshabilitan los botones hasta que termine la secuencia a reproducir&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt;(&amp;ldquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;deshabilitarBotones&lt;/i&gt;&lt;/strong&gt;&amp;rdquo;), &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;se establece un sonido &lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt;(&amp;ldquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;establecerSonido&lt;/i&gt;&lt;/strong&gt;&amp;rdquo;), &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;se reproduce y por &amp;uacute;ltimo la imagen que ha sido cambiada debe volver a su estado original.&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt;(&amp;ldquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;imagenNormal&lt;/i&gt;&lt;/strong&gt;&amp;rdquo;) &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;hasta que por &amp;uacute;ltimo se habilitan los botones para ser pulsados&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt;(&amp;ldquo;&lt;strong&gt;habilitarBotones&lt;/strong&gt;&amp;rdquo;).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;El siguiente paso es pulsar sobre el bot&amp;oacute;n adecuado siguiendo la secuencia correcta. Al pulsar sobre cualquier bot&amp;oacute;n se ejecutar&amp;aacute; la funci&amp;oacute;n&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt; &amp;ldquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;btn_TouchDown&lt;/i&gt;&lt;/strong&gt;&amp;rdquo; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;y posteriormente al dejar de pulsar pasara a ejecutarse &lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt;&amp;ldquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;btn_TouchUp&lt;/i&gt;&lt;/strong&gt;&amp;rdquo; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;relativo a dejar de pulsar sobre dicha imagen.&lt;span&gt;      &lt;br /&gt;&lt;/span&gt;Si la pulsaci&amp;oacute;n es correcta, se ira a la funci&amp;oacute;n &amp;ldquo;comprobar&amp;rdquo; y proseguir&amp;aacute; con la secuencia hasta reproducirla por completo, con los cual se ejecutar&amp;iacute;a la funci&amp;oacute;n &lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt;&amp;ldquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;ganar&lt;/i&gt;&lt;/strong&gt;&amp;rdquo;; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;en caso contrario, si el usuario se equivoca en un paso se lanzar&amp;iacute;a la funci&amp;oacute;n&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt; &amp;ldquo;&lt;strong&gt;&lt;i style="mso-bidi-font-style:normal;"&gt;error&lt;/i&gt;&lt;/strong&gt;&amp;rdquo; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;bajando un nivel del actual, hasta un m&amp;iacute;nimo de 1.&lt;span&gt;      &lt;br style="mso-special-character:line-break;" /&gt;      &lt;br style="mso-special-character:line-break;" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;B&amp;aacute;sicamente estas ser&amp;iacute;an las funciones esenciales que describen el funcionamiento de la aplicaci&amp;oacute;n. Si se desea una descripci&amp;oacute;n m&amp;aacute;s espec&amp;iacute;fica de cada una de ellas siempre se puede acceder a cada una de las entregas de esta serie mediante los enlaces que aparecen debajo.    &lt;br /&gt;    &lt;br /&gt;Sin m&amp;aacute;s que a&amp;ntilde;adir, desde&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9.5pt;"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;a href="http://www.windowstecnico.com/"&gt;&lt;span style="color:#0000ff;"&gt;Windows T&amp;eacute;cnico&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;se espera que esta serie haya servido para introducir un punto m&amp;aacute;s de inquietud en los desarrolladores para la creaci&amp;oacute;n de aplicaciones para este tipo de dispositivos y al uso de las herramientas amigables que proporciona Microsoft a trav&amp;eacute;s de Visual Studio 2010 y Windows Presentation Fundation&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;span style="font-family:Consolas;"&gt;&lt;span style="font-size:9.5pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;Para acabar, recuerda que si quieres aprender mucho m&amp;aacute;s sobre los secretos de los sistemas Microsoft Windows, te recomendamos leer el libro de&amp;nbsp;&lt;strong&gt;&lt;i&gt;Sergio de los Santos&amp;nbsp;&lt;/i&gt;&lt;/strong&gt;&amp;quot;&lt;a href="http://www.informatica64.com/libros.aspx?id=mswindows"&gt;M&amp;aacute;xima Seguridad en Windows: Secretos T&amp;eacute;cnicos&lt;/a&gt;&amp;quot; , o siempre puedes suscribirte al&amp;nbsp;&lt;a href="http://feeds2.feedburner.com/WindowsTecnico"&gt;Canal RSS de Windows T&amp;eacute;cnico&lt;/a&gt;&amp;nbsp;para estar al d&amp;iacute;a de las novedades e informaci&amp;oacute;n t&amp;eacute;cnica de inter&amp;eacute;s.&lt;/p&gt;
&lt;/p&gt;
&lt;p align="center" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;mso-themecolor:accent1;"&gt;&lt;span style="color:#4f81bd;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="center" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-fareast-language:es;mso-no-proof:yes;mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;mso-themecolor:accent1;"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0064_5F00_52AE8765.png"&gt;&lt;img height="88" width="196" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0064_5F00_thumb_5F00_4FB922B2.png" alt="clip_image006[4]" border="0" title="clip_image006[4]" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;mso-themecolor:accent1;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="font-size:10pt;color:#4f81bd;"&gt;---------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;mso-themecolor:accent1;"&gt;&lt;a target="_blank" href="http://www.windowstecnico.com/archive/2011/08/26/desarrollo-de-aplicaci-243-n-de-ejemplo-windows-7-multitouch-sim-243-n-dice-renewed-i.aspx"&gt;&lt;span&gt;&lt;span style="font-size:10pt;color:#0066cc;"&gt;Desarrollo de aplicaci&amp;oacute;n de ejemplo Windows 7 Multitouch: &amp;ldquo;Sim&amp;oacute;n Dice Renewed&amp;rdquo; I&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;mso-themecolor:accent1;"&gt;&lt;a target="_blank" href="http://www.windowstecnico.com/archive/2011/09/01/desarrollo-de-aplicaci-243-n-de-ejemplo-windows-7-multitouch-sim-243-n-dice-renewed-ii.aspx"&gt;&lt;span&gt;&lt;span style="font-size:10pt;color:#0066cc;"&gt;Desarrollo de aplicaci&amp;oacute;n de ejemplo Windows 7 Multitouch: &amp;ldquo;Sim&amp;oacute;n Dice Renewed&amp;rdquo; II&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;mso-themecolor:accent1;"&gt;&lt;a target="_blank" href="http://www.windowstecnico.com/archive/2011/09/02/desarrollo-de-aplicaci-243-n-de-ejemplo-windows-7-multitouch-sim-243-n-dice-renewed-iii.aspx"&gt;&lt;span&gt;&lt;span style="font-size:10pt;color:#0066cc;"&gt;Desarrollo de aplicaci&amp;oacute;n de ejemplo Windows 7 Multitouch: &amp;ldquo;Sim&amp;oacute;n Dice Renewed&amp;rdquo; III&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;mso-themecolor:accent1;"&gt;&lt;a target="_blank" href="http://www.windowstecnico.com/archive/2011/09/06/desarrollo-de-aplicaci-243-n-de-ejemplo-windows-7-multitouch-sim-243-n-dice-renewed-iv.aspx"&gt;&lt;span&gt;&lt;span style="font-size:10pt;color:#0066cc;"&gt;Desarrollo de aplicaci&amp;oacute;n de ejemplo Windows 7 Multitouch: &amp;ldquo;Sim&amp;oacute;n Dice Renewed&amp;rdquo; IV&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span&gt;&lt;a href="http://www.windowstecnico.com/archive/2011/09/13/desarrollo-de-aplicaci-243-n-de-ejemplo-windows-7-multitouch-sim-243-n-dice-renewed-v.aspx"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="font-size:10pt;color:#0066cc;"&gt;Desarrollo de aplicaci&amp;oacute;n de ejemplo Windows 7 Multitouch: &amp;ldquo;Sim&amp;oacute;n Dice Renewed&amp;rdquo; V&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span class="MsoHyperlink"&gt;&lt;span&gt;&lt;a href="http://www.windowstecnico.com/archive/2011/09/15/desarrollo-de-aplicaci-243-n-de-ejemplo-windows-7-multitouch-sim-243-n-dice-renewed-anexo.aspx"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="font-size:10pt;color:#0066cc;"&gt;Desarrollo de aplicaci&amp;oacute;n de ejemplo Windows 7 Multitouch: &amp;ldquo;Sim&amp;oacute;n Dice Renewed&amp;rdquo;. Anexo&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="font-size:10pt;color:#4f81bd;"&gt;----------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;"&gt;&lt;span style="font-size:10pt;color:#4f81bd;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span style="mso-bidi-font-family:calibri;mso-bidi-theme-font:minor-latin;mso-themecolor:accent1;"&gt;&lt;span style="color:#4f81bd;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify" class="MsoNormal" style="line-height:normal;margin:0cm 0cm 0pt;mso-layout-grid-align:none;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.windowstecnico.com/aggbug.aspx?PostID=7169" width="1" height="1"&gt;</description><category domain="http://www.windowstecnico.com/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://www.windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://www.windowstecnico.com/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://www.windowstecnico.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://www.windowstecnico.com/archive/tags/Programacion/default.aspx">Programacion</category><category domain="http://www.windowstecnico.com/archive/tags/.Net/default.aspx">.Net</category><category domain="http://www.windowstecnico.com/archive/tags/Multitouch/default.aspx">Multitouch</category><category domain="http://www.windowstecnico.com/archive/tags/Tablet/default.aspx">Tablet</category><category domain="http://www.windowstecnico.com/archive/tags/wpf/default.aspx">wpf</category></item><item><title>Tablets MultiTouch con MS Windows 7: Comunicación del S.O. y las aplicaciones.</title><link>http://www.windowstecnico.com/archive/2011/03/17/tablets-multitouch-con-ms-windows-7-comunicaci-243-n-del-s-o-y-las-aplicaciones.aspx</link><pubDate>Thu, 17 Mar 2011 13:20:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:4317</guid><dc:creator>Ignacio Briones</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.windowstecnico.com/rsscomments.aspx?PostID=4317</wfw:commentRss><comments>http://www.windowstecnico.com/archive/2011/03/17/tablets-multitouch-con-ms-windows-7-comunicaci-243-n-del-s-o-y-las-aplicaciones.aspx#comments</comments><description>&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;span style="font-weight:normal;"&gt;En la anterior entrada de la serie &lt;/span&gt;&lt;a href="http://www.windowstecnico.com/archive/2011/03/11/tablets-multitouch-con-ms-windows-7-herramientas.aspx"&gt;&lt;span style="font-weight:normal;"&gt;&lt;span style="text-decoration:underline;"&gt;Tablets MultiTouch con MS Windows 7: Herramientas&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight:normal;"&gt; present&amp;aacute;bamos aquellos entornos y utilidades disponibles para la programaci&amp;oacute;n de aplicaciones en dispositivos tablet multitouch con Windows 7.&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Pero como ya anunci&amp;aacute;bamos, tras unas primeras entradas de car&amp;aacute;cter m&amp;aacute;s generalista nuestro objetivo con esta serie es ir aportando informaci&amp;oacute;n m&amp;aacute;s espec&amp;iacute;fica y que pueda ser de utilidad en aspectos concretos para el desarrollo de aplicaciones. En esta l&amp;iacute;nea, vamos a tratar en el presente post los mecanismos de los que hace uso Ms Windows 7 para comunicar a las aplicaciones las acciones realizadas por parte del usuario sobre los dispositivos tablet. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/Haleron_2D00_Windows_2D00_7_2D00_Tablet1_5F00_5591ED6D.jpg"&gt;&lt;img height="258" width="342" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/Haleron_2D00_Windows_2D00_7_2D00_Tablet1_5F00_thumb_5F00_058C1922.jpg" alt="Haleron-Windows-7-Tablet1" border="0" title="Haleron-Windows-7-Tablet1" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Cada vez que se realiza una acci&amp;oacute;n en la pantalla de los dispositivos multitouch, Ms Windows 7 genera dos tipos de mensajes: &lt;i&gt;WM_TOUCH y WM_GESTAURES&lt;/i&gt;. Ambos son recogidos por aplicaciones o frameworks de programaci&amp;oacute;n, como &lt;a href="http://msdn.microsoft.com/es-es/library/ms754130.aspx"&gt;&lt;span style="text-decoration:underline;"&gt;WPF (Windows Presentation Foundation)&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;que ya cit&amp;aacute;bamos. Tras ello, las aplicaciones actuar&amp;aacute;n en consecuencia.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Valoremos a continuaci&amp;oacute;n el primer tipo de mensajes VM_TOUCH. Este recoge las acciones m&amp;aacute;s simples, b&amp;aacute;sicamente presi&amp;oacute;n, movimiento y la acci&amp;oacute;n de levantar el dedo de la pantalla. Cada acci&amp;oacute;n de este mensaje puede tratarse de forma individualizada, asoci&amp;aacute;ndole un proceso de ejecuci&amp;oacute;n. Para ello haremos uso de &lt;a href="http://msdn.microsoft.com/es-es/library/ms754130.aspx"&gt;&lt;span style="text-decoration:underline;"&gt;WPF (Windows Presentation Foundation)&lt;/span&gt;&lt;/a&gt; que se encargar&amp;aacute; de de transformar la gesti&amp;oacute;n del mensaje WM_TOUCH, en una gesti&amp;oacute;n controlada de eventos. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Seguidamente se muestra c&amp;oacute;mo se capturan los eventos de presi&amp;oacute;n de la pantalla &lt;i&gt;&amp;ldquo;TouchDown&amp;rdquo;&lt;/i&gt;, movimiento por la misma &lt;i&gt;&amp;ldquo;TouchMove&amp;rdquo;&lt;/i&gt; y levantar el dedo &lt;i&gt;&amp;ldquo;TouchUp&amp;rdquo;&lt;/i&gt;, para luego realizar una gesti&amp;oacute;n del evento sin tener que acceder directamente al mensaje WM_TOUCH.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/1_5F00_25E3A914.png"&gt;&lt;img height="140" width="491" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/1_5F00_thumb_5F00_7815E04E.png" alt="1" border="0" title="1" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;El segundo mensaje que debemos tener en cuenta, en la programaci&amp;oacute;n para un dispositivo multitouch, es &lt;i&gt;WM_GESTAURES&lt;/i&gt;. Este mensaje es lanzado por el sistema operativo cuando se producen gestos sobre la pantalla del tablet. Como vimos en la primera entrada de la serie&lt;span style="text-decoration:underline;"&gt; &lt;/span&gt;&lt;a href="http://www.windowstecnico.com/archive/2011/03/09/tablets-multitouch-con-ms-windows-7-desarrollo-de-aplicaciones.aspx"&gt;&lt;span style="text-decoration:underline;"&gt;Tablets MultiTouch con MS Windows 7: Desarrollo de Aplicaciones&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;,&lt;/span&gt; estos gestos son los que corresponden a las acciones de zoom, giro o desplazamiento.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;De igual modo que para el anterior mensaje WM_TOUCH, tambi&amp;eacute;n la plataforma .Net y WPF, proporcionan librer&amp;iacute;as para la gesti&amp;oacute;n de WM_GESTAURES y su consiguiente transformaci&amp;oacute;n en eventos del sistema. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Las librer&amp;iacute;as encargadas de esto son &lt;i&gt;Microsoft.Expresion.Interactions&lt;/i&gt; y &lt;i&gt;System.Windows.Interactive&lt;/i&gt;. Si queremos dotar a nuestro aplicativo de las funcionalidades proporcionadas por los gestos de los dispositivos Multitouch, tendremos que incluir estas dos librer&amp;iacute;as en el desarrollo de nuestro c&amp;oacute;digo. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Una de las ventajas al hacer uso de estas librer&amp;iacute;as, es dotar a los objetos de WPF de las cualidades de giro y de zoom, por medio de la propiedad &lt;i&gt;TranslateZoomRotateBehavior&lt;/i&gt;. Adicionalmente estas librer&amp;iacute;as evitan tener que tratar de forma directa el mensaje&lt;i&gt; WM_GESTAURES, &lt;/i&gt;que complicar&amp;iacute;a la programaci&amp;oacute;n de aplicaciones. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Se muestra a continuaci&amp;oacute;n como incluir la propiedad &lt;i&gt;TranslateZoomRotateBehavior&lt;/i&gt; en un objeto de WPF y as&amp;iacute; dotarlo de zoom y de rotacion:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/2_5F00_2DB772CF.png"&gt;&lt;img height="157" width="739" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/2_5F00_thumb_5F00_7B902284.png" alt="2" border="0" title="2" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Con la entrada de hoy hemos visto como recibir por parte de la aplicaciones las acciones b&amp;aacute;sicas que se realizan sobre los dispositivos tablet multitouch. De esta manera nuestra aplicaci&amp;oacute;n podr&amp;aacute; interactuar con el tablet y el usuario, aprovechando las ventajas de las funcionalidades incorporadas en los dispositivos multitouch. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Seguiremos dando entrada en &lt;a href="http://www.windowstecnico.com/"&gt;&lt;span style="text-decoration:underline;"&gt;Windows T&amp;eacute;cnico&lt;/span&gt;&lt;/a&gt; a nuevos posts de esta serie.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p align="justify"&gt;Para acabar, recuerda que si quieres aprender mucho m&amp;aacute;s sobre los secretos de los sistemas Microsoft Windows, te recomendamos leer el libro de&amp;nbsp;&lt;i&gt;Sergio de los Santos&amp;nbsp;&lt;/i&gt;&amp;quot;&lt;a href="http://www.informatica64.com/libros.aspx?id=mswindows"&gt;M&amp;aacute;xima Seguridad en Windows: Secretos T&amp;eacute;cnicos&lt;/a&gt;&amp;quot; , o siempre puedes suscribirte al&amp;nbsp;&lt;a href="http://feeds2.feedburner.com/WindowsTecnico"&gt;Canal RSS de Windows T&amp;eacute;cnico&lt;/a&gt;&amp;nbsp;para estar al d&amp;iacute;a de las novedades e informaci&amp;oacute;n t&amp;eacute;cnica de inter&amp;eacute;s.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_74C346BC.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_6BF33E70.png" width="141" height="33" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.windowstecnico.com/aggbug.aspx?PostID=4317" width="1" height="1"&gt;</description><category domain="http://www.windowstecnico.com/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://www.windowstecnico.com/archive/tags/Xna/default.aspx">Xna</category><category domain="http://www.windowstecnico.com/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://www.windowstecnico.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://www.windowstecnico.com/archive/tags/.Net/default.aspx">.Net</category><category domain="http://www.windowstecnico.com/archive/tags/canvas/default.aspx">canvas</category><category domain="http://www.windowstecnico.com/archive/tags/Multitouch/default.aspx">Multitouch</category><category domain="http://www.windowstecnico.com/archive/tags/Tablet/default.aspx">Tablet</category></item><item><title>Camino a la cuarta generación del desarrollo software: Desarrollo Dirigido por Modelos y su aplicación con la tecnología Domain Specific Language de Microsoft (Parte III)</title><link>http://www.windowstecnico.com/archive/2010/05/11/camino-a-la-cuarta-generaci-243-n-del-desarrollo-software-desarrollo-dirigido-por-modelos-y-su-aplicaci-243-n-con-la-tecnolog-237-a-domain-specific-language-de-microsoft-parte-iii.aspx</link><pubDate>Tue, 11 May 2010 16:57:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:2627</guid><dc:creator>Juan Antonio</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.windowstecnico.com/rsscomments.aspx?PostID=2627</wfw:commentRss><comments>http://www.windowstecnico.com/archive/2010/05/11/camino-a-la-cuarta-generaci-243-n-del-desarrollo-software-desarrollo-dirigido-por-modelos-y-su-aplicaci-243-n-con-la-tecnolog-237-a-domain-specific-language-de-microsoft-parte-iii.aspx#comments</comments><description>&lt;p align="justify"&gt;Buenas a todos, en el post de hoy continuaremos la cadena de post sobre desarrollo con DSL Tools y dise&amp;ntilde;aremos el resto del DSL que comenzamos la semana pasada. Despu&amp;eacute;s, contaremos como se dise&amp;ntilde;a la interface gr&amp;aacute;fica de nuestro DSL.&lt;/p&gt;
&lt;p align="justify"&gt;Para el ejemplo que hemos utilizado y en el que vamos a desarrollar un dsl que nos permita automatizar la generaci&amp;oacute;n de ficheros XML, requeriremos una serie de elementos que nos permitan generar un &amp;aacute;rbol abstracto que simule las etiquetas del &amp;aacute;rbol XML. Estos elementos ser&amp;aacute;n representados por nodos y atributos. Cada nodo puede tener cero o m&amp;aacute;s atributos. Adem&amp;aacute;s, los nodos pueden ser de tres tipos, nodo ra&amp;iacute;z, nodo hoja, o nodo normal. El nodo ra&amp;iacute;z podr&amp;aacute; tener 0 o m&amp;aacute;s hijos. El nodo hoja no podr&amp;aacute; tener hijos. Y los nodos normales tendr&amp;aacute;n padre y cero o m&amp;aacute;s hijos. Este efecto lo conseguiremos jugando con las cardinalidades.&lt;/p&gt;
&lt;p align="justify"&gt;Ahora aprovecharemos el esqueleto del modelo proporcionado y modificaremos los nombres y atributos de las clases hasta dejarlos como en la captura de pantalla que se ver&amp;aacute; a continuaci&amp;oacute;n.&lt;/p&gt;
&lt;p align="justify"&gt;Cambios a realizar:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Cambiar el nombre del modelo (en la clase &amp;ldquo;domain class&amp;rdquo;) de &lt;i&gt;ExampleModel&lt;/i&gt; a &lt;i&gt;ModeloDocXml&lt;/i&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Cambiar el nombre de la clase &lt;i&gt;ExampleElement&lt;/i&gt; a &lt;i&gt;Nodo&lt;/i&gt;. Cambiar el nombre de su atributo &lt;i&gt;Name&lt;/i&gt; a &lt;i&gt;Nombre&lt;/i&gt;. Y a&amp;ntilde;adirle los atributos &lt;i&gt;Campo&lt;/i&gt; (string), &lt;i&gt;Raiz&lt;/i&gt; (boolean), &lt;i&gt;Hoja&lt;/i&gt; (boolean), con los que identificaremos el tipo de nodo del que se trata.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Modificaremos el nombre &lt;i&gt;Elements&lt;/i&gt; a &lt;i&gt;Nodos&lt;/i&gt; de la &lt;i&gt;Reference Relationship&lt;/i&gt; que une &lt;i&gt;ModeloDocXml &lt;/i&gt;con &lt;i&gt;Nodo&lt;/i&gt;. Y que utilizaremos posteriormente para identificar el n&amp;uacute;mero de nodos que contiene nuestro modelo. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Adem&amp;aacute;s a&amp;ntilde;adiremos una clase nueva a la que le daremos de nombre &lt;i&gt;Atributo&lt;/i&gt; y le a&amp;ntilde;adiremos los atributos &lt;i&gt;Nombre&lt;/i&gt; e &lt;i&gt;Identificador&lt;/i&gt;. Que uniremos a la clase nodo con un &lt;i&gt;Embbeding Relationship&lt;/i&gt;. Modificaremos finalmente la cardinalidad de manera que un nodo pueda tener cero o mas atributos.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p align="justify"&gt;Tras realizar estos cambios deber&amp;iacute;amos tener nuestro modelo terminado:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_1941CD20.png"&gt;&lt;img height="386" width="618" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_03E9391A.png" alt="image" border="0" title="image" style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Ahora llega la hora de dise&amp;ntilde;ar la interface que tendr&amp;aacute; nuestro modelo. En la parte derecha ver&amp;eacute;is que hay un diagrama paralelo llamado &lt;i&gt;Diagram Elements&lt;/i&gt;, en &amp;eacute;l se dise&amp;ntilde;ar&amp;aacute; la interface de nuestro modelo.&lt;/p&gt;
&lt;p align="justify"&gt;Para aclararnos renombraremos la forma &lt;i&gt;ExampleShape&lt;/i&gt; a &lt;i&gt;NodoShape&lt;/i&gt;. El &lt;i&gt;ExampleConnector&lt;/i&gt; a &lt;i&gt;NodoConnector&lt;/i&gt; y el &lt;i&gt;LanguageDiagram&lt;/i&gt; a &lt;i&gt;XmlGeneratorDiagram&lt;/i&gt;.&lt;/p&gt;
&lt;p align="justify"&gt;Como partimos nuestro modelo de un esqueleto, ya est&amp;aacute; dise&amp;ntilde;ada la interface de la clase nodo, y de la flecha que se utiliza para unir los nodos. Ahora queda dise&amp;ntilde;ar la interface de los atributos que puede tener un nodo. Para ello arrastraremos desde la toolbox un &lt;i&gt;Geometry Shape&lt;/i&gt; y un &lt;i&gt;Connector&lt;/i&gt; a los que renombraremos como &lt;i&gt;AtributoShape&lt;/i&gt; y &lt;i&gt;AtributoConnector&lt;/i&gt;. Ahora pulsaremos bot&amp;oacute;n derecho sobre &lt;i&gt;Decorator&lt;/i&gt; en la clase &lt;i&gt;AtributoShape&lt;/i&gt; y a&amp;ntilde;adiremos un atributo &lt;i&gt;NameDecorator&lt;/i&gt;, lo que nos permitir&amp;aacute; poner un nombre en el atributo, durante el dise&amp;ntilde;o de nuestro modelo. Tras realizar estos cambios deber&amp;iacute;ais tener lo siguiente:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_11E02A6A.png"&gt;&lt;img height="652" width="234" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_182991A9.png" alt="image" border="0" title="image" style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" /&gt;&lt;/a&gt;Y el resultado final ser&amp;iacute;a el siguiente:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_01F897B9.png"&gt;&lt;img height="490" width="629" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_626E6945.png" alt="image" border="0" title="image" style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Ahora debemos asociar la clase Atributo y el conector que le une con la clase Nodo, con sus correspondientes shape. Para ello utilizaremos la herramienta de la toolbox &lt;i&gt;Diagram Element Map&lt;/i&gt;.&lt;/p&gt;
&lt;p align="justify"&gt;Una vez hecho esto pincharemos en la flecha que une la clase &lt;i&gt;Atributo&lt;/i&gt; con &lt;i&gt;AtributoShape&lt;/i&gt; y accederemos a la pesta&amp;ntilde;a &lt;i&gt;Decorator Maps,&lt;/i&gt; donde marcaremos la casilla &lt;i&gt;NameDecorator&lt;/i&gt; como muestra la siguiente imagen y seleccionaremos en &lt;i&gt;Display Property&lt;/i&gt; el atributo &lt;i&gt;Nombre&lt;/i&gt;. De esta manera conseguiremos que dentro del nodo en el modelo muestre el atributo Nombre:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_398B064F.png"&gt;&lt;img height="388" width="626" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_68DC7BD9.png" alt="image" border="0" title="image" style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Ahora iremos a la pesta&amp;ntilde;a &lt;i&gt;General&lt;/i&gt; y comprobaremos que el &lt;i&gt;Parent Element Map&lt;/i&gt; est&amp;aacute; apuntando al &lt;i&gt;ModelDocXml&lt;/i&gt; desde donde hereda, para que posteriormente desde el c&amp;oacute;digo del programa podamos acceder a sus atributos:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_62BA50A0.png"&gt;&lt;img height="415" width="627" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_091EC49D.png" alt="image" border="0" title="image" style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Finalmente, y como funci&amp;oacute;n &amp;uacute;nicamente est&amp;eacute;tica podremos modificar el aspecto de los nodos y atributos del modelo jugando con las distintas posibilidades que ofrecen desde su correspondiente men&amp;uacute; propiedades, colores, formas de los nodos, etc:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_4089F72D.png"&gt;&lt;img height="497" width="638" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_5A19366D.png" alt="image" border="0" title="image" style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_3DC61144.png"&gt;&lt;img height="495" width="636" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_64B8D2D9.png" alt="image" border="0" title="image" style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Esto es todo por hoy, en el pr&amp;oacute;ximo post generaremos la toolbox que contendr&amp;aacute; todos los elementos de nuestro DSL y la probaremos.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hasta el pr&amp;oacute;ximo post, saludos!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.windowstecnico.com/aggbug.aspx?PostID=2627" width="1" height="1"&gt;</description><category domain="http://www.windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://www.windowstecnico.com/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://www.windowstecnico.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://www.windowstecnico.com/archive/tags/Programacion/default.aspx">Programacion</category><category domain="http://www.windowstecnico.com/archive/tags/.Net/default.aspx">.Net</category><category domain="http://www.windowstecnico.com/archive/tags/OSLO/default.aspx">OSLO</category></item><item><title>Microsoft Alm’09 Sessions</title><link>http://www.windowstecnico.com/archive/2009/11/17/microsoft-alm-09-sessions.aspx</link><pubDate>Tue, 17 Nov 2009 09:48:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:1263</guid><dc:creator>Juan Antonio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.windowstecnico.com/rsscomments.aspx?PostID=1263</wfw:commentRss><comments>http://www.windowstecnico.com/archive/2009/11/17/microsoft-alm-09-sessions.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_7021172B.png"&gt;&lt;img height="469" width="593" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_08D03E6F.png" alt="image" border="0" title="image" style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;El pr&amp;oacute;ximo d&amp;iacute;a 24 de Noviembre se celebrar&amp;aacute; el Microsoft Alm&amp;rsquo;09 Sessions en Madrid. El Alm&amp;rsquo;09 Sessions es un d&amp;iacute;a de conferencias en el que Microsoft y sus partners hablan sobre las ofertas de optimizaci&amp;oacute;n del ciclo de vida del software. Contar&amp;aacute; con 6 Sesiones en paralelo y m&amp;aacute;s de 30 ponencias, un verdadero lujo. Las sesiones son las siguientes:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Como optimizar sus procesos y metodolog&amp;iacute;as aplicadas en casos pr&amp;aacute;cticos (SCRUM, Agile, CMMI). &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Presentar nuestra nueva soluci&amp;oacute;n de Testing para elevar el nivel de calidad en sus desarrollos. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Arquitectura UML y Cloud Computing. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Herramientas propias y de terceros, presentes y futuras versiones. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Una Plataforma de Aplicaciones totalmente integrada. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Dise&amp;ntilde;o que se complementa con el desarrollo y enriquece sus aplicaciones. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Agenda:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;6 sesiones en paralelo: Procesos, calidad y testing, arquitectura, herramientas, plataforma de aplicaciones, dise&amp;ntilde;o y UX. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;30 ponencias presentadas por nuestros principales partners. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Presentaci&amp;oacute;n de una nueva soluci&amp;oacute;n Testing que eleva el nivel de calidad de las aplicaciones. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Casos pr&amp;aacute;cticos de procesos y metodolog&amp;iacute;as. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Arquitectura UML y Cloud Computing &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Herramientas propias y de terceros. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Una plataforma de aplicaciones totalmente integrada.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Dise&amp;ntilde;o que se complementa con el desarrollo y enriquece sus aplicaciones&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Horario y resumen de cada ponencia:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.microsoft.com/spain/visualstudio/ALM09/agenda.aspx"&gt;http://www.microsoft.com/spain/visualstudio/ALM09/agenda.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;C&amp;oacute;mo llegar: &lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.microsoft.com/spain/visualstudio/ALM09/DondeCuando.aspx"&gt;http://www.microsoft.com/spain/visualstudio/ALM09/DondeCuando.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;P&amp;aacute;gina oficial del evento:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.microsoft.com/spain/visualstudio/ALM09/"&gt;http://www.microsoft.com/spain/visualstudio/ALM09/&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Microsoft Visual Studio 2010 Beta 2:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.microsoft.com/spain/visualstudio/default.mspx"&gt;http://www.microsoft.com/spain/visualstudio/default.mspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.windowstecnico.com/aggbug.aspx?PostID=1263" width="1" height="1"&gt;</description><category domain="http://www.windowstecnico.com/archive/tags/Eventos/default.aspx">Eventos</category><category domain="http://www.windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://www.windowstecnico.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Creación e instalación de módulos para Internet Information Services 7 (parte III)</title><link>http://www.windowstecnico.com/archive/2009/11/02/creaci-243-n-e-instalaci-243-n-de-m-243-dulos-para-internet-information-services-7-parte-iii.aspx</link><pubDate>Mon, 02 Nov 2009 14:21:15 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:1165</guid><dc:creator>Juan Antonio</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.windowstecnico.com/rsscomments.aspx?PostID=1165</wfw:commentRss><comments>http://www.windowstecnico.com/archive/2009/11/02/creaci-243-n-e-instalaci-243-n-de-m-243-dulos-para-internet-information-services-7-parte-iii.aspx#comments</comments><description>&lt;p align="justify"&gt;Hoy vamos a finalizar la cadena de post sobre programación de módulos para IIS7. En este post voy a explicaros cómo programar vuestro propio módulo con interfaz gráfica configurable y cómo instalarlo en el IIS.&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;&lt;u&gt;¿Para que sirve un módulo gráfico?&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Muchos, por no decir la mayoría de los programas requieren de algunos parámetros que necesitan ser configurables para adaptarse a las diferentes situaciones para las que es aplicable el programa que se ha desarrollado. Los módulos del IIS no son menos, y estos no son ni más ni menos que un programa normal, pero embebido dentro de la interfaz del IIS. La programación gráfica de estos programas será exactamente igual a la de otro programa realizado en .NET, con la diferencia de que tendremos que añadirle algunos elementos para que pueda ser reconocido por el IIS. ¡Vamos a ello!&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;&lt;u&gt;Instalaciones necesarias:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;1. Microsoft Server 2008&lt;/p&gt;  &lt;p align="justify"&gt;2. Visual Studio 2005-2008&lt;/p&gt;  &lt;p align="justify"&gt;3. IIS 7&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;&lt;u&gt;Construcción del módulo:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Una vez tengamos IIS instalado, abrimos el Visual Studio, el primer paso para la construcción de nuestro módulo será crear un nuevo proyecto, seleccionamos &lt;i&gt;crear una nueva Biblioteca de clases&lt;/i&gt;, le damos un nombre, por ejemplo: &lt;i&gt;proyecto_i64&lt;/i&gt; y aceptamos:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_c6EYhkUKGik/SkKrMurtUUI/AAAAAAAACCM/S3zw7_pvr34/s1600-h/clip_image002%5B4%5D.jpg"&gt;&lt;img title="clip_image001" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="456" alt="clip_image001" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image001_5F00_4EEF7D6F.jpg" width="587" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Eliminamos la clase que nos crea por defecto: Class1.cs, que no la vamos a utilizar. &lt;/p&gt;  &lt;p align="justify"&gt;Ahora tenemos que añadir dos referencias, para ello hacemos clic con el botón derecho del ratón en “References” y pulsamos en “Agregar Referencia”. &lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_c6EYhkUKGik/SkKrN84hMSI/AAAAAAAACCU/AAY_7z6w-u4/s1600-h/clip_image004%5B5%5D.jpg"&gt;&lt;img title="clip_image002" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="509" alt="clip_image002" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image002_5F00_6B2256FE.jpg" width="589" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Tenemos que incluir las siguientes referencias: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Microsoft.Web.Administration.dll.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Microsoft.Web.Management.dll. &lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Las encontraremos en la pestaña examinar, en la ruta: c:\windows\system32\inetsrv.&lt;/p&gt;  &lt;p align="justify"&gt;Una vez agregadas las referencias procedemos a firmar nuestra librería, para que el IIS pueda reconocerla como .dll:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;1. Para firmar nuestra librería .dll hacemos doble clic en el explorador de soluciones en la etiqueta “properties” y nos vamos a la pestaña “firma”, marcamos la casilla “firmar el ensamblado” y en seleccionar un archivo de clave de nombre seguro le damos a &amp;lt;Nueva..&amp;gt;:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/_c6EYhkUKGik/SkKrPIYmSkI/AAAAAAAACCc/RfW1uY-eEg8/s1600-h/clip_image006%5B4%5D.jpg"&gt;&lt;img title="clip_image003" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="550" alt="clip_image003" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image003_5F00_0348520B.jpg" width="564" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;2. Le asignamos un nombre, por ejemplo, key.snk y desmarcamos la casilla de proteger con contraseña. Con esto ya tenemos nuestra .dll firmada:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_c6EYhkUKGik/SkKrQf5CCzI/AAAAAAAACCk/fUq5zHSjEZs/s1600-h/clip_image007%5B4%5D.jpg"&gt;&lt;img title="clip_image004" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="358" alt="clip_image004" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image004_5F00_673CB481.jpg" width="563" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;3. Tenemos que añadir un pequeño script, que nos enviará nuestra .dll firmada a la carpeta de ensamblados que se encuentra en la ruta C:\Windows\assembly, desde donde el IIS la recogerá para poder agregarla finalmente cómo modulo. Para ello, sin salirnos de la ventana “properties” nos vamos a la pestaña “Eventos de generación”, y en el cuadro “línea de comandos del evento posterior a la generación” incluimos el siguiente script si estáis usando Visual Studio 2005:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;CALL &amp;quot;%VS80COMNTOOLS%\vsvars32.bat&amp;quot; &amp;gt; NULL&lt;/p&gt;            &lt;p&gt;gacutil.exe /if &amp;quot;$(TargetPath)&amp;quot;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;ó el siguiente si estáis usando Visual Studio 2008:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;CALL &amp;quot;%VS90COMNTOOLS%\vsvars32.bat&amp;quot; &amp;gt; NULL&lt;/p&gt;            &lt;p&gt;gacutil.exe /if &amp;quot;$(TargetPath)&amp;quot;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Quedando finalmente algo cómo lo siguiente:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_c6EYhkUKGik/SkKrRq7aJ6I/AAAAAAAACCs/7DntcEV43nM/s1600-h/clip_image009%5B4%5D.jpg"&gt;&lt;img title="clip_image005" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="449" alt="clip_image005" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image005_5F00_1F7DBC4B.jpg" width="622" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Una vez hecho esto vamos a proceder a preparar el módulo. Se va a componer de tres partes, las dos primeras son comunes a cualquier tipo de modulo que queramos crear, la tercera tendrá una parte también común y otra que variará dependiendo del módulo que queramos realizar, que será la parte de la interfaz:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;1. &lt;b&gt;&lt;u&gt;Module:&lt;/u&gt;&lt;/b&gt; Inicializa el módulo en nuestro servidor, y lo añade a la consola del IIS para poder seleccionarlo.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;2. &lt;u&gt;Module Provider:&lt;/u&gt; Donde indicaremos el alcance de nuestro módulo, para todo el servidor, o local a ciertas partes, el tipo de módulo, etc.&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;3. &lt;b&gt;&lt;u&gt;Module Page:&lt;/u&gt;&lt;/b&gt; Esta es la parte más importante de nuestro módulo, aquí es donde programaremos la interface gráfica y las acciones del mismo.&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Ya que está claro de qué partes se compondrá nuestro módulo, ahora procedemos a montarlo.&lt;/p&gt;  &lt;p align="justify"&gt;Primero crearemos el Module, para ello agregamos un nuevo elemento al proyecto, le damos un nombre, por ejemplo, i64Module, y añadimos el siguiente código, en caso de utilizar otros nombres deberéis cambiar las diferentes llamadas que haya en el código a otras partes del módulo por el nombre que hayáis elegido:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;using System;&lt;/p&gt;            &lt;p&gt;using Microsoft.Web.Management.Client;&lt;/p&gt;            &lt;p&gt;using System.Windows.Forms;&lt;/p&gt;            &lt;p&gt;using Microsoft.Web.Management.Server;&lt;/p&gt;            &lt;p&gt;namespace proyecto_i64&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;internal class i64Module : Module&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;protected override void Initialize(IServiceProvider serviceProvider, Microsoft.Web.Management.Server.ModuleInfo moduleInfo)&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;base.Initialize(serviceProvider, moduleInfo);&lt;/p&gt;            &lt;p&gt;IControlPanel controlPanel = (IControlPanel)GetService(typeof(IControlPanel));&lt;/p&gt;            &lt;p&gt;ModulePageInfo modulePageInfo = new ModulePageInfo(this, typeof(i64Page), &amp;quot;Respuestas&amp;quot;, &amp;quot;Muestra proc&amp;quot;);&lt;/p&gt;            &lt;p&gt;controlPanel.RegisterPage(modulePageInfo);&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;En Segundo lugar tenemos que montar el Module Provider, volvemos a agregar un nuevo elemento al proyecto, le damos un nombre, por ejemplo: i64Provider, y añadimos el código siguiente:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;using System;&lt;/p&gt;            &lt;p&gt;using Microsoft.Web.Management.Server;&lt;/p&gt;            &lt;p&gt;namespace proyecto_i64&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;class i64Provider : ModuleProvider&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;//devuelve el tipo de módulo de servicios que está asociado con el proveedor de módulo&lt;/p&gt;            &lt;p&gt;public override Type ServiceType&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;get { return null; }&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;            &lt;p&gt;//metodo que devuelve informacion sobre nuestro modulo&lt;/p&gt;            &lt;p&gt;public override ModuleDefinition GetModuleDefinition(IManagementContext context)&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;return new ModuleDefinition(Name, typeof(i64Module).AssemblyQualifiedName);&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;            &lt;p&gt;//decide el alcance del modulo, en nuestro caso, TODO el servidor&lt;/p&gt;            &lt;p&gt;public override bool SupportsScope(ManagementScope scope)&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;return true;&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;En tercer lugar tenemos que montar el Module Page, volvemos a agregar un Nuevo elemento al proyecto y le damos un nombre, por ejemplo: i64Page. Esta parte es la más compleja, así que vamos a ir por partes, en primer lugar debemos crear el esqueleto, por lo que agregaremos el siguiente código:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;using System;&lt;/p&gt;            &lt;p&gt;using System.Windows.Forms;&lt;/p&gt;            &lt;p&gt;using Microsoft.Web.Administration;&lt;/p&gt;            &lt;p&gt;using Microsoft.Web.Management.Client.Win32;&lt;/p&gt;            &lt;p&gt;namespace proyecto_i64&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;internal class i64Page : ModulePage&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;Microsoft.Web.Administration.ServerManager manager = new ServerManager();&lt;/p&gt;            &lt;p&gt;public i64Page()&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;InitializeComponent();&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;            &lt;p&gt;private void InitializeComponent()&lt;/p&gt;            &lt;p&gt;{&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;            &lt;p&gt;}&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Una vez agregado, vamos a estudiarlo. Nada más empezar tenemos la siguiente línea de código: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;Microsoft.Web.Administration.ServerManager manager = new ServerManager();&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;Esta línea crea una nueva ServiceManager que podemos utilizar para recuperar las solicitudes de nuestro servidor, en caso de que lo necesitemos. Después ya podemos ver la función que inicializará nuestro módulo. Ahora queremos programar una interface gráfica para nuestro módulo. Para ellos vamos a aprovechar la característica Forms que nos brinda .NET, desde la que podemos agregar todo tipo de elementos gráficos pinchándolos con el botón del ratón y arrastrando desde una toolbar. Para poder utilizar Forms, debemos hacer un pequeño truco, tenemos que cambiar el tipo de clase actual:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;internal class i64Page : ModulePage&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;por el siguiente:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;internal class i64Page : Form&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Ahora si hacemos doble clic en el explorador de soluciones sobre nuestra clase i64Page, se nos abrirá una ventana con un fondo blanco, este será el aspecto de nuestro módulo, si abrimos el cuadro de herramientas, veremos todos los posibles elementos que le podemos agregar, por ejemplo, podéis agregar un button y un campo label, cambiar fondos de la pantalla, tipos de letra,... Si queremos que alguno de estos elementos interactúe con nuestro módulo haremos doble clic sobre él una vez que lo hayamos agregado, de esta manera se nos añade el sólo al código de nuestra clase i64Page. &lt;/p&gt;  &lt;p align="justify"&gt;Una vez agregados los elementos volvemos a dejar el tipo de la clase como estaba antes, si no, nos dará fallo de compilación:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;internal class i64Page : ModulePage&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Ahora veremos que se nos han añadido varias partes nuevas a nuestro código. Primero veremos que nada más empezar la clase se nos han incluido la declaración del button y el label, y de los demás elementos que agregasemos antes. Después en la función InitializeComponent(), se nos ha añadido todo el apartado gráfico de los elementos que hemos agregado, esto lo hace internamente el Visual Studio, por lo que directamente procedemos a ignorarlo. Por otro lado vemos que se nos ha añadido una función nueva por cada elemento insertado en el que hicimos doble clic. En estas funciones es donde debemos programar lo que queremos que haga nuestro módulo, por ejemplo en la función button, podemos decirle que muestre un determinado texto en el label.&lt;/p&gt;  &lt;p align="justify"&gt;Ya tenemos nuestro módulo terminado, si lo guardamos y compilamos, el gacutil firmará el ensamblado y podremos acceder a él en la ruta: C:\Windows\assembly. Le buscamos en dicha carpeta y deberemos copiar el key que le ha sido asignado, para ello (pulsamos botón derecho sobre el, propiedades y lo copiamos:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/_c6EYhkUKGik/SkKrS8PucBI/AAAAAAAACC0/K3kPkWPPe7o/s1600-h/clip_image011%5B4%5D.jpg"&gt;&lt;img title="clip_image006" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="526" alt="clip_image006" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image006_5F00_0BF2ED5B.jpg" width="509" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Ahora debemos irnos al fichero Administration.config, en la ruta:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;c:\windows\system32\inetsrv\config\Administration.config&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Y modificaremos 2 líneas. Para abrirlo veréis que posiblemente no tengáis derechos de administrador, por lo que hay que subir los derechos del fichero o bien abrirlo desde el WordPad por ejemplo ejecutándolo como administrador: &lt;/p&gt;  &lt;p align="justify"&gt;Buscamos la línea &amp;lt;ModuleProviders&amp;gt; dentro del fichero y añadimos después la siguiente línea, sustituyendo la palabra KEY por el key que antes copiamos:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;&amp;#160;&lt;/td&gt;          &lt;td&gt;&amp;#160;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&amp;lt;add name=&amp;quot;CurrentRequestsUI&amp;quot; type=&amp;quot;CurrentRequestsUI.RequestModuleProvider, CurrentRequestsUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=269f1cc1a4bf892b&amp;quot; /&amp;gt; &amp;lt;add name=&amp;quot;proyecto_i64&amp;quot; type=&amp;quot;proyecto_i64. i64Provider, proyecto_i64, Version=1.0.0.0, Culture=neutral, PublicKeyToken=KEY&amp;quot; /&amp;gt; &lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;&amp;#160;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Ahora buscamos la línea &amp;lt;modules&amp;gt; y añadimos la siguiente línea: &lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&amp;lt;add name=&amp;quot;CurrentRequestsUI&amp;quot; /&amp;gt; &amp;lt;add name=&amp;quot;proyecto_i64&amp;quot; /&amp;gt; &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Si habéis dado otros nombres al proyecto y al provider deberéis modificarlos por los correspondientes.&lt;/p&gt;  &lt;p align="justify"&gt;Una vez hecho todo, reiniciamos el servidor, para ello abrimos una consola en modo administrador y escribimos: &lt;b&gt;&lt;i&gt;iisreset&lt;/i&gt;&lt;/b&gt;. &lt;/p&gt;  &lt;p align="justify"&gt;Con esto ya deberíamos tener el módulo funcionando y con un icono seleccionable en nuestro servidor:&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/_c6EYhkUKGik/SkKrUAj5zAI/AAAAAAAACC8/q17oatMDWI0/s1600-h/clip_image013%5B4%5D.jpg"&gt;&lt;img title="clip_image007" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="555" alt="clip_image007" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image007_5F00_71B7A598.jpg" width="503" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;Si lo abrimos podremos ver la interface de nuestro módulo. Para restar complejidad al post he decidido no comentar aspectos sobre la interfaz, que son comunes a cualquier otro desarrollo realizado en .NET por lo que para ello podréis acceder a numerosos manuales oficiales donde os explicarán en profundidad esta tarea. &lt;/p&gt;  &lt;p align="justify"&gt;Saludos! Y hasta el próximo post&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.windowstecnico.com/aggbug.aspx?PostID=1165" width="1" height="1"&gt;</description><category domain="http://www.windowstecnico.com/archive/tags/Interfaz/default.aspx">Interfaz</category><category domain="http://www.windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://www.windowstecnico.com/archive/tags/IIS/default.aspx">IIS</category><category domain="http://www.windowstecnico.com/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://www.windowstecnico.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://www.windowstecnico.com/archive/tags/Programacion/default.aspx">Programacion</category><category domain="http://www.windowstecnico.com/archive/tags/.Net/default.aspx">.Net</category></item><item><title>Diseñar juegos para Windows y XBOX 360 con Microsoft XNA (II de VI)</title><link>http://www.windowstecnico.com/archive/2009/09/07/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-ii.aspx</link><pubDate>Sun, 06 Sep 2009 22:53:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:673</guid><dc:creator>Juan Antonio</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.windowstecnico.com/rsscomments.aspx?PostID=673</wfw:commentRss><comments>http://www.windowstecnico.com/archive/2009/09/07/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-ii.aspx#comments</comments><description>&lt;p align="justify"&gt;Buenas a todos, en el post de hoy vamos a continuar con la cadena de posts sobre Microsoft XNA, comenzando por donde lo dejamos el ultimo d&amp;iacute;a, la instalaci&amp;oacute;n del producto.&lt;/p&gt;
&lt;p align="justify"&gt;Para instalar la plataforma completa deberemos tener dos ejecutables diferentes, el primero ser&amp;aacute; el archivo que nos instalar&amp;aacute; el Visual Studio Express Edition, bien la versi&amp;oacute;n 2005 &amp;oacute; bien la versi&amp;oacute;n 2008 seg&amp;uacute;n la que nos hayamos descargado. El segundo ser&amp;aacute; el instalador de XNA, donde se encuentran todas las librer&amp;iacute;as necesarias para la programaci&amp;oacute;n de videojuegos.&lt;/p&gt;
&lt;p align="justify"&gt;Hacemos doble clic en el primero de ellos, el Visual Studio, como ver&amp;eacute;is es un instalador normal, procederemos con la t&amp;eacute;cnica del &amp;ldquo;siguiente, siguiente,&amp;hellip;&amp;rdquo;, por lo que no nos vamos a entretener mas en explicarlo. Una vez instalado, instalaremos XNA desde su ejecutable de la misma manera.&lt;/p&gt;
&lt;p align="justify"&gt;Tras instalar ambos elementos, abrimos el Visual Studio:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_7A4E438A.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="539" alt="image" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_59849D9A.png" width="432" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Una vez abierto iremos a la pesta&amp;ntilde;a &amp;ldquo;Archivo&amp;rdquo; y seleccionaremos &amp;ldquo;Nuevo proyecto&amp;rdquo;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_53871DB6.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="574" alt="image" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_565484BC.png" width="427" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Deber&amp;iacute;amos ver lo siguiente:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_2ACAF6C6.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="342" alt="image" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_664307D9.png" width="580" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Ya tenemos todo preparado para empezar a programar nuestros videojuegos. Pero antes de tirarnos al rio, vamos a aprender jugando un poco. Como habr&amp;eacute;is visto en la imagen anterior, al instalarnos XNA, se nos ha instalado el c&amp;oacute;digo fuente de un videojuego que nos dan de ejemplo, al que han llamado &amp;ldquo;Platformer Starter Kit (3.1)&amp;rdquo;. Vamos a utilizar este c&amp;oacute;digo y generar el juego para practicar, para ello seleccionaremos el icono del mu&amp;ntilde;eco que pone &amp;ldquo;Platformer Starter Kit (3.1)&amp;rdquo;, le daremos un nombre, una ubicaci&amp;oacute;n y aceptamos, deber&amp;iacute;amos ver, el siguiente &amp;aacute;rbol de clases en el explorador de soluciones:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_6D1D4D62.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="1040" alt="image" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_7C5646E0.png" width="380" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;No os asust&amp;eacute;is al verlo, aunque sea muy grande, es porque est&amp;aacute; el videojuego programado para las tres plataformas, es decir, es el mismo c&amp;oacute;digo, pero copiado tres veces para ejecutarse en Windows, en Xbox 360 y en Zune.&lt;/p&gt;
&lt;p align="justify"&gt;Si compilamos y ejecutamos el juego, pulsando F5, podremos jugar a nuestro primer juego hecho con XNA.&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_532B5C4A.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="320" alt="image" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_7252D8E5.png" width="531" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Tras haber jugado un poco con esta especie de &amp;ldquo;Indiana Jones&amp;rdquo; en 2D, vamos a pararnos un rato a estudiar el c&amp;oacute;digo. C&amp;oacute;mo ver&amp;eacute;is, tenemos numerosas cosas, en primer lugar veremos 3 grandes bloques, uno con un icono de Windows, otro con un icono de Xbox 360 y otro con el icono de Zune, como es obvio y habr&amp;eacute;is intuido, es el mismo juego, pero programado para las tres plataformas diferentes. Si ahora nos centramos en el bloque del c&amp;oacute;digo de Windows, veremos numerosas clases diferentes, &amp;ldquo;enemy, animation, gem, player &amp;hellip;&amp;rdquo;, pero &amp;iquest;para qu&amp;eacute; queremos todas estas clases? Bien, cuando creemos un nuevo proyecto, se nos generar&amp;aacute; una &amp;uacute;nica clase llamada &amp;ldquo;game&amp;rdquo;, donde contendr&amp;aacute; todos los elementos necesarios para ejecutar el videojuego, pero por mantener un poco de orden y limpieza, y que cuando llevemos algunos cientos de l&amp;iacute;neas no nos comencemos a liar, est&amp;aacute; bien el utilizar una de las ventajas que nos ofrece C#, la orientaci&amp;oacute;n a objetos, y separar los elementos principales del juego en clases independientes, que iremos instanciando en la clase &amp;ldquo;game&amp;rdquo; seg&amp;uacute;n vayamos necesitando. Por ejemplo, podemos separar en clases independientes los movimientos que puede realizar el personaje principal del juego de los de otros personajes que salgan en el juego, sus texturas y variables, &amp;hellip; Si no ten&amp;eacute;is muy claro a&amp;uacute;n de que estamos hablando, cuando veamos algo de c&amp;oacute;digo volveremos sobre ello.&lt;/p&gt;
&lt;p align="justify"&gt;Por otro lado, adem&amp;aacute;s de las clases, ver&amp;eacute;is una secci&amp;oacute;n en la que pone HighResolutionContent y otra que pone SharedContent, estas son las carpetas que contendr&amp;aacute;n las im&amp;aacute;genes, fondos, m&amp;uacute;sicas y dem&amp;aacute;s elementos externos que utiliza el videojuego. Todos estos elementos externos como im&amp;aacute;genes, sonidos, m&amp;uacute;sica de fondo&amp;hellip; los almacenaremos en la carpeta &amp;ldquo;Content&amp;rdquo;, que se nos ha generado dentro de la carpeta ra&amp;iacute;z del proyecto, y luego podremos ir generando dentro de ella subcarpetas para organizar todo un poco.&lt;/p&gt;
&lt;p align="justify"&gt;Tras explicaros un poco a &amp;ldquo;groso modo&amp;rdquo; el contenido del videojuego de muestra, vamos a cerrarlo y a crear el proyecto de nuestro primer videojuego.&lt;/p&gt;
&lt;p align="justify"&gt;Al igual que antes vamos a la pesta&amp;ntilde;a &amp;ldquo;Archivo&amp;rdquo; y seleccionamos &amp;ldquo;Nuevo proyecto&amp;rdquo;, se nos abrir&amp;aacute;n todas las plantillas que podemos seleccionar, de todos los elementos que salen a nosotros solo nos interesan tres de ellos:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; Windows Game (3.1)&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; Xbox 360 Game (3.1)&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; Zune Game (3.1)&lt;/p&gt;
&lt;p align="justify"&gt;Para comenzar vamos a generar un &amp;ldquo;Windows Game&amp;rdquo;. Bien, ahora le damos un nombre, una ubicaci&amp;oacute;n y aceptamos.&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_26D57A38.png"&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="512" alt="image" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_3B7F750B.png" width="360" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Si os fij&amp;aacute;is en el explorador de soluciones, ya no tenemos todas las clases que ten&amp;iacute;amos en el videojuego anterior, como os dije solo tenemos ahora una clase llamada Game1, donde deberemos programar todo el juego. Por otro lado tenemos otra clase llamada Program, que ignoraremos, ya que simplemente es la encargada de llamar a la clase Game1 para ejecutar el juego.&lt;/p&gt;
&lt;p align="justify"&gt;Para finalizar por hoy, vamos a abrir el c&amp;oacute;digo de la clase Game1.cs y estudiarlo un poco, para ello, podemos hacer doble clic sobre ella, se os abrir&amp;aacute; la clase con el siguiente c&amp;oacute;digo que vamos a analizar por partes:&lt;/p&gt;
&lt;p align="justify"&gt;En primer lugar veremos todas las librer&amp;iacute;as que utiliza, si os fij&amp;aacute;is la mayor&amp;iacute;a llaman a la biblioteca de Xna:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;   
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;using System;&lt;/p&gt;
&lt;p&gt;using System.Collections.Generic;&lt;/p&gt;
&lt;p&gt;using System.Linq;&lt;/p&gt;
&lt;p&gt;using Microsoft.Xna.Framework;&lt;/p&gt;
&lt;p&gt;using Microsoft.Xna.Framework.Audio;&lt;/p&gt;
&lt;p&gt;using Microsoft.Xna.Framework.Content;&lt;/p&gt;
&lt;p&gt;using Microsoft.Xna.Framework.GamerServices;&lt;/p&gt;
&lt;p&gt;using Microsoft.Xna.Framework.Graphics;&lt;/p&gt;
&lt;p&gt;using Microsoft.Xna.Framework.Input;&lt;/p&gt;
&lt;p&gt;using Microsoft.Xna.Framework.Media;&lt;/p&gt;
&lt;p&gt;using Microsoft.Xna.Framework.Net;&lt;/p&gt;
&lt;p&gt;using Microsoft.Xna.Framework.Storage;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Avanzando un poco llegamos a una serie de funciones, de las cuales nos centraremos &amp;uacute;nicamente en cuatro de ellas, ya que ser&amp;aacute;n las &amp;uacute;nicas que debemos tocar a la hora de programar el juego.&lt;/p&gt;
&lt;p align="justify"&gt;La primera de las cuatro funciones que aparecen es la funci&amp;oacute;n Initialize, esta funci&amp;oacute;n se ejecuta &amp;uacute;nicamente cuando se inicia el videojuego, as&amp;iacute; que la aprovecharemos para inicializar variables, inicializar las texturas de los personajes e inicializar el tama&amp;ntilde;o de pantalla del videojuego:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;   
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;protected override void Initialize()&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;// TODO: Add your initialization logic here&lt;/p&gt;
&lt;p&gt;base.Initialize();&lt;/p&gt;
&lt;p&gt;}&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;La siguiente funci&amp;oacute;n, LoadContent, la utilizaremos para cargar las im&amp;aacute;genes (que almacenaremos en la carpeta &amp;ldquo;Content&amp;rdquo;) que representaran las texturas del juego y los sonidos y dem&amp;aacute;s elementos externos que requiramos en el videojuego:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;   
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;protected override void LoadContent()&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;// Create a new SpriteBatch, which can be used to draw textures.&lt;/p&gt;
&lt;p&gt;spriteBatch = new SpriteBatch(GraphicsDevice);&lt;/p&gt;
&lt;p&gt;// TODO: use this.Content to load your game content here&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Las dos funciones anteriores, Initialize y LoadContent se ejecutar&amp;aacute;n &amp;uacute;nicamente al principio del juego. Ahora vamos a explicar las siguiente funciones que se ejecutaran de manera infinita hasta que el juego finalice, es decir, en un bucle cuya funci&amp;oacute;n de salida es cerrar el videojuego.&lt;/p&gt;
&lt;p align="justify"&gt;En la funci&amp;oacute;n Update deberemos programar las acciones que determinen las modificaciones en el juego, es decir, por ejemplo, si el personaje principal, se mueve hasta la mitad de la pantalla y hay una piedra, que no pueda avanzar m&amp;aacute;s, o por poner otro ejemplo, si estamos programando un juego de coches, si el jugador pulsa la tecla flecha izquierda, haremos que el coche gire a la izquierda:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;   
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;protected override void Update(GameTime gameTime)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;// Allows the game to exit&lt;/p&gt;
&lt;p&gt;if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)&lt;/p&gt;
&lt;p&gt;this.Exit();&lt;/p&gt;
&lt;p&gt;// TODO: Add your update logic here&lt;/p&gt;
&lt;p&gt;base.Update(gameTime);&lt;/p&gt;
&lt;p&gt;}&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Finalmente nos encontraremos con la function Draw, que se ejecutar&amp;aacute; despu&amp;eacute;s de la funci&amp;oacute;n Update, y ser&amp;aacute; la encargada de dibujar todos los elementos en pantalla, por tanto, si se ha producido un cambio en el juego en la funci&amp;oacute;n Update, cambiaremos los objetos de pantalla para reproducir ese cambio en la funci&amp;oacute;n draw. Por continuar el ejemplo, si tenemos el coche en el centro de la pantalla, y en la funci&amp;oacute;n Update detectamos que el jugador a pulsado la tecla izquierda, y hemos indicado al coche, que gire a la izquierda unos pixels, dibujaremos el coche en esta iteraci&amp;oacute;n del bucle general unos pixels mas a la izquierda, para visualizar la acci&amp;oacute;n que ha ejercido el jugador sobre el teclado en la pantalla:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;   
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;protected override void Draw(GameTime gameTime)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;GraphicsDevice.Clear(Color.CornflowerBlue);&lt;/p&gt;
&lt;p&gt;// TODO: Add your drawing code here&lt;/p&gt;
&lt;p&gt;base.Draw(gameTime);&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Con todo esto, ten&amp;eacute;is para practicar durante los pr&amp;oacute;ximos d&amp;iacute;as, hoy ya hemos visto un c&amp;oacute;digo terminado, es m&amp;aacute;s sencillo de lo que parece a primera vista, y como hab&amp;eacute;is visto en el videojuego que estamos programando desde cero, las funciones para las que debemos generar el c&amp;oacute;digo se resumen en cuatro muy sencillas de entender y que tienen una finalidad muy delimitada, lo que las simplifica enormemente.&lt;/p&gt;
&lt;p align="justify"&gt;El pr&amp;oacute;ximo d&amp;iacute;a rellenaremos estas cuatro funciones para generar nuestro primer juego, en &amp;eacute;l, a&amp;ntilde;adiremos un mu&amp;ntilde;eco que se mueva por la pantalla, un ejemplo sencillo y muy ilustrativo, por si quer&amp;eacute;is ir prepar&amp;aacute;ndolo, necesitaremos un fondo como el que hab&amp;eacute;is visto en el videojuego &amp;ldquo;Platformer Starter Kit (3.1)&amp;rdquo;, y dos im&amp;aacute;genes de un mu&amp;ntilde;eco mirando hacia ambos lados. &lt;/p&gt;
&lt;p align="justify"&gt;Un saludo y espero est&amp;eacute;is disfrutando del manual!!&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;****************************************************************&lt;/p&gt;
&lt;p align="justify"&gt;-&amp;nbsp;&lt;a href="http://www.windowstecnico.com/archive/2009/08/31/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-i.aspx"&gt;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (I de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;-&amp;nbsp;&lt;a href="http://www.windowstecnico.com/archive/2009/09/07/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-ii.aspx"&gt;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (II de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;-&amp;nbsp;&lt;a href="http://www.windowstecnico.com/archive/2009/09/14/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-iii.aspx"&gt;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (III de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;-&amp;nbsp;&lt;a href="http://www.windowstecnico.com/archive/2009/09/17/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-iv.aspx"&gt;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (IV de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;-&amp;nbsp;&lt;a href="http://www.windowstecnico.com/archive/2009/09/22/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-v.aspx"&gt;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (V de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;-&lt;a href="http://www.windowstecnico.com/archive/2009/09/28/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-vi.aspx" title="Dise&amp;ntilde;ar juegos XNA"&gt;&amp;nbsp;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (VI de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;****************************************************************&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.windowstecnico.com/aggbug.aspx?PostID=673" width="1" height="1"&gt;</description><category domain="http://www.windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://www.windowstecnico.com/archive/tags/Xna/default.aspx">Xna</category><category domain="http://www.windowstecnico.com/archive/tags/Videojuegos/default.aspx">Videojuegos</category><category domain="http://www.windowstecnico.com/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://www.windowstecnico.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://www.windowstecnico.com/archive/tags/Programacion/default.aspx">Programacion</category><category domain="http://www.windowstecnico.com/archive/tags/.Net/default.aspx">.Net</category></item><item><title>Diseñar juegos para Windows y XBOX 360 con Microsoft XNA (I de VI)</title><link>http://www.windowstecnico.com/archive/2009/08/31/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-i.aspx</link><pubDate>Mon, 31 Aug 2009 08:38:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:656</guid><dc:creator>Juan Antonio</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.windowstecnico.com/rsscomments.aspx?PostID=656</wfw:commentRss><comments>http://www.windowstecnico.com/archive/2009/08/31/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-i.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_49925BD7.png"&gt;&lt;img border="0" width="240" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_0F3C0758.png" alt="image" height="200" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="image" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Buenas a todos, tras una temporada de relax por vacaciones, vuelvo a Windows T&amp;eacute;cnico con un tema que atraer&amp;aacute; a muchos usuarios de videojuegos que a&amp;uacute;n sabiendo algo de programaci&amp;oacute;n no han tenido la oportunidad de programarse sus propios videojuegos por la complicaci&amp;oacute;n que esto conllevaba. Esto gracias a Microsoft XNA ya es historia, ya que con esta plataforma, el dise&amp;ntilde;o y la programaci&amp;oacute;n de videojuegos ser&amp;aacute; una tarea bastante sencilla si poseemos algunos conocimientos de programaci&amp;oacute;n.&lt;/p&gt;
&lt;p align="justify"&gt;A lo largo de las pr&amp;oacute;ximas semanas vamos a introducirnos en la plataforma XNA de Microsoft, que nos permitir&amp;aacute; programar nuestros propios videojuegos para Windows y XBOX 360, aprenderemos el contenido necesario que requiere un juego para ejecutarse, hablaremos de c&amp;oacute;mo conseguir efectos visuales atractivos, movimientos y de c&amp;oacute;mo conseguir que un jugador pueda interactuar con los contenidos del juego y finalmente tras aprender c&amp;oacute;mo funciona un videojuego internamente, programaremos nuestro primer juego.&lt;/p&gt;
&lt;p align="justify"&gt;En el post de hoy, vamos a empezar explicando el porqu&amp;eacute; de XNA, que es, cuanto lleva entre nosotros, que clase de videojuegos nos va a permitir crear y sobretodo que facilidades nos proporcionar&amp;aacute; para ello.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;Qu&amp;eacute; es Microsoft XNA?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;XNA es una plataforma de desarrollo de videojuegos que nos permitir&amp;aacute; programar todo tipo de videojuegos sin limitaciones tanto en 2D, como en 3D, gracias a una rica biblioteca de clases.&lt;/p&gt;
&lt;p align="justify"&gt;XNA se instala sobre Visual Studio C# 2005/2008 Express Edition, la versi&amp;oacute;n gratuita de Visual Studio para programar en C#, por lo que la programaci&amp;oacute;n de videojuegos bajo esta plataforma es totalmente gratuita.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;Tiene alg&amp;uacute;n coste la programaci&amp;oacute;n en XNA?, &amp;iquest;C&amp;oacute;mo lo podemos obtener?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Como os acabo de contar, la programaci&amp;oacute;n de videojuegos es totalmente gratuita, simplemente nos descargaremos Visual Studio C# 2005 Express Edition &amp;oacute; Visual Studio C# 2008 Express Edition desde el siguiente enlace:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.microsoft.com/express/download/default.aspx#webInstall"&gt;http://www.microsoft.com/express/download/default.aspx#webInstall&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Nos daremos de alta con nuestra cuenta de Hotmail como habitualmente, y nos enviar&amp;aacute;n una licencia de uso totalmente gratis.&lt;/p&gt;
&lt;p align="justify"&gt;Despu&amp;eacute;s, nos bajaremos la biblioteca de clases de XNA:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=80782277-d584-42d2-8024-893fcd9d3e82&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=80782277-d584-42d2-8024-893fcd9d3e82&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Y la instalaremos.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;Qu&amp;eacute; versi&amp;oacute;n de XNA nos tenemos que descargar?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;En la actualidad XNA va por la versi&amp;oacute;n 3.1, la cual es necesaria si queremos programar adem&amp;aacute;s de los juegos, los Xbox LIVE Indie Games, los mu&amp;ntilde;ecos o avatares que nos representan a nosotros en nuestra consola Xbox 360 e integrarlos en los juegos, &amp;iquest;una aut&amp;eacute;ntica pasada no?&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;En qu&amp;eacute; sistemas operativos podemos instalar Microsoft XNA?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;XNA se puede instalar en todos los sistemas operativos de Microsoft a partir de Windows XP SP2. Yo lo tengo instalado sobre Windows 7 funcionando de maravilla :)&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;Cu&amp;aacute;ndo comenz&amp;oacute; Microsoft XNA?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;XNA comenz&amp;oacute; a mediados del 2006 con la versi&amp;oacute;n beta, que se hizo definitiva a finales del mismo a&amp;ntilde;o.&lt;/p&gt;
&lt;p align="justify"&gt;En sus posteriores versiones se han ido a&amp;ntilde;adiendo novedades como la integraci&amp;oacute;n con la versi&amp;oacute;n 2008 de Visual Studio, la posibilidad de programar videojuegos para Zune, el reproductor multimedia de Microsoft, y se han aumentado el n&amp;uacute;mero de clases y resuelto algunos bugs..&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;En donde podremos ejecutar nuestros juegos?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Podremos programar videojuegos tanto para PC, como para XBOX 360, como para Zune.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;Podr&amp;aacute; alguien jugar con nuestros juegos?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Por supuesto, de hecho es uno de los aspectos m&amp;aacute;s importantes con los que se ha pensado y dise&amp;ntilde;ado XNA, &amp;ldquo;videojuegos de todos y para todos&amp;rdquo;, por ello han querido generar una plataforma sencilla y f&amp;aacute;cil de entender por el usuario medio.&lt;/p&gt;
&lt;p align="justify"&gt;En el siguiente link, encontrareis la comunidad que ha creado Microsoft para que todo el mundo pueda participar, intercambiar videojuegos, que sean probados por revisores, podr&amp;eacute;is conseguir manuales, c&amp;oacute;digos fuentes, los programas necesarios para el desarrollo de videojuegos y muchas cosas m&amp;aacute;s:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://creators.xna.com/es-ES/"&gt;http://creators.xna.com/es-ES/&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;Es diferente programar un videojuego de Windows a uno de XBOX 360?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;No, la programaci&amp;oacute;n de los videojuegos es la misma, simplemente para interactuar con el ordenador, tendremos que indicarle a nuestro programa que capture las teclas o los movimientos del rat&amp;oacute;n y en el caso de la Xbox 360, que capture las pulsaciones de los botones del mando, como ver&amp;eacute;is en pr&amp;oacute;ximos post esta tarea es muy sencilla.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;En qu&amp;eacute; lenguaje de programaci&amp;oacute;n se programan los videojuegos de XNA?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Los videojuegos se programan en C#. Si no est&amp;aacute;is familiarizados con el lenguaje os dir&amp;eacute; que es hoy por hoy el presente y el futuro de Microsoft y de much&amp;iacute;simas otras empresas tras convertirse en un est&amp;aacute;ndar. Es un lenguaje derivado de C/C++ orientado a objetos y que se encuentra totalmente integrado con la plataforma .NET. Si busc&amp;aacute;is por internet encontrar&amp;eacute;is infinidad de manuales y como ver&amp;eacute;is si ten&amp;eacute;is conocimientos de programaci&amp;oacute;n en C/C++ o Java, adaptaros a C# ser&amp;aacute;n escasos cinco minutos.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;Qu&amp;eacute; clase de videojuegos podremos crear?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Con XNA podremos programar todo tipo de juegos en 2D y recordar la m&amp;iacute;tica &amp;eacute;poca del mundo de las consolas en la d&amp;eacute;cada de los 80-90 o bien videojuegos modernos en 3D, para estos &amp;uacute;ltimos l&amp;oacute;gicamente necesitareis ayudaros de un programa de dise&amp;ntilde;o 3D c&amp;oacute;mo 3ds Max, y luego importar los elementos que gener&amp;eacute;is a XNA. Si no quer&amp;eacute;is quedaros solo en la programaci&amp;oacute;n de videojuegos en 2D y quer&amp;eacute;is dar el salto a 3D pero no quer&amp;eacute;is aprender a dise&amp;ntilde;ar figuras en 3D, siempre pod&amp;eacute;is descargaros algunas por internet, con cualquier buscador encontrareis cientos de ellas, yo hace poco me descargu&amp;eacute; unos cuantos coches modernos en 3D para practicar un poco.&lt;/p&gt;
&lt;p align="justify"&gt;As&amp;iacute; que ya solo me queda decir, que os anim&amp;eacute;is a seguir esta cadena de posts que hoy comenzamos y program&amp;eacute;is vuestros propios videojuegos, que como ver&amp;eacute;is es una tarea m&amp;aacute;s sencilla de lo que parece y que os gustar&amp;aacute; y enganchar&amp;aacute;. Y si quer&amp;eacute;is intentad compartirlos con los dem&amp;aacute;s usuarios, quien sabe, quiz&amp;aacute;s entre ellos salga uno de los programadores del pr&amp;oacute;ximo Halo&amp;hellip; J&lt;/p&gt;
&lt;p align="justify"&gt;De momento para abriros el apetito, os dejo un video de un juego que he programado en una tarde (para que ve&amp;aacute;is la facilidad que nos proporciona XNA y el ahorro de tiempo en comparaci&amp;oacute;n con otras plataformas) versionando un poco uno de los juegos que m&amp;aacute;s me gustaron de mi infancia:&lt;/p&gt;
&lt;div style="display:block;float:none;margin-left:auto;width:425px;margin-right:auto;padding:0px;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:6912214d-f388-4bf7-96a0-62dc01cf291e" class="wlWriterEditableSmartContent"&gt;
&lt;div&gt;
&lt;object height="355" width="425"&gt;
&lt;param value="http://www.youtube.com/v/ychQYuSF3r8" name="movie" /&gt;
&lt;param name="wmode" value="transparent" /&gt;&lt;embed height="355" width="425" wmode="transparent" type="application/x-shockwave-flash" src="http://www.youtube.com/v/ychQYuSF3r8"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Os dejo tambi&amp;eacute;n algunas im&amp;aacute;genes y un video de varios videojuegos que han sido programados en XNA:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_026441EB.png"&gt;&lt;img border="0" width="461" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_3DE5D41B.png" alt="image" height="354" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_6D833100.png"&gt;&lt;img border="0" width="471" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_37CA994E.png" alt="image" height="361" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_64C1CB33.png"&gt;&lt;img border="0" width="466" src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_56AD1EFA.png" alt="image" height="305" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="display:block;float:none;margin-left:auto;width:425px;margin-right:auto;padding:0px;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:c83cb280-2159-4400-95f6-1f66883a757d" class="wlWriterEditableSmartContent"&gt;
&lt;div&gt;
&lt;object height="355" width="425"&gt;
&lt;param value="http://www.youtube.com/v/6Nuap6VG3gI&amp;amp;hl=es&amp;amp;fs=1&amp;amp;&amp;amp;hl=en" name="movie" /&gt;&lt;embed height="355" width="425" type="application/x-shockwave-flash" src="http://www.youtube.com/v/6Nuap6VG3gI&amp;amp;hl=es&amp;amp;fs=1&amp;amp;&amp;amp;hl=en"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;C&amp;oacute;mo veis mi videojuego es algo m&amp;aacute;s humilde a los de las capturas que os acabo de mostrar, pero como siempre en la vida, empezaremos la casa por los cimientos para luego escalar hasta el tejado.&lt;/p&gt;
&lt;p align="justify"&gt;En el pr&amp;oacute;ximo post, hablaremos de c&amp;oacute;mo instalar todos los elementos que nos hemos descargado, c&amp;oacute;mo crear el proyecto de nuestro primer videojuego y hablaremos finalmente de las partes de las que se compone un juego.&lt;/p&gt;
&lt;p align="justify"&gt;Saludos!&lt;/p&gt;
&lt;p align="justify"&gt;****************************************************************&lt;/p&gt;
&lt;p align="justify"&gt;-&amp;nbsp;&lt;a href="http://www.windowstecnico.com/archive/2009/08/31/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-i.aspx"&gt;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (I de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;-&amp;nbsp;&lt;a href="http://www.windowstecnico.com/archive/2009/09/07/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-ii.aspx"&gt;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (II de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;-&amp;nbsp;&lt;a href="http://www.windowstecnico.com/archive/2009/09/14/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-iii.aspx"&gt;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (III de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;-&amp;nbsp;&lt;a href="http://www.windowstecnico.com/archive/2009/09/17/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-iv.aspx"&gt;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (IV de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;-&amp;nbsp;&lt;a href="http://www.windowstecnico.com/archive/2009/09/22/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-v.aspx"&gt;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (V de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;-&lt;a title="Dise&amp;ntilde;ar juegos XNA" href="http://www.windowstecnico.com/archive/2009/09/28/dise-241-a-tus-propios-videojuegos-para-windows-zune-y-xbox-360-con-microsoft-xna-parte-vi.aspx"&gt;&amp;nbsp;Dise&amp;ntilde;ar juegos para Windows y XBOX 360 con Microsoft XNA (VI de VI)&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;****************************************************************&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.windowstecnico.com/aggbug.aspx?PostID=656" width="1" height="1"&gt;</description><category domain="http://www.windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://www.windowstecnico.com/archive/tags/Xna/default.aspx">Xna</category><category domain="http://www.windowstecnico.com/archive/tags/Videojuegos/default.aspx">Videojuegos</category><category domain="http://www.windowstecnico.com/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://www.windowstecnico.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://www.windowstecnico.com/archive/tags/Programacion/default.aspx">Programacion</category><category domain="http://www.windowstecnico.com/archive/tags/.Net/default.aspx">.Net</category></item></channel></rss>