{"id":33946,"date":"2024-11-01T09:22:15","date_gmt":"2024-11-01T09:22:15","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33946"},"modified":"2024-11-01T10:54:46","modified_gmt":"2024-11-01T10:54:46","slug":"c-coding-test-course-game-development","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33946\/","title":{"rendered":"C# Coding Test Course, Game Development"},"content":{"rendered":"<div class=\"post\">\n<h2>Problem Description<\/h2>\n<p>In a fictional game, there are enemy characters and player characters. The enemy character starts from the (x, y) coordinate and needs to approach the player character. The enemy character must find the optimal path to move closest to the player\u2019s position every turn. To solve this problem, we need to calculate the optimal path for the enemy to approach the player.<\/p>\n<h3>Problem Definition<\/h3>\n<p>The following inputs are provided:<\/p>\n<ul>\n<li>Enemy&#8217;s initial position (X1, Y1)<\/li>\n<li>Player&#8217;s position (X2, Y2)<\/li>\n<\/ul>\n<p>The output should return the optimal path for the enemy to reach the player (including all intermediate coordinates).<\/p>\n<h2>Input Example<\/h2>\n<pre>\n    0 0\n    3 4\n    <\/pre>\n<h2>Output Example<\/h2>\n<pre>\n    (0,0) \u2192 (1,1) \u2192 (2,2) \u2192 (3,3) \u2192 (3,4)\n    <\/pre>\n<h2>Solution Strategy<\/h2>\n<p>This problem involves basic distance calculation and path tracking. We need to update the enemy&#8217;s position each turn and calculate the next position to approach the player. To do this, we use the Euclidean distance formula to calculate the distance and direction between two points, finding the optimal path the enemy can take each turn.<\/p>\n<h3>1. Distance Calculation<\/h3>\n<pre>\n    dist(X1, Y1, X2, Y2) = sqrt((X2 - X1)\u00b2 + (Y2 - Y1)\u00b2)\n    <\/pre>\n<h3>2. Movement Logic Implementation<\/h3>\n<p>By allowing the enemy to approach the player each turn, we adjust the X and Y coordinates.<\/p>\n<h3>3. Path Storage<\/h3>\n<p>We store the coordinates after each move in a list to finally output the path.<\/p>\n<h2>C# Implementation Example<\/h2>\n<pre>\n    using System;\n    using System.Collections.Generic;\n\n    class Program\n    {\n        static void Main(string[] args)\n        {\n            \/\/ Enemy's initial position\n            var enemyPosition = (X: 0, Y: 0);\n            \/\/ Player's position\n            var playerPosition = (X: 3, Y: 4);\n            var path = new List&lt;(int, int)&gt;();\n\n            while (enemyPosition != playerPosition)\n            {\n                path.Add(enemyPosition);\n                enemyPosition = MoveTowardsPlayer(enemyPosition, playerPosition);\n            }\n            path.Add(playerPosition);\n\n            Console.WriteLine(\"Path taken:\");\n            foreach (var pos in path)\n                Console.WriteLine($\"({pos.Item1}, {pos.Item2})\");\n        }\n\n        static (int, int) MoveTowardsPlayer((int X, int Y) enemy, (int X, int Y) player)\n        {\n            int newX = enemy.X + (player.X &gt; enemy.X ? 1 : (player.X &lt; enemy.X ? -1 : 0));\n            int newY = enemy.Y + (player.Y &gt; enemy.Y ? 1 : (player.Y &lt; enemy.Y ? -1 : 0));\n            return (newX, newY);\n        }\n    }\n    <\/pre>\n<h2>Conclusion<\/h2>\n<p>This problem helps us understand pathfinding and interactions between objects in game development. Solving coding test problems using C# will be beneficial for future real game development projects. We can see that we can calculate the optimal movement path for the enemy to reach the player based on the given positions.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Problem Description In a fictional game, there are enemy characters and player characters. The enemy character starts from the (x, y) coordinate and needs to approach the player character. The enemy character must find the optimal path to move closest to the player\u2019s position every turn. To solve this problem, we need to calculate the &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33946\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;C# Coding Test Course, Game Development&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[90],"tags":[],"class_list":["post-33946","post","type-post","status-publish","format-standard","hentry","category-c-coding-test-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C# Coding Test Course, Game Development - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/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:\/\/atmokpo.com\/w\/33946\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# Coding Test Course, Game Development - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Problem Description In a fictional game, there are enemy characters and player characters. The enemy character starts from the (x, y) coordinate and needs to approach the player character. The enemy character must find the optimal path to move closest to the player\u2019s position every turn. To solve this problem, we need to calculate the &hellip; \ub354 \ubcf4\uae30 &quot;C# Coding Test Course, Game Development&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33946\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:22:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T10:54:46+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/33946\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33946\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"C# Coding Test Course, Game Development\",\"datePublished\":\"2024-11-01T09:22:15+00:00\",\"dateModified\":\"2024-11-01T10:54:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33946\/\"},\"wordCount\":263,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"C# Coding Test Tutorials\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33946\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33946\/\",\"name\":\"C# Coding Test Course, Game Development - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:22:15+00:00\",\"dateModified\":\"2024-11-01T10:54:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33946\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33946\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33946\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Coding Test Course, Game Development\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C# Coding Test Course, Game Development - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","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:\/\/atmokpo.com\/w\/33946\/","og_locale":"ko_KR","og_type":"article","og_title":"C# Coding Test Course, Game Development - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Problem Description In a fictional game, there are enemy characters and player characters. The enemy character starts from the (x, y) coordinate and needs to approach the player character. The enemy character must find the optimal path to move closest to the player\u2019s position every turn. To solve this problem, we need to calculate the &hellip; \ub354 \ubcf4\uae30 \"C# Coding Test Course, Game Development\"","og_url":"https:\/\/atmokpo.com\/w\/33946\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:22:15+00:00","article_modified_time":"2024-11-01T10:54:46+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"2\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/33946\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33946\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"C# Coding Test Course, Game Development","datePublished":"2024-11-01T09:22:15+00:00","dateModified":"2024-11-01T10:54:46+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33946\/"},"wordCount":263,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["C# Coding Test Tutorials"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33946\/","url":"https:\/\/atmokpo.com\/w\/33946\/","name":"C# Coding Test Course, Game Development - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:22:15+00:00","dateModified":"2024-11-01T10:54:46+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33946\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33946\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33946\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"C# Coding Test Course, Game Development"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33946","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=33946"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33946\/revisions"}],"predecessor-version":[{"id":33947,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33946\/revisions\/33947"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}