{"id":584,"date":"2018-08-30T10:00:04","date_gmt":"2018-08-30T09:00:04","guid":{"rendered":"http:\/\/www.programaraciegas.net\/?p=584"},"modified":"2020-02-04T12:04:53","modified_gmt":"2020-02-04T11:04:53","slug":"juega-a-adivinar-el-numero-con-applescript","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=584","title":{"rendered":"Juega a adivinar el n\u00famero con AppleScript"},"content":{"rendered":"<p>Con los conocimientos que ya tenemos en <strong>AppleScript<\/strong> podemos empezar a hacer aplicaciones m&aacute;s complejas como puede ser un simple juego de adivinar un n&uacute;mero.<\/p>\n<p><!--more--><\/p>\n<p>Nuestro script debe realizar las siguientes operaciones:<\/p>\n<ul>\n<li>Guardar un n&uacute;mero aleatorio entre 1 y 100 que hay que adivinar<\/li>\n<li>Preguntar al usuario por un n&uacute;mero entre 1 y 100<\/li>\n<li>Comprobar que lo introducido por el usuario es correcto<\/li>\n<li>Ver si el n&uacute;mero del usuario es igual, mayor o menor que el n&uacute;mero que hay que adivinar<\/li>\n<li>Si el n&uacute;mero es menor o mayor hay que dar un mensaje y seguir jugando<\/li>\n<li>Si se ha acertado el n&uacute;mero se da un mensaje y se termina el juego<\/li>\n<\/ul>\n<p>El c&oacute;digo propuesto a continuaci&oacute;n usa funciones, manejo de errores, estructuras condicionales, variables globales, cuadros de di&aacute;logo y generaci&oacute;n de n&uacute;meros aleatorios. Todo esto ya lo hemos visto en art&iacute;culos anteriores.<\/p>\n<p>El c&oacute;digo es el siguiente:<\/p>\n<p><code><br \/>\nglobal numeroPensado<br \/>\nset numeroPensado to 0<br \/>\njuego()<\/p>\n<p>on juego()<br \/>\n\tif numeroPensado = 0 then<br \/>\n\t\tset numeroPensado to random number from 1 to 10<br \/>\n\tend if<br \/>\n\tset dialogResult to display dialog \"?Qu\u00e9 n\u00famero he pensado?\" default answer \"\"<br \/>\n\ttry<br \/>\n\t\tset miNumero to the text returned of (dialogResult) as number<br \/>\n\ton error<br \/>\n\t\tset miNumero to 0<br \/>\n\t\tdisplay alert \"Debes introducir un n\u00famero entre 1 y 100\"<br \/>\n\t\tjuego()<br \/>\n\tend try<br \/>\n\tif miNumero \u2265 1 and miNumero \u2264 100 then<br \/>\n\t\tif miNumero = numeroPensado then<br \/>\n\t\t\tdisplay alert \"\u00a1Muy bien! Has acertado el n\u00famero que he pensado\"<br \/>\n\t\telse if miNumero < numeroPensado then\n\t\t\tdisplay alert \"El n\u00famero que he pensado es mayor que \" &#038; (miNumero as text)\n\t\t\tjuego()\n\t\telse if miNumero > numeroPensado then<br \/>\n\t\t\tdisplay alert \"El n\u00famero que he pensado es menor que \" & (miNumero as text)<br \/>\n\t\t\tjuego()<br \/>\n\t\tend if<br \/>\n\telse<br \/>\n\t\tdisplay alert \"Debes introducir un n\u00famero entre 1 y 100\"<br \/>\n\t\tjuego()<br \/>\n\tend if<br \/>\nend juego<br \/>\n<\/code><\/p>\n<h2>Propuesta de mejora<\/h2>\n<p>El c&oacute;digo de este peque&ntilde;o juego es simple pero se puede mejorar de muchas maneras. Aqu&iacute; se indican algunas mejoras que se podr&iacute;an hacer por parte de los lectores:<\/p>\n<ul>\n<li>Controlar que s&oacute;lo se tengan 5 oportunidades para adivinar el n&uacute;mero<\/li>\n<li>Reproducir sonidos cuando se acierte y se falle<\/li>\n<li>Hacer el juego inverso en el que el usuario piensa el n&uacute;mero y el ordenador va preguntando por el n&uacute;mero y el usuario responde si es mayor, menor o se ha acertado<\/li>\n<\/ul>\n<p>Pod&eacute;is enviarnos vuestras propuestas en los comentarios a este art&iacute;culo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con los conocimientos que ya tenemos en AppleScript podemos empezar a hacer aplicaciones m&aacute;s complejas como puede ser un simple juego de adivinar un n&uacute;mero.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80,6],"tags":[307,83,143,142],"class_list":["post-584","post","type-post","status-publish","format-standard","hentry","category-applescript","category-programacion","tag-adivina","tag-applescript-2","tag-azar","tag-juego"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=584"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/584\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}