{"id":88664,"date":"2024-08-05T18:00:17","date_gmt":"2024-08-05T12:30:17","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=88664"},"modified":"2026-06-03T15:25:35","modified_gmt":"2026-06-03T09:55:35","slug":"opencv-virtual-puzzle-game","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/","title":{"rendered":"OpenCV Project &#8211; Virtual Puzzle Game"},"content":{"rendered":"<p>Welcome to this virtual puzzle game. In this game, you will be solving a virtual jigsaw puzzle. The objective is to rearrange the shuffled puzzle pieces to recreate the original image. To play it, simply click on a puzzle piece and an adjacent puzzle piece to swap them. Keep moving the pieces around until the puzzle is solved. This game features three distinct levels, each accompanied by a unique image. The game\u2019s challenge is as the level increases, the total time to solve the current puzzle level decreases. Hope you will enjoy the game once you build it.<\/p>\n<h2>Prerequisites for Python OpenCV Virtual Puzzle Game<\/h2>\n<p>Creating this game requires a strong grasp of Python and the OpenCV library, as well as the following system requirements.<\/p>\n<p>1. Python 3.7 and above<\/p>\n<p>2. Any Python editor (VS code, Pycharm, etc.)<\/p>\n<h3>Download Python OpenCV Virtual Puzzle Game Project<\/h3>\n<p>Please download the source code of Python OpenCV Virtual Puzzle Game Project: <a href=\"https:\/\/drive.google.com\/file\/d\/1ap1N6lp2KGWI7djalUp7qkRssrtjQ0a_\/view?usp=drive_link\"><strong>Python OpenCV Virtual Puzzle Game Project Code.<\/strong><\/a><\/p>\n<h3>Installation<\/h3>\n<p><strong>Open Windows cmd as administrator<\/strong><\/p>\n<p>1. Install the OpenCV library by running the command in the command prompt.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">pip install opencv-python<\/pre>\n<h3>Let\u2019s Implement It<\/h3>\n<p><strong>To implement this Virtual Puzzle game, follow the below steps.<\/strong><\/p>\n<p>1. In this game, some packages are required. First of all, we are importing it.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">import cv2\r\nimport numpy as np\r\nimport random\r\nimport time<\/pre>\n<p>2. Create a list of the different images that will be used in the game and initialize the current_level variable with 0.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">image_path = ['mahesh.jpeg','ms-dhoni.jpeg','apple.jpeg']\r\ncurrent_level = 0<\/pre>\n<p>3. Start the while loop.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">while current_level &lt; len(image_path):<\/pre>\n<p>4. It selects an image based on the current level, defines grid dimensions and cell size, sets a maximum time limit, reads and resizes the image, and shuffles the order of gris cells for the puzzle.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">img_path = image_path[current_level]\r\nt_row, t_col = 3, 3\r\ngrid_w, grid_h = 250, 250\r\nshuffle_iteration = 200\r\ntime_max = [90, 60, 30]\r\nmax_time = time_max[current_level]\r\nimg = cv2.imread(img_path)\r\nimg = cv2. resize(img, (t_col * grid_w, t_row * grid_h))<\/pre>\n<p>5. This function randomly shuffles the order of the puzzle pieces within a 3*3 grid. It returns the shuffled grid, which represents the new order of the puzzle pieces.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def puz_shuffle():\r\n    grid = [(row,col) for row in range(t_row) for col in range(t_col)]\r\n    random.shuffle(grid)\r\n    return grid\r\ngrid_order = puz_shuffle()<\/pre>\n<p>6. This function displays the puzzle pieces in their shuffled order, highlights the selected piece in green color and displays the \u201ccongratulations\u201d message if the puzzle is solved within\u00a0 time limit.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def draw_puz(img, grid_order, selected_grid, puz_solved,max_time):\r\n    puz_img = np.zeros_like(img)\r\n    grid_h, grid_w = img.shape[0] \/\/ t_row, img.shape[1] \/\/ t_col\r\n    for r in range(t_row):\r\n        for c in range(t_col):\r\n            row, col = grid_order[r * t_col + c]\r\n            grid = img[row * grid_h:(row+1) * grid_h, col * grid_w:(col+1) * grid_w]\r\n            puz_img[r * grid_h:(r+1) * grid_h, c*grid_w:(c+1)*grid_w] = grid\r\n    if selected_grid is not None:\r\n        r, c = selected_grid\r\n        cv2.rectangle(puz_img, (c*grid_w, r*grid_h), ((c+1) * grid_w, (r+1)*grid_h),(0,255,0),2)\r\n    if puz_solved:\r\n        cv2.putText(puz_img, \"Congratulations! You solved the puzzle!\", (30, grid_h \/\/ 2), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)\r\n    else:\r\n        cv2.putText(puz_img, \"Time Remaining: {}s\".format(max_time), (30, grid_h \/\/ 2), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 0), 2)\r\n    return puz_img<\/pre>\n<p>7. This function is responsible for checking if the puzzle is solved or not by comparing the current grid order.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def is_puzzle_solved(grid_order):\r\n    return all(grid_order[i] == (i\/\/t_col, i%t_col) for i in range(len(grid_order)))<\/pre>\n<p>8. Initialize two variables with none and false.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">selected_grid = None\r\npuz_solved = False<\/pre>\n<p>9. This function handles mouse callback events, selects grids and swaps grids, checks for the solved puzzle flag, and updates the puzzle according to the user\u2019s interactions.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def mouse_callback(event, x, y, flag, param):\r\n    global grid_order, selected_grid, puz_solved\r\n    if event == cv2.EVENT_LBUTTONDOWN:\r\n        col = x\/\/grid_w\r\n        row = y\/\/grid_h\r\n        emp_row, emp_col = grid_order[-1]\r\n        if (row, col) == (emp_row, emp_col):\r\n            return\r\n        if selected_grid is None:\r\n            selected_grid = (row, col)\r\n        else:\r\n            row_selected, col_selected = selected_grid\r\n            if abs(row - row_selected) + abs(col - col_selected) == 1:\r\n                selected_index = row_selected * t_col + col_selected\r\n                clicked_index = row * t_col + col\r\n                grid_order[selected_index], grid_order[clicked_index] = grid_order[clicked_index], grid_order[selected_index]\r\n                selected_grid = None  \r\n                puz_solved = is_puzzle_solved(grid_order)\r\n                puzzle_image = draw_puz(img, grid_order, selected_grid, puz_solved, max_time - elapsed_time_seconds)\r\n                cv2.imshow('Virtual Puzzle By TechVidvan', puzzle_image)<\/pre>\n<p>10. This function creates the window using opencv. It sets up a mouse callback function to handle user interactions with the puzzle game. start_time is initialized to the current time.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">cv2.namedWindow('Virtual Puzzle By TechVidvan')\r\ncv2.setMouseCallback('Virtual Puzzle By TechVidvan', mouse_callback)\r\nstart_time = time.time()<\/pre>\n<p>11. This loop runs until the puzzle game is solved or the time limit is reached. It tracks the time. If the time limit is exceeded, it shows the \u201cTime&#8217;s up! You lose\u201d message. If the key \u2018q\u2019 is pressed, the game will stop executing.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">while True:\r\n    elapsed_time_seconds = int(time.time() - start_time)\r\n    if elapsed_time_seconds &gt;= max_time:\r\n        print(\"Time's up! You lose!\")\r\n        cv2.putText(img, \"Time's up! You lose!\", (30, grid_h \/\/ 2), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)\r\n        cv2.imshow('Virtual Puzzle By TechVidvan', img)\r\n        puzzle_solved = False\r\n        break\r\n    \r\n    puzzle_image = draw_puz(img, grid_order, selected_grid, puz_solved, max_time - elapsed_time_seconds)\r\n    cv2.imshow('Virtual Puzzle By TechVidvan', puzzle_image)\r\n    \r\n    if puz_solved:\r\n        break\r\n    \r\n    key = cv2.waitKey(1)\r\n    if key == ord('q'):\r\n        break\r\ncv2.waitKey(2000) \r\ncv2.destroyAllWindows()\r\ncurrent_level += 1<\/pre>\n<h3>Python OpenCV Virtual Puzzle Game Output:<\/h3>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/opencvVirtual-Puzzle-Game.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-89149\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/opencvVirtual-Puzzle-Game.webp\" alt=\"opencv Virtual Puzzle Game\" width=\"1920\" height=\"1080\" \/><\/a><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/opencv-Virtual-Puzzle-Game-output-.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-89150\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/opencv-Virtual-Puzzle-Game-output-.webp\" alt=\"opencv Virtual Puzzle Game output\" width=\"1920\" height=\"1080\" \/><\/a><\/p>\n<h3>Python OpenCV Virtual Puzzle Game Video Output<\/h3>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2024\/01\/OpenCV-Virtual-Puzzle-Game-Video-Output.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-89213 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2024\/01\/OpenCV-Virtual-Puzzle-Game-Video-Output.webp\" alt=\"OpenCV Virtual Puzzle Game Video Output\" width=\"800\" height=\"450\" \/><\/a><\/p>\n<h3>Object Detection<\/h3>\n<p>The function responsible for recognizing the completion of the object or image is is_puzzle_solved(). This function systematically evaluates the current arrangement of puzzle pieces by cross-referencing each pieces index with its expected original position within the grid. Should all pieces align correctly, the function returns a True value, indicating the puzzle is solved successfully.<\/p>\n<p>Conversely, a false return signifies that the image is not fully assembled. Once the allocated total time is complete and the image is still not complete, it responds with a message: \u201cTime\u2019s up! You lose.\u201d<\/p>\n<h3>Conclusion<\/h3>\n<p>In conclusion, a Virtual Puzzle Game using OpenCV provides an engaging and interactive experience. Players solve puzzles by rearranging pieces. The user-friendly interface has a time limit for added excitement. Players can quit or restart the game anytime. This game shows the capabilities of OpenCV\u2019s image processing.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to this virtual puzzle game. In this game, you will be solving a virtual jigsaw puzzle. The objective is to rearrange the shuffled puzzle pieces to recreate the original image. To play it,&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":447408,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[193],"tags":[5607,492,5567,191,392,396,397,5662,5663,5664,398,5608],"class_list":["post-88664","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-opencv-tutorials","tag-create-virtual-puzzle-game-using-opencv","tag-learn-opencv","tag-opencv-project-for-beginners","tag-opencv-project-for-practice","tag-opencv-project-ideas","tag-opencv-virtual-puzzle-game","tag-opencv-virtual-puzzle-game-project","tag-python-opencv-virtual-puzzle-game","tag-python-opencv-virtual-puzzle-game-project","tag-virtual-puzzle-game","tag-virtual-puzzle-game-project","tag-virtual-puzzle-game-using-opencv"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>OpenCV Project - Virtual Puzzle Game - TechVidvan<\/title>\n<meta name=\"description\" content=\"Virtual Puzzle Game using OpenCV gives an engaging and interactive experience, allowing players to solve puzzles by rearranging pieces.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OpenCV Project - Virtual Puzzle Game - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"Virtual Puzzle Game using OpenCV gives an engaging and interactive experience, allowing players to solve puzzles by rearranging pieces.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-05T12:30:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-03T09:55:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/10\/virtual-puzzle-game.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OpenCV Project - Virtual Puzzle Game - TechVidvan","description":"Virtual Puzzle Game using OpenCV gives an engaging and interactive experience, allowing players to solve puzzles by rearranging pieces.","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:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/","og_locale":"en_US","og_type":"article","og_title":"OpenCV Project - Virtual Puzzle Game - TechVidvan","og_description":"Virtual Puzzle Game using OpenCV gives an engaging and interactive experience, allowing players to solve puzzles by rearranging pieces.","og_url":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2024-08-05T12:30:17+00:00","article_modified_time":"2026-06-03T09:55:35+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/10\/virtual-puzzle-game.webp","type":"image\/webp"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/dde481bb412350cde1ed6e389bc0deaf"},"headline":"OpenCV Project &#8211; Virtual Puzzle Game","datePublished":"2024-08-05T12:30:17+00:00","dateModified":"2026-06-03T09:55:35+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/"},"wordCount":615,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/10\/virtual-puzzle-game.webp","keywords":["create virtual puzzle game using opencv","learn opencv","opencv project for beginners","opencv project for practice","opencv project ideas","openCV virtual puzzle game","openCV virtual puzzle game project","python opencv virtual puzzle game","python opencv virtual puzzle game project","virtual puzzle game","virtual puzzle game project","virtual puzzle game using opencv"],"articleSection":["OpenCV Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/","url":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/","name":"OpenCV Project - Virtual Puzzle Game - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/10\/virtual-puzzle-game.webp","datePublished":"2024-08-05T12:30:17+00:00","dateModified":"2026-06-03T09:55:35+00:00","description":"Virtual Puzzle Game using OpenCV gives an engaging and interactive experience, allowing players to solve puzzles by rearranging pieces.","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/10\/virtual-puzzle-game.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/10\/virtual-puzzle-game.webp","width":1200,"height":628,"caption":"virtual puzzle game"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/opencv-virtual-puzzle-game\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"OpenCV Project &#8211; Virtual Puzzle Game"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/dde481bb412350cde1ed6e389bc0deaf","name":"TechVidvan Team"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/88664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=88664"}],"version-history":[{"count":5,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/88664\/revisions"}],"predecessor-version":[{"id":448074,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/88664\/revisions\/448074"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/447408"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=88664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=88664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=88664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}