{"id":429,"date":"2012-11-27T17:49:27","date_gmt":"2012-11-27T15:49:27","guid":{"rendered":"http:\/\/www.jelbert.nl\/?p=429"},"modified":"2012-12-03T15:44:59","modified_gmt":"2012-12-03T13:44:59","slug":"maze-builder-for-arduino","status":"publish","type":"post","link":"https:\/\/www.jelbert.nl\/?p=429","title":{"rendered":"Maze builder for Arduino"},"content":{"rendered":"<p>Recently I bought the LOL shield for Arduino. This is for a learning platform I&#8217;m building for a very intelligent kid, age 8. He is borring himself to death at school. So I thought lets build him a platform to teach electronics and programming. The LOL shield is perfect for this and the library has several games. Now I&#8217;m building this new game, Maze.<\/p>\n<p>It makes a maze in a boolean array and displays only a small part of it on the screen. The user can only see the part he would see if he is physically there, and it is dark.<\/p>\n<p>At this moment the maze making routine is ready. Next I will continue with building the game and from that moment on it will become hardware dependent. So here is the maze routine and later I will post the rest.<\/p>\n<pre class=\"brush:cpp\">\r\n\/* maze builder\r\n create a maze in a bolean array \r\n Display the maze on the LOL shield\r\n use the keys defined to move around the maze\r\n Cheat sheet is displayed on serial port (x,y reversed)\r\n TODO something nice when won\r\n coordinate display\r\n\r\n *\/\r\n#include \r\n\r\n#define xgrid 20  \r\n#define ygrid 20\r\n#define xMazeDisplay 10\r\n#define yMazeDisplay 5\r\n#define dim1 7\r\n#define dim2 7\r\n#define dim3 7\r\n\r\n#define upKey 36\r\n#define rightKey 38\r\n#define downKey 40\r\n#define leftKey 42\r\n\r\nbool maze [xgrid][ygrid];\r\nunsigned char mazeEndX,mazeEndY;\r\n\r\nvoid setup()\r\n{\r\n  LedSign::Init(GRAYSCALE);            \/\/Initilizes the LoL Shield\r\n\r\n  pinMode(upKey, INPUT); \/\/set key inputs\r\n  pinMode(rightKey, INPUT);\r\n  pinMode(downKey, INPUT);\r\n  pinMode(leftKey, INPUT);\r\n  digitalWrite(upKey,HIGH); \/\/make pullup\r\n  digitalWrite(rightKey,HIGH);\r\n  digitalWrite(downKey,HIGH);\r\n  digitalWrite(leftKey,HIGH);\r\n  Serial.begin(9600);\r\n  randomSeed(analogRead(0)+analogRead(3));\r\n  for(int x=0; x&lt; xgrid; x++) \/\/empty maze\r\n  {\r\n    for(int y=0; y&lt; ygrid; y++)\r\n      maze[x][y]=0;\r\n  }\r\n\r\n  Serial.println(\"strart run\");\r\n}\r\n\r\nvoid loop()\r\n{\r\n  int x,y; \r\n  buildMaze();\r\n  \/\/testMaze();\r\n  for( x=0; x&lt; xgrid; x++) \/\/print maze\r\n  {\r\n    for( y=0; y&lt; ygrid; y++)\r\n    {\r\n      if(maze[x][y]==0)\r\n        Serial.print('X');\r\n      else\r\n        Serial.print(' ');\r\n    }\r\n    Serial.println('|');\r\n\r\n  }\r\n\r\n  displayMaze();\r\n  delay(5000); \r\n  LedSign::Clear();\r\n  x=0;\r\n  y=0;\r\n  displayMazeSpot(x,y);\r\n  \/\/  delay(5000);\r\n\r\n  \/\/ eraseMazeSpot();\r\n  \/\/ delay(5000);\r\n\r\n  Serial.print(\"Maze End =\");\r\n  Serial.print(mazeEndX,DEC);\r\n  Serial.print(',');\r\n  Serial.println(mazeEndY,DEC);\r\n\r\n  while(1)\r\n  {\r\n    if(moveMaze(x,y, 500)==1)\r\n    { \/\/if won do something nice, restart game\r\n       break;\r\n    }  \r\n    LedSign::Set(xMazeDisplay,yMazeDisplay,7);\r\n    delay(100);\r\n    LedSign::Set(xMazeDisplay,yMazeDisplay,0);\r\n    delay(100);\r\n  };\r\n}\r\n\/*\r\nvoid testMaze()\r\n{\r\n  maze[0][0]=1;\r\n  for( int x=0;xmillis())\r\n  {\r\n    if(digitalRead(upKey)==LOW)\r\n    {\/\/do move up\r\n      if(y&gt;0)\r\n      {\r\n        if(maze[x][y-1]==1)\r\n          y--;\r\n\r\n        Serial.print(\"x=\");\r\n        Serial.print(x,DEC);\r\n        Serial.print(\" y=\");\r\n        Serial.println(y,DEC);\r\n        break;\r\n      }\r\n    }\r\n    if(digitalRead(rightKey)==LOW)\r\n    {\/\/do move right\r\n      if(x0)\r\n      {\r\n        if(maze[x-1][y]==1)\r\n          x--;\r\n        Serial.print(\"x=\");\r\n        Serial.print(x,DEC);\r\n        Serial.print(\" y=\");\r\n        Serial.println(y,DEC);\r\n        break;\r\n      }\r\n    }\r\n\r\n  };\r\n  \/\/eraseMazeSpot();\r\n  LedSign::Clear();\r\n  displayMazeSpot(x,y);\r\n  if(x==mazeEndX &amp;&amp; y==mazeEndY)\r\n    return 1;\r\n  else \r\n    return 0;\r\n\r\n}\r\n\r\nvoid eraseMazeSpot()\r\n{\r\n  int xe,xf,ye,yf;\r\n  xe=xMazeDisplay-3;\r\n  xf=xMazeDisplay+3;\r\n  ye=yMazeDisplay-3;\r\n  yf=yMazeDisplay+3;\r\n  if (xexgrid)\r\n    xf=xgrid;\r\n  if (yeygrid)\r\n    yf=ygrid;\r\n  for(int x=xe;x=0 &amp;&amp; x=0 &amp;&amp; y=0 &amp;&amp; x=0 &amp;&amp; y14)\r\n  \/\/  x=14;\r\n  y=ygrid;\r\n  \/\/if(ygrid&gt;9)\r\n  \/\/  y=9;\r\n  for(int xx=0; xx&lt; x; xx++) \/\/print maze\r\n  {\r\n    for(int yy=0; yy&lt; y; yy++)\r\n    {\r\n      LedSign::Set(xx,yy,(1-maze[xx][yy])*7); \/\/maze held at 90 degrees turned\r\n    }\r\n  }\r\n}\r\n\r\nvoid buildMaze()\r\n{\r\n  \/*\r\nin what direction to go?\r\n   1=5= right x+1\r\n   2=6= down Y+1\r\n   3=7= left x-1\r\n   4= up y-1\r\n   direction = old direction + rnd(3)\r\n   Is the new direction correct?\r\n   coordinate assignments for up move see table below.\r\n   the E &amp; F fields could be ommited but the maze would then seem to have many diagonal moves.\r\n   0 E D F 0\r\n   0 A B C 0\r\n   0 0 Q 0 0\r\n   0 0 0 0 0\r\n   0 0 0 0 0\r\n   From Q A is not used or the limit of the board, I not used K not used. then A is next Q \r\n   Same goes for the others. \r\n   All directions are filled? \r\n   Test all locations until a spot is found that is used Q where A is not used or the limit of the board, I not used K not used. then A is next Q \r\n   Same goes for the others.\r\n   Relative positions to check from Q in relation to grid:\r\n   UP      Right      Down      Left\r\n   A(-1,-1)  (1,-1)    (-1,1)    (-1,-1)\r\n   B(0 ,-1)  (1, 0)    ( 0,1)    (-1, 0)\r\n   C(1 ,-1)  (1, 1)    ( 1,1)    (-1, 1)\r\n   D(0 ,-2)  (2, 0)    ( 0,2)    (-2, 1)\r\n   E(-1,-2)  (2,-1)    ( 1,2)    (-2, 1)\r\n   F( 1,-2)  (2, 1)    (-1,2)    (-2,-1)\r\n\r\n   First choose rnd(direction) then test if direcrion is ok\r\n   Any used spot is 1 so 1 is road 0 is wall\r\n\r\n   *\/\r\n  char dir, olddir=1;\r\n  int x=0,y=0;\r\n  \/\/char runs=0;\r\n  char tries=0;\r\n  \/\/ for(int runs=0;runs= xgrid)\r\n  {\r\n    dx=cx; \r\n    ex=cx; \r\n    fx=cx;\r\n  }\r\n  if(maze[ax][ay]==0 &amp;&amp; maze[bx][by]==0 &amp;&amp; maze[cx][cy]==0 &amp;&amp; maze[dx][dy]==0 &amp;&amp; maze[ex][ey]==0 &amp;&amp; maze[fx][fy]==0)\r\n  {  \r\n    x++;\r\n    maze[x][y]=1;\r\n    return 1;\r\n  } \r\n  return 0;\r\n\r\n}\r\n\r\nbool downMove(int x, int y)\r\n{\r\n  char ax, bx, cx, dx, ex, fx, ay, by, cy, dy, ey ,fy;\r\n  ax=x-1;\r\n  bx=x;\r\n  cx=x+1;\r\n  dx=x;\r\n  ex=x+1;\r\n  fx=x-1;\r\n  ay=y+1;\r\n  by=y+1;\r\n  cy=y+1;\r\n  dy=y+2;\r\n  ey=y+2;\r\n  fy=y+2;\r\n  if(ay == ygrid) \/\/test grid limits\r\n    return 0;  \/\/down is not possible\r\n  if (ax= ygrid)\r\n  {\r\n    dy=cy; \r\n    ey=cy; \r\n    fy=cy;\r\n  }\r\n  if(maze[ax][ay]==0 &amp;&amp; maze[bx][by]==0 &amp;&amp; maze[cx][cy]==0 &amp;&amp; maze[dx][dy]==0 &amp;&amp; maze[ex][ey]==0 &amp;&amp; maze[fx][fy]==0)\r\n  {\r\n    y++;\r\n    maze[x][y]=1;\r\n    return 1;\r\n  }\r\n  return 0;\r\n}\r\n\r\nbool leftMove(int x, int y)\r\n{\r\n  char ax, bx, cx, dx, ex, fx, ay, by, cy, dy, ey ,fy;\r\n\r\n  ax=x-1;\r\n  bx=x-1;\r\n  cx=x-1;\r\n  dx=x-2;\r\n  ex=x-2;\r\n  fx=x-2;\r\n  ay=y-1;\r\n  by=y;\r\n  cy=y+1;\r\n  dy=y;\r\n  ey=y+1;\r\n  fy=y-1;\r\n  if(ax(ygrid-4); y--)\r\n  {\r\n    for(int x=xgrid-1; x&gt;(xgrid-4); x--)\r\n    {\r\n      if(maze[x][y]==1)\r\n      {\r\n        mazeEndX=x;\r\n        mazeEndY=y;\r\n        return;\r\n      }\r\n    }\r\n  }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently I bought the LOL shield for Arduino. This is for a learning platform I&#8217;m building for a very intelligent kid, age 8. He is borring himself to death at<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[326,166,165],"class_list":["post-429","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-arduino","tag-lol","tag-maze"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Maze builder for Arduino - Levens Stroom<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.jelbert.nl\/?p=429\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Maze builder for Arduino - Levens Stroom\" \/>\n<meta property=\"og:description\" content=\"Recently I bought the LOL shield for Arduino. This is for a learning platform I&#8217;m building for a very intelligent kid, age 8. He is borring himself to death at\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jelbert.nl\/?p=429\" \/>\n<meta property=\"og:site_name\" content=\"Levens Stroom\" \/>\n<meta property=\"article:published_time\" content=\"2012-11-27T15:49:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-12-03T13:44:59+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=429#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=429\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/#\\\/schema\\\/person\\\/7a8cb50fdd8e9f3b970c269798e0a3ec\"},\"headline\":\"Maze builder for Arduino\",\"datePublished\":\"2012-11-27T15:49:27+00:00\",\"dateModified\":\"2012-12-03T13:44:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=429\"},\"wordCount\":148,\"commentCount\":0,\"keywords\":[\"Arduino\",\"lol\",\"maze\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.jelbert.nl\\\/?p=429#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=429\",\"url\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=429\",\"name\":\"Maze builder for Arduino - Levens Stroom\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/#website\"},\"datePublished\":\"2012-11-27T15:49:27+00:00\",\"dateModified\":\"2012-12-03T13:44:59+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/#\\\/schema\\\/person\\\/7a8cb50fdd8e9f3b970c269798e0a3ec\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=429#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.jelbert.nl\\\/?p=429\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=429#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.jelbert.nl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Maze builder for Arduino\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/#website\",\"url\":\"https:\\\/\\\/www.jelbert.nl\\\/\",\"name\":\"Levens Stroom\",\"description\":\"Tegen de stroom in varend ontmoet je het meest.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.jelbert.nl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/#\\\/schema\\\/person\\\/7a8cb50fdd8e9f3b970c269798e0a3ec\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\\\/\\\/www.jelbert.nl\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Maze builder for Arduino - Levens Stroom","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.jelbert.nl\/?p=429","og_locale":"en_US","og_type":"article","og_title":"Maze builder for Arduino - Levens Stroom","og_description":"Recently I bought the LOL shield for Arduino. This is for a learning platform I&#8217;m building for a very intelligent kid, age 8. He is borring himself to death at","og_url":"https:\/\/www.jelbert.nl\/?p=429","og_site_name":"Levens Stroom","article_published_time":"2012-11-27T15:49:27+00:00","article_modified_time":"2012-12-03T13:44:59+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.jelbert.nl\/?p=429#article","isPartOf":{"@id":"https:\/\/www.jelbert.nl\/?p=429"},"author":{"name":"admin","@id":"https:\/\/www.jelbert.nl\/#\/schema\/person\/7a8cb50fdd8e9f3b970c269798e0a3ec"},"headline":"Maze builder for Arduino","datePublished":"2012-11-27T15:49:27+00:00","dateModified":"2012-12-03T13:44:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.jelbert.nl\/?p=429"},"wordCount":148,"commentCount":0,"keywords":["Arduino","lol","maze"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.jelbert.nl\/?p=429#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.jelbert.nl\/?p=429","url":"https:\/\/www.jelbert.nl\/?p=429","name":"Maze builder for Arduino - Levens Stroom","isPartOf":{"@id":"https:\/\/www.jelbert.nl\/#website"},"datePublished":"2012-11-27T15:49:27+00:00","dateModified":"2012-12-03T13:44:59+00:00","author":{"@id":"https:\/\/www.jelbert.nl\/#\/schema\/person\/7a8cb50fdd8e9f3b970c269798e0a3ec"},"breadcrumb":{"@id":"https:\/\/www.jelbert.nl\/?p=429#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jelbert.nl\/?p=429"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.jelbert.nl\/?p=429#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.jelbert.nl\/"},{"@type":"ListItem","position":2,"name":"Maze builder for Arduino"}]},{"@type":"WebSite","@id":"https:\/\/www.jelbert.nl\/#website","url":"https:\/\/www.jelbert.nl\/","name":"Levens Stroom","description":"Tegen de stroom in varend ontmoet je het meest.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jelbert.nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.jelbert.nl\/#\/schema\/person\/7a8cb50fdd8e9f3b970c269798e0a3ec","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/www.jelbert.nl\/?author=1"}]}},"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2b7sn-6V","jetpack-related-posts":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/posts\/429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=429"}],"version-history":[{"count":12,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/posts\/429\/revisions"}],"predecessor-version":[{"id":432,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/posts\/429\/revisions\/432"}],"wp:attachment":[{"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}