{"id":1686,"date":"2014-01-16T20:53:15","date_gmt":"2014-01-16T19:53:15","guid":{"rendered":"https:\/\/ridgesolutions.ie\/?p=1686"},"modified":"2014-03-02T20:31:58","modified_gmt":"2014-03-02T19:31:58","slug":"new-scientist-enigma-1780-and-python","status":"publish","type":"post","link":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/","title":{"rendered":"New Scientist Enigma 1780 and Python"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.newscientist.com\/data\/images\/archive\/2948\/29480601thumb_300.jpg\" width=\"300\" height=\"145\" alt=\"Python program to solve New Scientist Engima 1780\" class=\"alignright\" \/><br \/>\nSometimes a body has to take a break from all this Software Engineering stuff and instead delve into some recretional programming, so with this in mind I decide to see if I could write a small python program to solve the <a href=\"http:\/\/www.newscientist.com\/\">New Scientist<\/a> <a href=\"http:\/\/www.newscientist.com\/article\/mg22029480.600-enigma-number-1780.html#.UtgmnfRdVWI\">Enigma #1780<\/a>.  This enigma is kind of like suduku on an <a href=\"http:\/\/en.wikipedia.org\/wiki\/Icosahedron\">icosahedron<\/a> of all things (a 20 faced thing).<\/p>\n<p>Anyway it was just for fun and I wasn&#8217;t looking for the &#8216;best&#8217; or most &#8216;elegant&#8217; solution to the problem, just one that kinda worked!  So I wrote a little program over Christmas which I got working (more or less).<\/p>\n<p>I enjoyed the challenge decided to try my hand at future enigmas &#8211; only to find out that Enigma #1780 was the last one ever, the New Scientist is giving them up &#8211; which is a great pity seeing as I have only started to get interested in them.<\/p>\n<p>Today I came across <a href=\"http:\/\/enigmaticcode.wordpress.com\/2013\/12\/18\/enigma-1780-pure-hedronism\/\">this<\/a> site which has python solutions for tonnes of Enigmas including 1780, it was on this site that I learned that 1780 is the last enigma.  They point out that there is a large archive of enigmas.<\/p>\n<p>In an attempt to codify the puzzle, I decided think about the flattened out icosahedron (its net) as a grid of 4 rows of 5 triangles, in this way an individual triangle can be referenced using a pair of numbers (i, j), where i varies between 0 and 4 and specifies the triangle&#8217;s &#8216;column&#8217; while j specifies its row.  Next I tried to come up with some rules that would find the coordinates of all of the triangles &#8216;connected&#8217; to the triangle at (i, j).<\/p>\n<p>Once all of that is done solving the puzzle given a valid input net is a matter of finding an empty triangle, finding the set of numbers that can go into that triangle, picking one of these numbers and recursively solving the puzzle for the update net, if the recursive solve fails for that number we try the next number and so on&#8230;.<\/p>\n<p>Anyway, the solve() function is called like this:<\/p>\n<pre>\r\nsolve(start_net, 0)\r\n<\/pre>\n<pre>\r\n#\r\n# Try to solve New Scientist Enigma 1780 (the last one!)\r\n#\r\n# Run like:\r\n#\r\n# solve(start_net, 0)\r\n#\r\nall_values = {1, 2, 3, 4, 5}\r\n\r\nnet_width = 5\r\nnet_height = 4;\r\n\r\n# get the value at (i, j)\r\ndef value_at(net, a):\r\n    i, j = a\r\n    return net[i + j * net_width]\r\n\r\n# set the value at (i, j)\r\ndef set_value_at(net, a, val):\r\n    i, j = a\r\n    net[i + j * net_width] = val\r\n\r\n\r\n# Create list to hold net values, initialised with zeros\r\nstart_net = [0] * (net_height * net_width)\r\n\r\n# insert the starting values\r\nset_value_at(start_net, (0,0), 2)\r\nset_value_at(start_net, (0,1), 5)\r\nset_value_at(start_net, (0,3), 1)\r\n\r\nset_value_at(start_net, (4,0), 4)\r\n#set_value_at(start_net, (4,2), 3)\r\nset_value_at(start_net, (4,3), 2)\r\n\r\n\r\n# loop i around if i > net_width (modulo)    \r\ndef mi(i):\r\n    return i % net_width\r\n\r\n# The connection rules for each row\r\ni_0 = [lambda i: (mi(i+1), 0), lambda i: (mi(i+2), 0), lambda i: (mi(i+3), 0), lambda i: (mi(i+4), 0), lambda i: (mi(i-1), 1),\r\n       lambda i: (mi(i-1), 2), lambda i: (mi(i), 1), lambda i: (mi(i+1), 2), lambda i: (mi(i+1), 1)]\r\n\r\ni_3 = [lambda i: (mi(i+1), 3), lambda i: (mi(i+2), 3), lambda i: (mi(i+3), 3), lambda i: (mi(i+4), 3), lambda i: (mi(i-1), 2),\r\n       lambda i: (mi(i), 1), lambda i: (mi(i), 2), lambda i: (mi(i+1), 1), lambda i: (mi(i+1), 2)]\r\n\r\ni_1 = [lambda i: (mi(i-1), 0), lambda i: (mi(i-1), 1), lambda i: (mi(i-1), 2), lambda i: (mi(i-1), 3), lambda i: (mi(i), 0),\r\n       lambda i: (mi(i), 2), lambda i: (mi(i), 3), lambda i: (mi(i+1), 0), lambda i: (mi(i+1), 1)]\r\n\r\ni_2 = [lambda i: (mi(i), 0), lambda i: (mi(i), 1), lambda i: (mi(i), 3), lambda i: (mi(i-1), 2), lambda i: (mi(i-1), 3),\r\n       lambda i: (mi(i+1), 0), lambda i: (mi(i+1), 1), lambda i: (mi(i+1), 2), lambda i: (mi(i+1), 3)]\r\n\r\ncons = [i_0, i_1, i_2, i_3]\r\n\r\n# is a connected to b?\r\ndef connected(a,b):\r\n    (i, j) = a\r\n    \r\n    if a == b:\r\n        return True;\r\n\r\n    return b in [d(i) for d in cons[j]]\r\n\r\n# gets a list of all triangle coordinates\r\ndef all_triangles():\r\n    return [(i % net_width, i \/\/ net_width) for i in range(0,net_height*net_width) ]\r\n\r\n# gets a list of all triangles connectd to a    \r\ndef connected_triangles(a):\r\n    return [b for b in all_triangles() if connected(a,b)]\r\n\r\ndef find_loc_of_first_empty_triangle(net):\r\n    try:\r\n        index = net.index(0)\r\n        return (index % net_width, index \/\/ net_width)\r\n    except:\r\n        return None \r\n\r\n# returns a list of all empty triangles\r\ndef all_empty_triangles(net):\r\n    return [a for a in all_triangles() if value_at(net, a) == 0]\r\n\r\n# returns the possible values (1..5) that can go into\r\n# the triangle a\r\ndef possible_values(net, a):\r\n    ct = connected_triangles(a)\r\n    used_values = {value_at(net, t) for t in ct}\r\n    return all_values - used_values - {value_at(net, a)}\r\n    \r\n\r\n# solve given a valid input net    \r\ndef solve(net, depth):\r\n    print ('solve, depth: ' + str(depth))\r\n    a = find_loc_of_first_empty_triangle(net)\r\n    \r\n    # if there are no free locations then the\r\n    # net if full and we have finished\r\n    if not a:\r\n        print ('net is full ' + str(net))\r\n        return net\r\n    \r\n    # get list of possible values for this triangle\r\n    possible = possible_values(net, a)\r\n    \r\n    # If we can't make a move then we need\r\n    # to backtrack\r\n    if not possible:\r\n        print ('No more possible moves for ' + str(a))\r\n        return []\r\n    \r\n    for v in possible:\r\n        \r\n        # create a copy of our current net\r\n        new_net = list(net)\r\n        \r\n        set_value_at(new_net, a, v)\r\n        result_net = solve(new_net, depth+1) \r\n\r\n        if result_net:\r\n            return result_net\r\n\r\n    return []\r\n\r\nif __name__ == \"__main__\":\r\n    res = solve(start_net, 0)\r\n#    \r\n<\/pre>\n<p><strong>Update, 07\/02\/2014<\/strong><br \/>\nThe answer to this Enigma as announced <a href=\"http:\/\/www.newscientist.com\/article\/mg22129550.300-enigma.html#.UvS_mPl_tWI\">here<\/a> is: 324125, thankfully the same as that announced by the Python program!  Unfortunately I didn&#8217;t win the competition, but I had loads of fun trying to write some software to solve it!  I might try a Haskell version next if I find the time&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sometimes a body has to take a break from all this Software Engineering stuff and instead delve into some recretional programming, so with this in mind I decide to see if I could write a small python program to solve the New Scientist Enigma #1780. This enigma is kind of like suduku on an icosahedron [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[301],"tags":[304,303,305],"class_list":["post-1686","post","type-post","status-publish","format-standard","hentry","category-by-kevin-godden","tag-enigma","tag-new-scientist","tag-pyhon"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Sometimes a body has to take a break from all this Software Engineering stuff and instead delve into some recretional programming, so with this in mind I decide to see if I could write a small python program to solve the New Scientist Enigma #1780. This enigma is kind of like suduku on an icosahedron\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Kevin Godden\"\/>\n\t<meta name=\"google-site-verification\" content=\"Kyj52YLp6GOPA44PVBffo9fjW8rgWHYYRF0ZYjfy6ss\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Systems and Embedded Software Engineering, Ireland. | Some thoughts of a busy Computer Engineer\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"New Scientist Enigma 1780 and Python\" \/>\n\t\t<meta property=\"og:description\" content=\"Sometimes a body has to take a break from all this Software Engineering stuff and instead delve into some recretional programming, so with this in mind I decide to see if I could write a small python program to solve the New Scientist Enigma #1780. This enigma is kind of like suduku on an icosahedron\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2014-01-16T19:53:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2014-03-02T19:31:58+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"New Scientist Enigma 1780 and Python\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Sometimes a body has to take a break from all this Software Engineering stuff and instead delve into some recretional programming, so with this in mind I decide to see if I could write a small python program to solve the New Scientist Enigma #1780. This enigma is kind of like suduku on an icosahedron\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#article\",\"name\":\"New Scientist Enigma 1780 and Python\",\"headline\":\"New Scientist Enigma 1780 and Python\",\"author\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/author\\\/kgodden\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"http:\\\/\\\/www.newscientist.com\\\/data\\\/images\\\/archive\\\/2948\\\/29480601thumb_300.jpg\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#articleImage\"},\"datePublished\":\"2014-01-16T20:53:15+00:00\",\"dateModified\":\"2014-03-02T20:31:58+00:00\",\"inLanguage\":\"en-US\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#webpage\"},\"articleSection\":\"By Ridge Solutions, Enigma, New Scientist, Pyhon\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.ridgesolutions.ie\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/category\\\/by-kevin-godden\\\/#listItem\",\"name\":\"By Ridge Solutions\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/category\\\/by-kevin-godden\\\/#listItem\",\"position\":2,\"name\":\"By Ridge Solutions\",\"item\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/category\\\/by-kevin-godden\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#listItem\",\"name\":\"New Scientist Enigma 1780 and Python\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#listItem\",\"position\":3,\"name\":\"New Scientist Enigma 1780 and Python\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/category\\\/by-kevin-godden\\\/#listItem\",\"name\":\"By Ridge Solutions\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#organization\",\"name\":\"Ridge Solutions, Software Development and Software Engineering, Ireland.\",\"description\":\"Some thoughts of a busy Computer Engineer\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/wp-content\\\/uploads\\\/2013\\\/09\\\/ridge_logo1.jpg\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#organizationLogo\",\"width\":400,\"height\":81},\"image\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/author\\\/kgodden\\\/#author\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/author\\\/kgodden\\\/\",\"name\":\"Kevin Godden\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2833f41e59a25cf2a9741a05ec383bfdd278762a5e0798a90940e7ab0a107a2?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Kevin Godden\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#webpage\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/\",\"name\":\"New Scientist Enigma 1780 and Python\",\"description\":\"Sometimes a body has to take a break from all this Software Engineering stuff and instead delve into some recretional programming, so with this in mind I decide to see if I could write a small python program to solve the New Scientist Enigma #1780. This enigma is kind of like suduku on an icosahedron\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/2014\\\/01\\\/16\\\/new-scientist-enigma-1780-and-python\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/author\\\/kgodden\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/index.php\\\/author\\\/kgodden\\\/#author\"},\"datePublished\":\"2014-01-16T20:53:15+00:00\",\"dateModified\":\"2014-03-02T20:31:58+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#website\",\"url\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/\",\"name\":\"Ridge Solutions, Software Development and Software Engineering, Ireland.\",\"description\":\"Some thoughts of a busy Computer Engineer\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ridgesolutions.ie\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"New Scientist Enigma 1780 and Python","description":"Sometimes a body has to take a break from all this Software Engineering stuff and instead delve into some recretional programming, so with this in mind I decide to see if I could write a small python program to solve the New Scientist Enigma #1780. This enigma is kind of like suduku on an icosahedron","canonical_url":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"Kyj52YLp6GOPA44PVBffo9fjW8rgWHYYRF0ZYjfy6ss","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#article","name":"New Scientist Enigma 1780 and Python","headline":"New Scientist Enigma 1780 and Python","author":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/author\/kgodden\/#author"},"publisher":{"@id":"https:\/\/www.ridgesolutions.ie\/#organization"},"image":{"@type":"ImageObject","url":"http:\/\/www.newscientist.com\/data\/images\/archive\/2948\/29480601thumb_300.jpg","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#articleImage"},"datePublished":"2014-01-16T20:53:15+00:00","dateModified":"2014-03-02T20:31:58+00:00","inLanguage":"en-US","commentCount":1,"mainEntityOfPage":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#webpage"},"isPartOf":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#webpage"},"articleSection":"By Ridge Solutions, Enigma, New Scientist, Pyhon"},{"@type":"BreadcrumbList","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie#listItem","position":1,"name":"Home","item":"https:\/\/www.ridgesolutions.ie","nextItem":{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/category\/by-kevin-godden\/#listItem","name":"By Ridge Solutions"}},{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/category\/by-kevin-godden\/#listItem","position":2,"name":"By Ridge Solutions","item":"https:\/\/www.ridgesolutions.ie\/index.php\/category\/by-kevin-godden\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#listItem","name":"New Scientist Enigma 1780 and Python"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#listItem","position":3,"name":"New Scientist Enigma 1780 and Python","previousItem":{"@type":"ListItem","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/category\/by-kevin-godden\/#listItem","name":"By Ridge Solutions"}}]},{"@type":"Organization","@id":"https:\/\/www.ridgesolutions.ie\/#organization","name":"Ridge Solutions, Software Development and Software Engineering, Ireland.","description":"Some thoughts of a busy Computer Engineer","url":"https:\/\/www.ridgesolutions.ie\/","logo":{"@type":"ImageObject","url":"https:\/\/www.ridgesolutions.ie\/wp-content\/uploads\/2013\/09\/ridge_logo1.jpg","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#organizationLogo","width":400,"height":81},"image":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/author\/kgodden\/#author","url":"https:\/\/www.ridgesolutions.ie\/index.php\/author\/kgodden\/","name":"Kevin Godden","image":{"@type":"ImageObject","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d2833f41e59a25cf2a9741a05ec383bfdd278762a5e0798a90940e7ab0a107a2?s=96&d=mm&r=g","width":96,"height":96,"caption":"Kevin Godden"}},{"@type":"WebPage","@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#webpage","url":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/","name":"New Scientist Enigma 1780 and Python","description":"Sometimes a body has to take a break from all this Software Engineering stuff and instead delve into some recretional programming, so with this in mind I decide to see if I could write a small python program to solve the New Scientist Enigma #1780. This enigma is kind of like suduku on an icosahedron","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.ridgesolutions.ie\/#website"},"breadcrumb":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/#breadcrumblist"},"author":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/author\/kgodden\/#author"},"creator":{"@id":"https:\/\/www.ridgesolutions.ie\/index.php\/author\/kgodden\/#author"},"datePublished":"2014-01-16T20:53:15+00:00","dateModified":"2014-03-02T20:31:58+00:00"},{"@type":"WebSite","@id":"https:\/\/www.ridgesolutions.ie\/#website","url":"https:\/\/www.ridgesolutions.ie\/","name":"Ridge Solutions, Software Development and Software Engineering, Ireland.","description":"Some thoughts of a busy Computer Engineer","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.ridgesolutions.ie\/#organization"}}]},"og:locale":"en_US","og:site_name":"Systems and Embedded Software Engineering, Ireland. | Some thoughts of a busy Computer Engineer","og:type":"article","og:title":"New Scientist Enigma 1780 and Python","og:description":"Sometimes a body has to take a break from all this Software Engineering stuff and instead delve into some recretional programming, so with this in mind I decide to see if I could write a small python program to solve the New Scientist Enigma #1780. This enigma is kind of like suduku on an icosahedron","og:url":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/","article:published_time":"2014-01-16T19:53:15+00:00","article:modified_time":"2014-03-02T19:31:58+00:00","twitter:card":"summary","twitter:title":"New Scientist Enigma 1780 and Python","twitter:description":"Sometimes a body has to take a break from all this Software Engineering stuff and instead delve into some recretional programming, so with this in mind I decide to see if I could write a small python program to solve the New Scientist Enigma #1780. This enigma is kind of like suduku on an icosahedron"},"aioseo_meta_data":{"post_id":"1686","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-09-13 21:27:49","updated":"2025-07-15 22:34:04","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.ridgesolutions.ie\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.ridgesolutions.ie\/index.php\/category\/by-kevin-godden\/\" title=\"By Ridge Solutions\">By Ridge Solutions<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tNew Scientist Enigma 1780 and Python\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.ridgesolutions.ie"},{"label":"By Ridge Solutions","link":"https:\/\/www.ridgesolutions.ie\/index.php\/category\/by-kevin-godden\/"},{"label":"New Scientist Enigma 1780 and Python","link":"https:\/\/www.ridgesolutions.ie\/index.php\/2014\/01\/16\/new-scientist-enigma-1780-and-python\/"}],"_links":{"self":[{"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/posts\/1686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/comments?post=1686"}],"version-history":[{"count":0,"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/posts\/1686\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/media?parent=1686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/categories?post=1686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ridgesolutions.ie\/index.php\/wp-json\/wp\/v2\/tags?post=1686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}